概述微服务在复杂网络与依赖链条下易出现抖动与级联故障。本文以限流、熔断与重试为核心,给出参数建议与示例,强调监控与失败注入的验证闭环。限流(Token Bucket/Leaky Bucket)入口限流:按接口设定 `rate` 与 `burst`;骨干接口优先保护。建议参数:以 P75–P90 的稳定流量为 `rate`,`burst` 预留 20%–50%。rate = 1000 req/s, burst = 500 熔断(Circuit Breaker)三态:Closed → Open → Half-Open。触发条件:连续错误率或超时比例超过阈值(如 50% 错误,持续 10s)。半开探测:以小批量(如 1–5 个请求)检测恢复再关闭断路。重试与退避仅对幂等读操作重试;写操作需幂等键(`Idempotency-Key`)。建议:最多 2–3 次,指数退避(`baseBackoff=100ms`,`maxBackoff=2s`)。backoff = min(2^attempt * base, maxBackoff) 示例(伪代码)breaker(errRateThreshold=0.5, window=10s) timeout = 800ms retry(attempts=3, backoff=exp(100ms), retryOn=5xx|timeout) rateLimiter(rate=1000/s, burst=500) 验证与监控失败注入:在预发布进行超时/错误注入,确认熔断触发与恢复路径。观测指标:请求成功率、P95/P99 延迟、拒绝/熔断/重试计数;区分原因标签。日志关联:包含 traceId 与调用方信息,便于定位级联异常。常见误区对非幂等写操作进行重试导致重复写入。以无限重试替代降级或熔断,造成雪崩。限流只设全局、不设接口或租户维度,导致关键接口被挤压。结语以限流守住入口、重试平衡瞬时错误、熔断快速隔离故障,并以度量/注入验证其行为,形成稳健的服务治理策略。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部