Skip to content

微服务健壮性

微服务架构下,服务间的依赖关系复杂,单个服务的故障可能级联扩散,导致整个系统雪崩。健壮性是服务在异常情况下维持核心功能的能力,包括容错、隔离、恢复等机制。

服务雪崩

服务雪崩是微服务架构中最危险的现象。服务 A 调用服务 B,服务 B 响应慢或故障,服务 A 的线程池被占满,服务 A 也无法响应,故障向上扩散,最终整个系统不可用。

雪崩的成因:服务故障导致响应变慢、客户端不断重试、线程池耗尽、连接池耗尽、资源耗尽。

雪崩的传播:服务间调用链形成依赖图,故障沿着调用链向上传播,最终影响所有依赖链上的服务。

健壮性的核心机制

容错

假设故障必然发生,设计容错机制。超时机制(避免无限等待)、重试机制(短暂故障自动恢复)、熔断机制(快速失败)、降级机制(返回默认值)。

隔离

隔离故障范围,避免影响整体。线程池隔离(不同服务使用不同线程池)、信号量隔离(限制并发数)、进程隔离(不同服务部署在不同进程)、机房隔离(跨机房部署)。

恢复

故障后自动恢复,减少人工干预。健康检查(定期检查服务状态)、故障转移(切换到备用实例)、自动重启(服务崩溃后自动重启)、限流保护(保护恢复中的服务)。