当前位置:婀娜女性网>美好生活>心理>

hystrix熔断与限流原理

心理 阅读(1.34W)
hystrix熔断与限流原理

hystrix是一个帮助解决分布式系统交互时超时处理和容错的类库, 它同样拥有保护系统的能力。

hystrix的设计原则包括:资源隔离、熔断器、命令模式、资源隔离。

hystrix将同样的模式运用到了服务调用者上。

hystrix通过将每个依赖服务分配独立的线程池进行资源隔离, 从而避免服务雪崩。

熔断器模式定义了熔断器开关相互转换的逻辑:服务的健康状况 = 请求失败数 / 请求总数。

熔断器开关由关闭到打开的状态转换是通过当前服务健康状况和设定阈值比较决定的。

当熔断器开关关闭时, 请求被允许通过熔断器。

如果当前健康状况高于设定阈值, 开关继续保持关闭。

如果当前健康状况低于设定阈值, 开关则切换为打开状态。

当熔断器开关打开时, 请求被禁止通过。

当熔断器开关处于打开状态, 经过一段时间后, 熔断器会自动进入半开状态, 这时熔断器只允许一个请求通过。

当该请求调用成功时, 熔断器恢复到关闭状态. 若该请求失败, 熔断器继续保持打开状态, 接下来的请求被禁止通过。

熔断器的开关能保证服务调用者在调用异常服务时, 快速返回结果, 避免大量的同步等待。

并且熔断器能在一段时间后继续侦测请求执行结果, 提供恢复服务调用的可能。

hystrix熔断与限流原理

Hystrix 是 Netflix 开源的一款容错系统,能帮助使用者码出具备强大的容错能力和鲁棒性的程序。Hystrix 具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包(request collapsing,即自动批处理,译者注),以及监控和配置等功能。

Hystrix 源于 Netflix API 团队在 2011 年启动的弹性工程工作,而目前它在 Netflix 每天处理着数百亿的隔离线程以及数千亿的隔离信号调用。Hystrix 是基于 Apache License 2.0 协议的开源的程序库,目前托管在 GitHub 上