熔断机制
熔断(Circuit Breaker)是微服务系统弹性治理的核心机制之一。Envoy 支持多维度的熔断参数,能够在后端服务异常或过载时,及时阻断流量,防止级联故障和雪崩效应。
熔断原理与工程意义
熔断器通过限制集群的最大连接数、请求数、重试数等,防止后端服务被压垮。当阈值被触发时,Envoy 会直接拒绝新请求或连接,保护后端服务的可用性。
常见场景:
- 后端服务短时不可用或响应变慢,防止请求洪峰进一步加剧故障。
- 高并发下主动丢弃部分请求,保障核心业务优先。
主要参数说明
max_connections
:最大并发连接数,超出后新连接被拒绝。max_pending_requests
:最大排队请求数,超出后新请求被拒绝。max_requests
:最大并发请求数,超出后新请求被拒绝。max_retries
:最大并发重试数,超出后新重试被拒绝。retry_budget
:可选,限制重试比例,防止重试风暴。
可针对不同优先级(DEFAULT/HIGH)分别配置。
典型配置片段
circuit_breakers:
thresholds:
- priority: DEFAULT
max_connections: 1000
max_pending_requests: 100
max_requests: 2000
max_retries: 3
- priority: HIGH
max_connections: 2000
max_pending_requests: 200
max_requests: 4000
max_retries: 5
工程实践建议
- 所有生产集群建议开启熔断,合理设置阈值,防止雪崩。
- 结合业务优先级,区分 DEFAULT/HIGH 两类流量的熔断参数。
- 配合健康检查、异常检测,形成完整的弹性治理闭环。
- 监控熔断相关指标(如 overflow 计数),及时发现和优化配置。
- 熔断阈值建议结合实际流量和后端容量定期评估调整。
熔断是微服务弹性架构的第一道防线,建议在所有关键集群强制开启并持续优化。