Hystrix php,Hystrix熔断框架介绍

本文主要从下面几点展开:

什么是熔断?

hystrix是什么东西?

hystrix能我们解决什么问题?

什么是熔断

做过分布式的同学应该都知道这个概念,在这里还是要解释下熔断,因为对于有些同学,根本就没听过这个。熔断就是切断项目对指定服务的调用。举个例子在分布式环境下有A,B,C,D四个个服务,A依赖B,C,D。在调用的过程中发现D服务异常了,为了不拖垮整个集群,我们会选择不调用D服务,进行服务降级。

bVZVDR?w=996&h=484

Hystrix是什么

上面说了什么是熔断,可是什么时候该启用熔断,什么时候去探测服务是否可用,当依赖异常恢复时,什么时候上层恢复依赖等这些技术细节都是我们要去考虑的。而Hystrix就是为了解决这些问题而诞生的。

在分布式环境下hystrix通过添加延迟容错和失败容差逻辑来帮助我们处理服务之间的交互。它会隔绝各服务间的调用,防止出现雪崩现象并提供fallback失败备用方案,以此提高我们服务集群的弹性。

Hystrix主要解决那些问题

对外依赖包括第三方类库的依赖提供延迟和失败保护

阻断传递失败,防止雪崩

快速失败并即时恢复

合理的fallback和优雅降级

提供近实时的监控、告警和操作控制

集群多依赖场景

当服务都健康的时候如下图所示

bVZVVO?w=640&h=582

当其中一个服务出现延迟,将会阻塞整个用户的请求

bVZVXa?w=640&h=582

一个服务的延迟会导致单位时间内资源一直被占用,应用的其它请求进来也会延迟,紧接着队列开始堆积,线程还有其他系统资源不释放,甚至引发整个系统的级联失败。

bVZV0z?w=617&h=573

Hystrix如何应对上面的问题

bVZV0W?w=640&h=869

hystrix把每个依赖都进行隔离,对依赖的调用全部包装成HystrixCommand或者HystrixObservableCommand

对依赖的调用耗时设置阀值,如果超过阀值直接判定超时

对每个依赖维护一个连接池,如果连接池满直接拒绝访问

hystrix评估调用失败,调用超时,线程拒绝,调用成功的比例,如果超过指定的阀值直接走熔断处理,对依赖的访问直接走fallback逻辑(fallback逻辑使用者自己实现)

熔断生效后,会在设定的时间后放出一个请求来探测依赖是否恢复,依赖的应用恢复后关闭熔断

修改hystrix配置近实时生效

END

以上主要简单的介绍了下hystrix的使用场景,后续将会整理一些hystrix如何使用,工作原理,以及我们对hystrix的一些改造

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值