Hystrix:为分布式系统提供延迟和容错的库

转载 2018年04月17日 15:12:52

Hystrix是通过隔离服务间的访问点、停止级联故障和提供后备选项提高分布式系统整体弹性的延迟和容错库。

主要功能

  • 为通过第三方客户端库访问(通常是通过网络)的延迟和失败提供保护和控制。
  • 停止复杂分布式系统中的级联故障。
  • 故障的快速恢复。
  • 在可能的情况下进行回退和降级。
  • 允许准实时的监控、告警和操作控制。

设计原则

  • 防止任何单一依赖使用所有容器的用户线程。
  • 快速的失败和从负载中摘除而不是排队处理。
  • 在保护用户免受失败时提供反馈。
  • 使用隔离技术使任何一个依赖的影响最小化。
  • 通过准实时的度量、检测和告警优化了发现时间。
  • 通过低延迟的配置变化传播和动态性能变化的支持优化了发现时间,允许在低延迟的反馈下做实时的修改。
  • 保护整个依赖客户端的执行(失败),而不仅仅在网络中。

Hystrix怎样实现目标

  • 在一个单独的线程中通过 HystrixCommand 或 HystrixObservableCommand 对象包装所有外部系统(或依赖)的调用。
  • 调用超时比设置的阈值更长。虽然有默认值,但是大多数依赖自己配置的这些超时“属性”,所以每个依赖都略高于实测性能的99.5%。
  • 为每个依赖保持一个小的线程池;如果线程池满了,新来的请求会立即拒绝掉,而不是排队等候。
  • 测试成功、失败(客户端抛出异常)、超时和线程拒绝。
  • 当请求失败、被拒、超时或者短路时的性能反馈逻辑。
  • 准实时的监控指标和配置改变。

开发文档

开源地址:https://github.com/Netflix/Hystrix


项目实战:ActiveMQ开发大型分布式系统

-
  • 1970年01月01日 08:00

分布式系统延迟和容错框架Hystrix

简介  在大中型分布式系统中,通常系统很多依赖(HTTP,Hession,Netty,Dubbo等),在高并发访问下,这些依赖的稳定性与否对系统的影响非常大,但是依赖有很多不可控问题: 如网络连接...
  • fight4gold
  • fight4gold
  • 2016-04-26 17:20:28
  • 10536

Hystrix 的原理与使用

前言分布式系统中经常会出现某个基础服务不可用造成整个系统不可用的情况, 这种现象被称为服务雪崩效应. 为了应对服务雪崩, 一种常见的做法是手动服务降级. 而Hystrix的出现,给我们提供了另一种选择...
  • s573626822
  • s573626822
  • 2018-03-16 17:28:03
  • 47

高可用服务容错框架Hystrix

Hystrix具体要实现的目标以及是用什么方法去实现的! Hystrix要解决的问题? 在复杂的分布式系统架构中,每个服务都有很多的依赖服务,而每个依赖服务都可能会故障,如果服务没有和自己...
  • lizhen19920909
  • lizhen19920909
  • 2017-08-25 15:36:59
  • 519

服务器容错保护(Hystrix依赖隔离)

服务器容错保护,什么事实服务器容错 服务器容错,是基于容错技术的原理,采用硬件全冗余的技术,在两套硬件之间还通过独立的芯片和软件保证故障时0时间切换的服务器,简答的说就是在服务器系统中出现数据或文件...
  • Ben_JieMing
  • Ben_JieMing
  • 2017-11-22 14:52:28
  • 72

分布式系统的容错性(一)——容错性简介

 本系列内容是我学习分布式系统容错性的一些笔记,欢迎就相关内容进行讨论。我的联系方式:DLite@163.com  ==========================================...
  • DLite
  • DLite
  • 2007-11-25 03:03:00
  • 6846

Netflix Hystrix — 应对复杂分布式系统中的延时和故障容错

Netflix近日发布了Hystrix,该库旨在通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓...
  • u012528360
  • u012528360
  • 2017-03-17 14:33:59
  • 1051

05.Spring Cloud学习笔记之服务容错保护组件Hystrix

前言在微服务架构中存在着很多的服务单元,若一个单元出现故障会导致调用方的对外服务出现延迟,若此时调用方的请求不断的增加,最后就会因为等待出现故障的依赖方响应形成任务积压,最终导致自身服务瘫痪,最终导致...
  • RobertoHuang
  • RobertoHuang
  • 2017-09-03 19:55:50
  • 619

分布式服务弹性框架“Hystrix”实践与源码研究(一)

文章初衷 为了应对将来在线(特别是无线端)业务量的成倍增长,后端服务的分布式化程度需要不断提高,对于服务的延迟和容错管理将面临更大挑战,公司框架和开源团队选择内部推广Netflix的Hystri...
  • aichuanwendang
  • aichuanwendang
  • 2017-03-30 10:02:18
  • 1189

使用Hystrix实现微服务的容错处理

使用Hystrix实现微服务的容错处理 微服务 容错处理 Hystrix 一、实现容错的手段 如果服务提供者响应非常缓慢,那么消费者对提供者的请求就会被强制等待,直到提供者响应或...
  • Adam_allen
  • Adam_allen
  • 2018-01-19 10:02:47
  • 149
收藏助手
不良信息举报
您举报文章:Hystrix:为分布式系统提供延迟和容错的库
举报原因:
原因补充:

(最多只允许输入30个字)