组团学

Hystrix处理容错的机制

阅读 (3454281)

1、Hystrix处理容错的机制

1.1、熔断机制

原理:

  • 在正常状态下,电路处于关闭状态

  • 如果调用服务持续出错或者超时达到一个阀值,则断路器会直接切断请求链,电路被打开进入熔断状态,以避免发送大量无效请求而影响系统吞吐量,后续一段时间内所有调用都会被拒绝

  • 一段时间以后,保护器会尝试进入半熔断状态,允许少量请求进行尝试。如果调用仍然失败,则回到熔断状态;如果调用成功,则回到电路关闭状态

1.2、隔离机制

1.2.1、线程池隔离模式

在Hystrix的线程池隔离模式下,会为每一个依赖建立一个线程池,以存储对当前依赖的请求。每个依赖可以根据权重分配资源(线程),一部分依赖出现问题不会影响其它依赖使用资源。

1.2.2、信号量隔离模式

原理:

2.jpg

  • 记录当前运行的信号量

  • 判断信号量的值,如果大于设置的最大线程值,则丢弃该类型请求;如果小于设置的值,则执行计数操作,信号量+1

信号量隔离模式无法应对突发流量。

1.2.3、降级机制

服务降级是指:如果整体资源快不够用了,则将某些服务先关掉,等到资源足够时再重新开启这些服务。和熔断的目的一样,该机制也是用来保证上游服务的稳定性。

降级一般采用两种模式:

  • fallback模式:如果服务失败,则通过fallback返回静态值进行降级

  • 服务级联的模式:如果服务失败,则调用备用服务。服务级联模式的目的是尽可能返回数据。但是如果考虑不充分,则有可能导致级联的服务崩溃

1.2.4、缓存机制

缓存机制是将请求结果缓存起来,如果相同"key"的请求发送过来,则将直接从缓存中取出结果,以减少请求开销。采用这种机制会对排查故障造成一定的困扰。

需要 登录 才可以提问哦