如何提高微服务系统的容错性(Fault Tolerance), 并了解如何借助Hystrix开发健壮的微服务.
以往我们在开发单体应用, 或者调用RPC服务的时候, 可能没有考虑太多目标服务调用失败的情况, 经常一个Try/Catch加上打印日志就解决了. 但是在微服务系统中, 这种处理方法会给系统的稳定性带来很大隐患.举个例子, 假设我们系统中下单的功能要依赖50个服务, 每个服务正常响应的概率为99.99%, 如果我们不做容错处理, 只要任意一个服务没有响应下单就失败的话, 我们下单成功的概率为
99.9950 = 99.5%
日订单量为1W的话, 50个会出现下单失败, 这还是建立在依赖服务稳定性很高的情况下(4个9). 但是服务调用失败引起的问题不仅仅是这么简单, 在分布式环境下, 一个服务的调用失败可能会使其他被依赖服务发生延迟和超时, 而且这个影响会很快扩散到其他服务, 从而引发整个系统的雪崩(Avalanche).
hystrix介绍
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224649.html原文链接:https://javaforall.net
