共计 669 个字符,预计需要花费 2 分钟才能阅读完成。
1、Hystrix 处理容错的机制
1.1、熔断机制
原理:
在正常状态下,电路处于关闭状态
如果调用服务持续出错或者超时达到一个阀值,则断路器会直接切断请求链,电路被打开进入熔断状态,以避免发送大量无效请求而影响系统吞吐量,后续一段时间内所有调用都会被拒绝
一段时间以后,保护器会尝试进入半熔断状态,允许少量请求进行尝试。如果调用仍然失败,则回到熔断状态;如果调用成功,则回到电路关闭状态
1.2、隔离机制
1.2.1、线程池隔离模式
在 Hystrix 的线程池隔离模式下,会为每一个依赖建立一个线程池,以存储对当前依赖的请求。每个依赖可以根据权重分配资源 (线程),一部分依赖出现问题不会影响其它依赖使用资源。
1.2.2、信号量隔离模式
原理:
记录当前运行的信号量
判断信号量的值,如果大于设置的最大线程值,则丢弃该类型请求;如果小于设置的值,则执行计数操作,信号量 +1
信号量隔离模式无法应对突发流量。
1.2.3、降级机制
服务降级是指:如果整体资源快不够用了,则将某些服务先关掉,等到资源足够时再重新开启这些服务。和熔断的目的一样,该机制也是用来保证上游服务的稳定性。
降级一般采用两种模式:
fallback 模式:如果服务失败,则通过 fallback 返回静态值进行降级
服务级联的模式:如果服务失败,则调用备用服务。服务级联模式的目的是尽可能返回数据。但是如果考虑不充分,则有可能导致级联的服务崩溃
1.2.4、缓存机制
缓存机制是将请求结果缓存起来,如果相同 ”key” 的请求发送过来,则将直接从缓存中取出结果,以减少请求开销。采用这种机制会对排查故障造成一定的困扰。
正文完
星哥玩云-微信公众号