前言
本文主要内容:

Hystrix原理
服务雪崩
服务雪崩效应是一种因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程。服务雪崩效应的产生一般有三个流程:
1.首先是服务提供者不可用
2.然后重试会导致网络流量加大
3.最后导致服务调用者不可用。
导致服务提供者不可用的原因有很多:
- 可能是因为服务器的宕机或者网络故障;
- 也可能是因为程序存在的缺陷;
- 也有可能是大量的请求导致服务提供者的资源受限无法及时响应;
- 还有可能是因为缓存击穿造成服务提供者超负荷运行等等。
在服务提供者不可用发生之后,用户可能无法忍受长时间的等待,不断地发送相同的请求,服务调用者重新调用服务提供者,同时服务提供者中可能存在对异常的重试机制,这些都会加大对服务提供者的请求流量。然而此时的服务提供者已经是一艘破船,它也无能无力,无法返回有效的结果。最后是服务调用者因为服务提供者的不可用导致了自身的崩溃。当服务调用者使用同步调用的时候,大量的等待线程将会耗尽线程池中的资源,最终导致服务调用者的宕机,无法响应用户的请求,服务雪崩效应就此发生了。
断路器
在分布式系统中,不同服务之间的调用非常常见,当服务提供者不可用时就很有可能发生服务雪崩效应,导致整个系统的不可用。所以为了预防这种情况的发生,可以使用断路器模式进行预防(类比电路中的断路器,在电路过大的时候自动断开,防止电线过热损害整条电路)。断路器将远程方法调用包装到一个断路器对象中,用于监控方法调用过程的失败。一旦该方法调用发生的失败次数在一段时间内达到一定的阀值,那么这个断路器将会跳闸,在接下来时间里再次调用该方法将会

本文介绍了服务雪崩现象及其原因,重点讲解了Hystrix的断路器原理,如何通过断路器防止服务雪崩,以及服务降级策略。Hystrix通过线程池和信号量实现资源隔离,确保服务调用者的稳定性。
最低0.47元/天 解锁文章
945

被折叠的 条评论
为什么被折叠?



