Hystrix如何实现容错
Hystrix是一个延迟和容错库,旨在隔离远程系统,服务和第三方库的访问点,当出现故障是不可避
免的故障时,停止级联故障并在复杂的分布式系统中实现弹性。
通常对于使用微服务架构开发的系统,涉及到许多微服务。这些微服务彼此协作。
思考以下微服务:
假设如果上图中的微服务9失败了,那么使用传统方法我们将传播一个异常。但这仍然会导致整个
系统崩溃。
随着微服务数量的增加,这个问题变得更加复杂。微服务的数量可以高达1000.这是hystrix出现的
地方 我们将使用Hystrix在这种情况下的Fallback方法功能。我们有两个服务employee-consumer
使用由employee-consumer公开的服务。
简化图如下所示:
现在假设由于某种原因,employee-producer公开的服务会抛出异常。我们在这种情况下使用
Hystrix定义了一个回退方法。这种后备方法应该具有与公开服务相同的返回类型。如果暴露服务中
出现异常,则回退方法将返回一些值。
如果firstPage method() 中的异常继续发生,则Hystrix电路将中断,并且员工使用者将一起跳过
firtsPage方法,并直接调用回退方法。 断路器的目的是给第一页方法或第一页方法可能调用的其他
方法留出时间,并导致异常恢复。可能发生的情况是,在负载较小的情况下,导致异常的问题有更
好的恢复机会 。