Hystrix 理论知识点

Hystrix:构建弹性微服务
Hystrix是一款旨在增强分布式系统弹性的库,通过隔离、降级、熔断和缓存机制,保护服务间交互免受延迟和故障影响。它支持实时监控和动态属性更改,适用于微服务架构。

Hystrix介绍

Hystrix是什么?
在分布式环境中,许多服务依赖项中的一些必然会失败。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。

Hystrix被设计的目标是:

  1. 对通过第三方客户端库访问的依赖项(通常是通过网络)的延迟和故障进行保护和控制。
  2. 在复杂的分布式系统中阻止级联故障。
  3. 快速失败,快速恢复。
  4. 回退,尽可能优雅地降级。
  5. 启用近实时监控、警报和操作控制

Hystrix解决了什么问题
复杂分布式体系结构中的应用程序有许多依赖项,每个依赖项在某些时候都不可避免地会失败。如果主机应用程序没有与这些外部故障隔离,那么它有可能被他们拖垮。

Hystrix提供的能力

  1. hystrix的出现即为解决雪崩效应,它通过四个方面的机制来解决这个问题
  2. 隔离(线程池隔离和信号量隔离):限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他服务调用。
  3. 优雅的降级机制:超时降级、资源不足时(线程或信号量)降级,降级后可以配合降级接口返回托底数据。
  4. 熔断:当失败率达到阀值自动触发降级(如因网络故障/超时造成的失败率高),熔断器触发的快速失败会进行快速恢复。
  5. 缓存:提供了请求缓存、请求合并实现。
  6. 支持实时监控、报警、控制

Hystrix设计原则是什么?

  1. 防止任何单个依赖项耗尽所有容器(如Tomcat)用户线程。
  2. 甩掉包袱,快速失败而不是排队。
  3. 在任何可行的地方提供回退,以保护用户不受失败的影响。
  4. 使用隔离技术(如隔离板、泳道和断路器模式)来限制任何一个依赖项的影响。
  5. 通过近实时的度量、监视和警报来优化发现时间。
  6. 通过配置的低延迟传播来优化恢复时间。
  7. 支持对Hystrix的大多数方面的动态属性更改,允许使用低延迟反馈循环进行实时操作修改。
  8. 避免在整个依赖客户端执行中出现故障,而不仅仅是在网络流量中。

Hystrix-隔离

Hystrix的隔离主要是为每个依赖组件提供一个隔离的线程环境,提供两种模式的隔离:

  1. 线程池隔离模式:使用一个线程池来存储当前的请求,线程池对请求作处理,设置任务返回处理超时时间,堆积的请求堆积入线程池队列。这种方式需要为每个依赖的服务申请线程池,有一定的资源消耗,好处是可以应对突发流量(流量洪峰来临时,处理不完可将数据存储到线程池队里慢慢处理)
  2. 信号量隔离模式:使用一个原子计数器(或信号量)来记录当前有多少个线程在运行,请求来先判断计数器的数值,若超过设置的最大线程个数则丢弃改类型的新请求,若不超过则执行计数操作请求来计数器+1,请求返回计数器-1。这种方式是严格的控制线程且立即返回模式,无法应对突发流量(流量洪峰来临时,处理的线程超过数量,其他的请求会直接返回,不继续去请求依赖的服务)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值