容错系统的设计模式:断路器、舱壁与重试策略
分布式系统中故障不是”if”而是”when”。三种核心容错模式:断路器(Circuit Breaker)——当对下游服务的调用失败率超过阈值(通常50%),断路器打开,后续请求直接快速失败而非等待超时,保护上游不被下游拖死。半开状态允许探测请求通过,确认下游恢复后关闭断路器。
舱壁(Bulkhead)——将不同下游调用的线程/连接池隔离。支付服务的线程池满了不该影响用户资料的查询。实现方式:为每个下游服务分配独立的HTTP连接池和线程池。重试策略必须配合指数退避和jitter——retry_delay = min(base * 2^attempt + random(0, 1000), max_delay),避免惊群效应。这三个模式的组合是每个分布式系统的基础设施标配。

发表回复