高并发系统设计-熔断
高并发系统设计-熔断 一、概述 1.1 什么是熔断 熔断(Circuit Breaker)的核心思想来自电路保险丝: 当电流过大时,保险丝会断开,保护整个电路。 在分布式系统中: 服务A → 服务B → 服务C → 数据库 如果服务C异常: 超时 报错 响应缓慢 那么如果不做控制: A 等 BB 等 CC 卡住→ 线程全部阻塞→ 请求堆积→ 系统雪崩 熔断的作用就是: 当下游服务异常时,直接停止调用它,快速失败。 1.2 为什么需要熔断 在高并发系统中,最危险的问题不是“服务失败”,而是: 失败被放大并传播 例如: 数据库慢查询 ↓ 所有请求阻塞 ↓ 连接池耗尽 ↓ Redis压力上升 ↓ Gateway超时 ↓ 全链路崩溃 这就是: 级联故障(Cascade Failure) 1.3 熔断解决的问题 熔断解决三类问题: 1. 防止线程阻塞 避免请求一直等待下游: 请求 → 卡住 → 不释放资源 2.防止错误放大 错误不会扩散到上游系统: 错误服务 → 不再调用 1.4 企业典型场景 场景1:支付服务异常 订单服务 → 支付服务(异常) 不熔断: → 一直等待 → 订单线程堆积 熔断后: → 直接返回“支付处理中” 场景2:库存服务不可用 库存服务挂了 熔断: → 不再调用库存 → 返回“库存未知” 场景3:第三方接口超时 例如:...