微服务保护-雪崩问题

雪崩:

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

雪崩产生的原因:

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

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

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

解决方案

请求限流

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

线程隔离

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

服务熔断

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

熔断器状态

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

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

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

以上问题可以用sentinel处理

相关推荐
J_Anson1 小时前
Dubbo架构深度分析
架构·dubbo
cjy0001111 小时前
Partition架构
架构
无心水5 小时前
Java时间处理封神篇:java.time全解析
java·开发语言·python·架构·localdate·java.time·java时间处理
狼与自由6 小时前
K8S的架构
容器·架构·kubernetes
code_Bo7 小时前
使用AI完成Swagger接口类型在前端自动生成的工具
前端·后端·架构
架构师沉默7 小时前
AI 让程序员更轻松了吗?
java·后端·架构
Kel7 小时前
深入 OpenAI Node SDK:一个请求的奇幻漂流
javascript·人工智能·架构
码路高手8 小时前
Trae-Agent中的设计模式应用
人工智能·架构
const_qiu8 小时前
微服务测试策略:端到端质量保障
微服务·云原生·架构
码路高手8 小时前
Trae-Agent中的Evaluation架构分析
人工智能·架构