开篇:如何防止一个慢接口拖垮整个系统?
想象一下,你住在一栋大楼里,大楼只有一根总水管。某天五楼的住户打开水龙头忘了关,水压骤降,整栋楼都没水用了。
微服务系统中也有类似的问题。服务 A 调用服务 B,服务 B 又调用服务 C。如果服务 C 响应变慢,服务 B 的线程就会被大量阻塞等待,进而拖垮服务 B,然后服务 A 也跟着挂掉。这种"一个慢接口导致整条链路崩溃"的现象,叫做 服务雪崩。
我们没办法保证每个服务永远不出问题,但我们可以做好防御:限流、熔断、降级。
Sentinel 就是阿里巴巴开源的一款面向分布式服务架构的流量治理组件,专门用来解决这类问题。
大约 11 分钟