微服务保护-雪崩问题

雪崩:

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

雪崩产生的原因:

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

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

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

解决方案

请求限流

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

线程隔离

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

服务熔断

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

熔断器状态

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

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

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

以上问题可以用sentinel处理

相关推荐
小毅&Nora7 小时前
【微服务】【部署】 ② 优雅停机 - 从“关门打烊“到“无缝交接“的实战指南
微服务·云原生·架构
梁萌7 小时前
微服务任务调度XXL-JOB实战(docker)
docker·微服务·xxl-job·定时任务
晚霞的不甘7 小时前
深度解析:Flutter 与 OpenHarmony 融合架构下的跨平台渲染机制与系统级集成
flutter·架构
Molesidy8 小时前
【Embedded Development】【ARM】ARM架构的初步认识
arm开发·架构
晚霞的不甘8 小时前
架构演进与生态共建:构建面向 OpenHarmony 的 Flutter 原生开发范式
flutter·架构
Mintopia8 小时前
🚀 Supabase:强力的服务端助手
数据库·架构·全栈
曾经的三心草8 小时前
微服务的编程测评系统-修改登录逻辑为邮箱登录
微服务·云原生·架构
jinxinyuuuus9 小时前
局域网文件传输:P2P架构中的带宽测量与高效率文件分块传输
服务器·架构·p2p
weixin_307779139 小时前
医院症状收集应用安全架构设计:基于AWS SQS和SNS的数据保护解决方案
安全·云原生·架构·云计算·aws
爱吃烤鸡翅的酸菜鱼9 小时前
【RabbitMQ】发布订阅架构深度实践:构建高可用异步消息处理系统
java·spring boot·分布式·后端·websocket·架构·rabbitmq