|用100行代码手写一个Hystrix( 二 )
- 基于统计信息做熔断 , 错误请求占比超过阈值做熔断
- 统计周期在分钟级别内(1 分钟内的统计达到阈值)
- 如果分钟内 , 总请求次数未达到 minTimes 次数不做熔断(请求频次太低 , 统计信息无意义)
- 即便是到达熔断条件 , 仍然牺牲 1% (可修改)的请求做探活isFailed.get()&&System.currentTimeMillis() % 100 == 0
Hystrix 提供了服务熔断、线程隔离等一系列服务保护功能 。 我们手写的熔断器只能提供基于调用方的手工熔断方法 。
Hystrix 提供了线程池、信号量两种方式 。 手写熔断器功能相对单一只基于统计信息 , 且以分钟为维度的颗粒度较为粗糙 。
Hystrix 命令式编程和注册回调的方式 , 代码复杂度高 。 手写熔断器在侵入代码过程中 , 偏面向过程 , 理解成本低 。
去掉注释和无效空行后实际有效代码不足 100 行 , 我们用了不到一百行代码实现了熔断功能 。 虽然应用到大型服务场景下会有诸多缺陷 , 也希望至少能为大家提供了一个思路 。
作者:小眼睛聊技术链接:https://juejin.im/post/5ef900dcf265da22b13680f1
推荐阅读
- |防止删库悲剧发生,这里有个Bash脚本测试框架,危险代码一测便知
- 设计|代码和设计是如何一步步腐化的
- |苹果宣布将弃用代码库中的非包容性语言
- CSDN|中国首家苹果零售店重开业,苹果CEO库克发文揭幕;“携号转网”服务用户破千万;GitHub 完成北极源代码存档|极客头条
- 代码|为了更好的代码:12个Python小窍门
- cnBeta|苹果将剔除或替换代码库中的非包容性语言
- 互联网|高智商犯罪:价值4000万人民币的3行代码
- 物联网|0开发、0配置、0代码,小白也能让300+物联网设备上云和联动
- 技术编程|Java新手的一段代码,到现在入职一年了竟然还没搞懂?求解释
- CSDN|刺激!一行代码即可导出所有浏览记录
