雪崩问题及解决方案
创作时间:
作者:
@小白创作中心
雪崩问题及解决方案
引用
CSDN
1.
https://blog.csdn.net/weixin_66015936/article/details/143054909
在微服务架构中,雪崩问题是一个常见的挑战。当一个服务发生故障时,可能会导致整个系统瘫痪。本文将深入探讨雪崩问题的定义及其四种主要解决方案:超时处理、仓壁模式、断路器和限流。
一、雪崩问题
1.什么是雪崩问题?
微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞。此时,其它不依赖于服务I的业务似乎不受影响。
服务器支持的线程和并发数有限,请求一直阻塞,会导致服务器资源耗尽,从而导致所有其它服务都不可用,那么当前服务也就不可用了。那么,依赖于当前服务的其它服务随着时间的推移,最终也都会变的不可用,形成级联失败,雪崩就发生了:
二、解决方案(4种)
2.1 超时处理
- 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待
2.2 仓壁模式
- 仓壁模式来源于船舱的设计,船舱都会被隔板分离为多个独立空间,当船体破损时,只会导致部分空间进入,将故障控制在一定范围内,避免整个船体都被淹没
于此类似,限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。
2.3 断路器
- 断路器模式:由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。
当发现访问服务D的请求异常比例过高时,认为服务D有导致雪崩的风险,会拦截访问服务D的一切请求,形成熔断:
2.4 限流
- 流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。
总结:
1、什么是雪崩问题?
- 微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。
2、可以认为:
- 限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩是一种预防措施。
- 超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。
热门推荐
癌症筛查:检验科如何成为你的“健康守护”?
衡水累计投资52.9亿元推进大运河文化保护传承利用
骑电动车被汽车撞了怎么处理?这份指南请收好
法兰的分类、使用范围、连接和密封形式及常见故障
每天快走1小时,这些疾病会远离你!
暗黑2重制版更新说明
如何介绍一个主持人团队
Docker和K8S(Kubernetes)集群容器化部署
顶级大佬的投资心得!
工商银行反腐风暴持续,广东省分行原行长黄明祥被开除党籍
上海的十大家常菜,上海人最爱吃的十道家常菜
LAB彩色空间修图法:使用Photoshop Lab模式精细调整图像
英伟达、众擎人形机器人产业链初具规模
孩子的户口可以单独一个本么
宏观经济政策促进东北地区经济高质量发展研究
如何深入分析趋势线并把握市场趋势?这种趋势线分析有哪些应用场景?
科普小贴士:如何避免食物过敏的发生
前驱车和后驱车在日常驾驶中的差异:老司机们的亲身感受
提高考研英语口语的方法
八字日柱丁巳对女性命理有何影响
如何通过手机相机功能测试用例提升摄影技巧?
探究王者荣耀中喷子数量多于其他游戏的原因
现象级热度!B站「黑神话悟空」暴涨7亿流量,霸榜刷屏!
多地公布2025考研成绩查询时间!附查分通道
钢铁股与机器人概念股齐飞,A股市场迎来新热点?
胡椒木盆栽的养殖方法和注意事项
上海“随申办”婚姻登记预约攻略:在线预约、一站式办理全指南
SOLIDWORKS大型装配体优化-3.软件操作篇
肝硬化TIPS手术恢复指南
健康管理观念先行 儿童身高管理有了“指导师”