title
内贴banner
查看: 123|回复: 3

[自由交流] 微服务-API熔断原理

[复制链接]

1

主题

7

帖子

1

小草

一个优雅的会员

Rank: 1

积分
69
发表于 2020-6-17 20:05:21 | 显示全部楼层 |阅读模式
背景
一个分布式系统中,服务间互相调用错综复杂,假设某个基础服务宕机,那么就会导致若干上游调用方出现访问超时,进而引起上游重试,导致宕机的基础服务遭受到数倍的流量放大,更加无法恢复服务。
这种恶劣的情况并不会就此结束,上游因为调用基础服务超时而变慢,导致上游的上游超时…异常向上蔓延,最终导致整个分布式系统”雪崩”。
“熔断”就是为了避免”雪崩”而生的,它的思路是在调用方增加一种”避让”机制,当下游出现异常时能够停止(熔断)对下游的继续请求,当等待一段时间后缓慢放行部分的调用流量,并当这部分流量依旧正常的情况下,彻底解除”熔断”状态。
听起来,流程不算复杂吧?整个流程图如下,看不懂没关系,继续往下阅读吧。
20160423140053200.png
健康统计
判断下游正常的前提是统计最近一段时间内,下游的调用成功率,因此需要一个健康统计模块,记录最近N秒内的总请求数,成功请求数,失败请求数,是由业务调用后将结果打点到健康统计模块中。
下游健康的标志,是最近N秒的成功率大于某个阀值,那么代表下游健康。
因为时间不停的前进,要统计最近N秒内的成功率,显然仅仅维护3个数字是不足以表达的,因此这里一般会使用”时间窗口”来实现。
如最上面的图片所示,整个时间窗口由10个槽位(bucket)构成,每个槽位代表1秒钟,整个时间窗口表达了最近10秒的健康统计,最右侧的bucket记录了最近1秒的成功/失败请求数量,仅此而已。
随着时间每过去1秒,整个窗口会向右滑动1格,最左侧的1个槽位被淘汰,最右侧加入当前1秒的新槽位,这就是时间窗口的实现原理。

点评

没事 ,我想多了,哈哈~,也还好,要是原创就6了  发表于 2020-6-17 21:31
【源码分享版块】本站源码分享版块只允许原创文章内容发布.! 为把控质量,打造一个优质的源码分享平台,帖子内容必须原创发布,或者本人发布,任何转载转帖不允许发布,优雅草励志决心做一个质量的平台,且尽量不涵盖商业气息,商业化不能体现在论坛破坏良好的交流和分享的环境!任何分享的代码是可以用“小草”获得的,“小草”作为平台的积分单位可以通过发帖,回帖,点评获得,其次论坛注重内容质量,禁止一切灌水行为和扰乱行为。 任何分享的代码是可以用“小草”下载的,“小草”作为平台的积分单位可以通过发帖,回帖,点评获得,其次论坛注重内容质量,禁止一切灌水行为和扰乱行为。然后这么好的一切都是永久免费的!注册赠送11积分,每天登陆+5,评论+2,被评论+5,发主帖+20,回帖+5,分享源码可获得额外积分,别人下载一次扣一次积分!

回复

使用道具 举报

发表于 2020-6-17 21:30:35 | 显示全部楼层
原创的吗? 写的不错呢~

点评

这个很早就有人发了网上 一大把  详情 回复 发表于 2020-6-19 13:03
【源码分享版块】本站源码分享版块只允许原创文章内容发布.! 为把控质量,打造一个优质的源码分享平台,帖子内容必须原创发布,或者本人发布,任何转载转帖不允许发布,优雅草励志决心做一个质量的平台,且尽量不涵盖商业气息,商业化不能体现在论坛破坏良好的交流和分享的环境!任何分享的代码是可以用“小草”获得的,“小草”作为平台的积分单位可以通过发帖,回帖,点评获得,其次论坛注重内容质量,禁止一切灌水行为和扰乱行为。 任何分享的代码是可以用“小草”下载的,“小草”作为平台的积分单位可以通过发帖,回帖,点评获得,其次论坛注重内容质量,禁止一切灌水行为和扰乱行为。然后这么好的一切都是永久免费的!注册赠送11积分,每天登陆+5,评论+2,被评论+5,发主帖+20,回帖+5,分享源码可获得额外积分,别人下载一次扣一次积分!

回复

使用道具 举报

65

主题

96

帖子

1406

小草

版主

Rank: 7Rank: 7Rank: 7

积分
3138
发表于 2020-6-19 13:03:49 | 显示全部楼层
一颗优雅草 发表于 2020-6-17 21:30
原创的吗? 写的不错呢~

这个很早就有人发了网上 一大把
【源码分享版块】本站源码分享版块只允许原创文章内容发布.! 为把控质量,打造一个优质的源码分享平台,帖子内容必须原创发布,或者本人发布,任何转载转帖不允许发布,优雅草励志决心做一个质量的平台,且尽量不涵盖商业气息,商业化不能体现在论坛破坏良好的交流和分享的环境!任何分享的代码是可以用“小草”获得的,“小草”作为平台的积分单位可以通过发帖,回帖,点评获得,其次论坛注重内容质量,禁止一切灌水行为和扰乱行为。 任何分享的代码是可以用“小草”下载的,“小草”作为平台的积分单位可以通过发帖,回帖,点评获得,其次论坛注重内容质量,禁止一切灌水行为和扰乱行为。然后这么好的一切都是永久免费的!注册赠送11积分,每天登陆+5,评论+2,被评论+5,发主帖+20,回帖+5,分享源码可获得额外积分,别人下载一次扣一次积分!

回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

皇上,皇上,小的来报
任何分享的代码是可以用“小草”下载的,“小草”作为平台的积分单位可以通过发帖,回帖,点评获得,其次论坛注重内容质量,禁止一切灌水行为和扰乱行为。然后这么好的一切都是永久免费的!注册赠送11积分,每天登陆+5,评论+2,被评论+5,发主帖+20,回帖+5,分享源码可获得额外积分,别人下载一次扣一次积分!

退下吧,朕知道了~
快速回复 返回顶部 返回列表