服务容错和Histrix-笔记

雪崩效应

  • 如果某个服务不可用导致级联故障,造成整个系统不可用的情况,被称为雪崩效应。

Spring Cloud Hystrix

  • spring家族中防雪崩的利器
  • 基于Netflix对应的Hystrix实现的
  • 具备服务降级、依赖隔离、服务熔断、监控 等强大的功能

服务降级

  • 优先核心服务,非核心服务不可用或弱可用(弃车保帅)
  • 通过HystrixCommand注解指定
  • fallbackMethod(回退函数)中具体实现降级逻辑

依赖隔离

使用线程池隔离,会为每个hystrixCommand创建一个独立的线程池,这样就算某个在hystrixCommand包装下的服务出现延迟过高的情况,也只是对该依赖的服务的调用产生影响,并不会拖慢其他服务。

  • 线程池隔离

  • Hystrix自动实现了依赖隔离

服务熔断

  • Circuit Breaker: 断路器

  • https://martinfowler.com/bliki/CircuitBreaker.html

  • circuitBreaker.requestVolumeThreshold

    设置在滚动时间窗口中,断路器的最小请求数。

  • circuitBreaker.sleepWindowInMilliseconds

    时间窗口,休眠时间窗到期后,断路器进入半开状态,释放一个请求到主逻辑上,如果此次请求正常返回 ,那么断路器将继续闭合,主逻辑恢复。如果此次请求依然有问题,断路器依然进入打开状态,休眠时间窗重新计时。

  • circuitBreaker.errorThresholdPercentage

    设置断路器打开的错误百分比条件。

DUZjUA.png

图:断路器状态
posted @ 2020-11-24 23:37  天道酬勤1112  阅读(101)  评论(0)    收藏  举报