微服务保护-雪崩问题

雪崩:

微服务调用链路中的某个微服务故障,引起整个链路微服务都不可用,这就是雪崩。(在微服务中,某个微服务故障,导致整个微服务都不可用)

雪崩产生的原因:

微服务相互调用,服务提供者出现故障或阻塞。

服务调用者没有做好异常处理,导致自身故障。

调用链中所有的服务级联失败,导致整个集群故障。

解决方案

请求限流

限制访问请求微服务的并发量,避免服务因流量激增出现故障。(就像漏斗一样,当来很多水时,大口进,从细口小流量流出。)

线程隔离

限制每个业务能使用的线程数量,而将业务故障的隔离,避免故障扩散。(一个微服务会有很多业务,给每个业务都分线程数量。这样即使某个业务出问题了,不会影响其它业务。)

服务熔断

由熔断器统计请求的异常比例或慢调用比例,如果超出阈值则会熔断改业务,拦截该接口的请求。熔断期间,所有请求快速失败,全走fallback逻辑。(fallback失败处理,让业务失败时,不在抛出异常,而是返回默认数据或友好提示)

熔断器状态

closed:熔断器关闭状态。请求可以正常访问。

open:熔断器开启状态。异常或慢调用比例达到阈值,进入该状态。拦截所有请求,快速失败或者走fallback。

half-open:当达到配置的熔断时间结束后,进入该状态。该状态会放一次请求,若失败,进入open熔断状态,若成功进入closed状态。

以上问题可以用sentinel处理

相关推荐
程序员不迷路4 小时前
湖仓一体学习-数据架构演进路线
架构
stormsha4 小时前
飞算JavaAI炫技赛电商系统商品管理模块的架构设计与实现
java·架构·鸿蒙系统
minh_coo4 小时前
Spring框架事件驱动架构核心注解之@EventListener
java·后端·spring·架构·intellij-idea
海上生明月丿7 小时前
微服务02
微服务·架构
RestCloud8 小时前
iPaaS 与传统 ESB 的区别,企业该如何选择?
前端·架构
百度智能云8 小时前
MySQL内核革新:智能拦截全表扫描,百度智能云守护数据库性能与安全
架构
叫我阿柒啊9 小时前
Java全栈开发实战:从基础到微服务的深度解析
java·微服务·kafka·vue3·springboot·jwt·前端开发
LQ深蹲不写BUG9 小时前
微服务事务管理利器:Seata 核心原理与实践指南
微服务·云原生·架构
失散139 小时前
分布式专题——5 大厂Redis高并发缓存架构实战与性能优化
java·redis·分布式·缓存·架构
kida_yuan10 小时前
【从零开始】12. 一切回归原点
python·架构·nlp