概述
一、熔断的目的
系统微服务化后,分布式部署,系统之间通过RPC框架进行通信,系统发生故障的概率随着系统规模的增长而加大;
在调用服务时,一些非关键路径发生问题,不能影响整个系统的服务。
二、熔断系统需求
1、熔断返回默认值,或者null,最好RPC client就能支持,无需业务改动;
2、熔断发生时,进行报警,并打印异常日志;
3、可以实时下发配置,手动和自动都可以实现熔断;
4、可视化监控平台,能看到是否发生熔断。
三、方案
业界方案:Netflex OSS Hystrix,业务侵入较大
优雅方案:RPC Client+服务治理平台方式
基于RPC Client实现熔断,统计调用决定是否进行熔断,服务治理平台存储相关配置。
四、业务流程
1、创建代理层,避免对业务侵入,所有熔断业务在代理层完成
2、代理层拉取熔断配置
3、Client发起RPC调用,通过代理层
4、是否触发本地熔断,如果熔断,返回默认值,并报警,熔断的配置可以设置过期时间,设置两个key,key1表示所有熔断,key2表示部分熔断,key1过期时间比key2短,当key1过期是,开始尝试部分恢复请求,如果都成功,则删除key2;如果还是失败,重新设置key1恢复全部熔断,并延长key2时间,重复以上步骤。
最后
以上就是执着飞鸟为你收集整理的服务熔断设计的全部内容,希望文章能够帮你解决服务熔断设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复