雪崩问题及解决方案
创作时间:
作者:
@小白创作中心
雪崩问题及解决方案
引用
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、可以认为:
- 限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩是一种预防措施。
- 超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。
热门推荐
基金投资如何实现稳健收益?这种稳健收益有哪些保障措施?
鼻炎吃中药的作用
数字农田:从传统农业到智能农业的数字化转型
长期出现这些症状,小心肝硬化!做好7个预防,守护肝脏健康
128条举报仅7起基本属实?别让教师困于“投诉内耗”
为什么容易长胃息肉
感冒后嗅觉失灵的中医治疗方法
交换机与路由器到底有何不同?
鸣潮掉帧,网络连接失败解决教程
EPC项目完整指南:从概念到结算全流程解析
单机卸率每小时3167吨!山东港口青岛港再创世界纪录
眼袋可以自然消除吗
冬天适合给孩子补钙铁锌吗
房屋装修时间合法规定及噪音控制方法
时隔4年重启降息 “美元潮汐”如何影响全球经济
徐州:一座值得探索的历史文化名城
如何通过直播实现盈利?
居间费交多少税?一文详解居间费税收问题
2025免费医学定向生的就业前景如何?待遇怎么样?
老年斑的形成原因及预防方法
工时制度的法律依据是什么?
赵公明身份之谜
塔吊安全规范讲解
高尔基:从贫苦少年到文学巨匠的奋斗历程
“酸奶的神奇力量:如何重塑你的肠道微生物群落?”
使用C语言实现栈(图解push+pop操作&&附完整代码)
什么是高位放量现象?这种现象如何进行分析和应对?
巴西足坛历史球员排名!大罗位列第二 小罗排名第五 卡卡位列第十二
最新研究:母亲年龄越大,宝宝可能更健康?揭秘线粒体DNA突变的遗传规律
发热?让中医帮你冷静一下