微服务保护-雪崩问题

雪崩:

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

雪崩产生的原因:

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

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

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

解决方案

请求限流

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

线程隔离

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

服务熔断

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

熔断器状态

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

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

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

以上问题可以用sentinel处理

相关推荐
白-胖-子1 小时前
深入剖析大模型在文本生成式 AI 产品架构中的核心地位
人工智能·架构
武子康1 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
Pomelo_刘金4 小时前
用 DDD 把「闹钟」需求一点点捏出来
架构·rust·领域驱动设计
Pomelo_刘金5 小时前
Clean Architecture 整洁架构:借一只闹钟讲明白「整洁架构」的来龙去脉
后端·架构·rust
碳酸的唐5 小时前
Inception网络架构:深度学习视觉模型的里程碑
网络·深度学习·架构
五点六六六9 小时前
前端常见的性能指标采集
前端·性能优化·架构
平凡之大路10 小时前
【企业架构】TOGAF概念之二
架构·togaf·企业架构
秋千码途12 小时前
小架构step系列26:Spring提供的validator
java·spring·架构
guojl12 小时前
MyBatis最佳实践
后端·微服务·mybatis
西陵13 小时前
Nx带来极致的前端开发体验——借助playground开发提效
前端·javascript·架构