系统熔断

19 篇文章 0 订阅
4 篇文章 0 订阅

最近看这方面的信息 简单了解了下 写下随笔

背景介绍

基于服务拆分之后,各类远程调用横行的年代, 我们很容易出现的系统层级情况就是一个业务支撑需要N多服务,简单说下,图网上有的是就不贴了。假设有三层应用调用 A-B-C ,A对外提供列表服务,需要N个B和M个C,同时B也需要X个C,我们假设一个调用链路中的某个C系统故障 ,那A或者B 调用C时 就会被hold住,从而无法正常响应, 以此为例 A机器100个线程均被hold住之后基本上这个服务也就被C的这个故障给拖垮了,这就是所谓的雪崩效应吧,这时候我们就引入了熔断的概念,熔断 ,主要是针对CS调用中 C端针对现有系统状态实时的一个策略,可以有效防止x雪崩效应。

简单说下自己看Hystrix熔断代码,自己简单的一些收获。

我们以A-B的调用为例简单介绍下
1、A到B的直接调用改为间接调用,中间做一层适配,具体实现方式不限
2、在真实调用之前提供一个熔断检测的allowRequest方法,该方法主要是控制是否熔断和熔断后尝试这两部分情况,
熔断 最简单就是靠失败计数器即可,在真实调用出现问题之后,计数器+1 当计数器失败数量达到熔断阈值时直接熔断
熔断中尝试 使用的是时间周期处理,在开始熔断的时候记录下最后一次访问系统时间,然后根据实时访问的系统时间是否大于最后时间+熔断周期 判断是否要发起尝试。
熔断和尝试两者有一个通过时直接调用B应用,否则 直接走快速失败的fallback。
3、系统如果正常调用则重置熔断数据,否则继续熔断等下个周期重试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值