spring cloud hystrix

微服务存在大量级联调用的情况,hystrix 主要解决单一服务导致整体服务不可用或延迟的情况。

目标

  • 通过客户端对延迟和故障进行保护和控制
  • 在一个复杂的分布式系统中停止级联故障
  • 快速失败和迅速恢复
  • 在合理的情况下回退和优雅降级
  • 开启近实时监控、告警和操作控制

请求缓存

Hystrix有一层请求缓存,在同一个上下文请求中缓存请求结果。
通过@CacheResultg增加,CacheRemove清除 @CacheKey指定key

请求合并

Request Collapser主要用于请求合并的场景。后续分解

Hystrixji基本流程

image.png

1.构造一个 HystrixCommand或HystrixObservableCommand对象,用于封装请求,并在构造方法配置请求被执行需要的参数;
2.执行命令,Hystrix提供了4种执行命令的方法,后面详述;
3.判断是否使用缓存响应请求,若启用了缓存,且缓存可用,直接使用缓存响应请求。Hystrix支持请求缓存,但需要用户自定义启动;
4.判断熔断器是否打开,如果打开,跳到第8步;
5.判断线程池/队列/信号量是否已满,已满则跳到第8步;
6.执行HystrixObservableCommand.construct()或HystrixCommand.run(),如果执行失败或者超时,跳到第8步;否则,跳到第9步;
7.统计熔断器监控指标;
8.走Fallback备用逻辑
9.返回请求响应

你可能感兴趣的:(spring cloud hystrix)