Spring Cloud 微服务开发:入门、进阶与源码剖析 —— 5.1 Spring Cloud Hystrix 入门

5.1 Spring Cloud Hystrix 入门

Hystrix是Netflix公司开源的一个针对分布式系统的容错处理的开源软件,旨在隔离针对远程系统、服务和第三方库的访问点产生级联故障后可以及时隔断,防止出现热点访问冲击整个系统,并在负载的分布式系统中启用弹性服务。它在微服务体系中起着至关重要的作用,是服务端最后一道防线。在Github上诞生于2011年,目前处于维护阶段,最后一个稳定版本是1.5.18,共计产生了151个Release版本。整合进Spring Cloud生态后,正式命名为Spring Cloud Hystrix,它是一个分布式系统容错处理工具,它是一个库,并不需要独立部署,在Spring Cloud中被大量的使用,几乎存在于每一个Spring Cloud构建的的微服务的基础组件中。

在分布式环境中,许多服务依赖项中的一些不可避免地会失败。Hystrix是一个库,可通过添加延迟容错和容错逻辑来控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,阻止它们之间的级联故障以及提供后备选项来实现这一目标,所有这些都可以提高系统的整体弹性。

5.1.1 设计目标

Hystrix设计目标主要是用来执行以下操作:

  • 通过第三方客户端库访问(通常通过网络)依赖关系,以防止和控制延迟和故障。
  • 在复杂的分布式系统中停止级联故障。
  • 快速失败并迅速恢复。
  • 在可能的情况下,后退并优雅地降级。
  • 实现接近实时监控,警报和操作控制。

那么,Hystrix具体解决了什么问题呢?

复杂分布式体系结构中的应用程序具有许多依赖关系,每个依赖关系在某些时候都将不可避免地失败。

例如,对于依赖于30个服务的应用程序,其中每个服务的正常运行时间为99.99%,我们可以得出以下结论:

  • 99.99^30 = 99.7%,即所有服务正常可用时间为99.7%
  • 0.3%失败意味着10亿个请求中会有3,00

猜你喜欢

转载自blog.csdn.net/meteor_93/article/details/104092931