前言
本文主要内容:
Hystrix原理
服务雪崩
服务雪崩效应是一种因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程。服务雪崩效应的产生一般有三个流程:
1.首先是服务提供者不可用
2.然后重试会导致网络流量加大
3.最后导致服务调用者不可用。
导致服务提供者不可用的原因有很多:
- 可能是因为服务器的宕机或者网络故障;
- 也可能是因为程序存在的缺陷;
- 也有可能是大量的请求导致服务提供者的资源受限无法及时响应;
- 还有可能是因为缓存击穿造成服务提供者超负荷运行等等。
在服务提供者不可用发生之后,用户可能无法忍受长时间的等待,不断地发送相同的请求,服务调用者重新调用服务提供者,同时服务提供者中可能存在对异常的重试机制,这些都会加大对服务提供者的请求流量。然而此时的服务提供者已经是一艘破船,它也无能无力,无法返回有效的结果。最后是服务调用者因为服务提供者的不可用导致了自身的崩溃。当服务调用者使用同步调用的时候,大量的等待线程将会耗尽线程池中的资源,最终导致服务调用者的宕机,无法响应用户的请求,服务雪崩效应就此发生了。
断路器
在分布式系统中,不同服务之间的调用非常常见,当服务提供者不可用时就很有可能发生服务雪崩效应,导致整个系统的不可用。所以为了预防这