spring cloud之Hystrix

  雪崩效应:微服务架构的应用系统通常包含多个服务层。微服务之间通过网络进行通信,从而支撑起整个应用系统,因此,微服务之间难免存在依赖关系。任何微服务都并非100%可用,网络往往也很脆弱,因此有些请求会失败。我们常把”基础服务故障“导致”级联故障“的现象称为雪崩效应,雪崩效应描述的是提供者不可用导致消费者不可用,并将不可用逐渐放大的过程。

雪崩效应形成过程如上图所示,服务A作为服务提供者(基础服务),B作为A的消费者,C和D是B的消费者,服务A的不可用引起了b的不可用,并将不可用像雪球放大到C和D,雪崩效应就形成了。

防止雪崩效应的方法:容错机制,该容错机制需要实现以下两点

  • 为网络请求设置超时:为每个网络请求设置超时,让资源尽快释放
  • 使用断路器模式:断路器可以理解为对容易导致错误的操作的代理,这种代理能够统计一段时间内调用失败的次数,并决定是正常请求依赖的服务还是直接返回。断路器的状态转换如下图所示

Hystrix简介

Hystrix是一个实现了超时机制和断路器模式的工具类库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提供系统的可用性和容错性,Hystrix主要通过以下几点市场延迟和容错。

  • 包裹请求:使用hystrixCommand包裹对依赖的调用逻辑,每个命令在独立线程中执行,这使用到了设计模式中的命令模式
  • 跳闸机制:当某个服务的错误率超过一定阈值时,Hystrix可以自动或者手动跳闸,停止请求该服务一段时间
  • 资源隔离:Hystrix为每个里来都维护了一个小型的线程池(或者信号量),如果该线程池已经满了,发送往该依赖的请求被立即拒绝,而不是排队等候,从而加速失败判定。
  • 回退机制:当请求失败、超时、被拒绝,或当断路器打开时,执行回退逻辑。
  • 自我修复:断路器打开一段时间后,会自动进入半开状态。

Hystrix整合,项目为microservice-consumer-movie-ribbon-hystrix

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值