内外结合:降级熔断+流量控制

通过前文的讲解与实践,可知 Sentinel 服务容错的实现思路主要是降级熔断+流量控制,总结一下就是 “内外结合”。

流量控制主外,在请求进入应用前就先做预处理,是一种 “防患于未然” 的实现思路。降级熔断主内,是应用中出现了过多程序异常的处理方案,属于 “亡羊补牢” 的做法。当系统中出现一定数量的慢请求或异常请求时,及时将该资源熔断,防止它级联影响其他资源和异常扩散。Sentinel “内外结合” 的服务容错的实现思路如图 11-32 所示。

image 2025 04 18 13 21 17 130
Figure 1. 图11-32 Sentinel “内外结合”的服务容错的实现思路

“外” 是指对外部流量的控制,此时请求尚未实际地被系统处理,Sentinel 可以使用不同的限流策略对这些请求进行整形、控制、丢弃,在一定程度上让进入系统的流量处于一个合理的阈值内,避免出现瞬时流量打垮系统的情况。“内” 是指对系统内部的异常治理,此时请求已经实际地被系统所处理,当调用链路中的某个资源出现不稳定的情况(如调用一直超时或异常比例较高)时,对这个资源的调用进行限制,并让请求快速失败,避免影响系统中其他的服务。“内外结合”的两种方案都可以通过 Sentinel 控制台进行规则配置,笔者已经详细地演示过流控规则和熔断规则的配置和使用,这里不再赘述。

结合流量控制和服务熔断介绍了 Sentinel 服务容错 “内外结合” 的实现思路,希望读者能够对 Sentinel 有一个更为全面的认识。当然,Sentinel 中间件中并不止这些知识点,因篇幅有限,笔者只介绍了其主要的功能和使用方法。还有额外的一些知识,建议读者通过网上的资料了解一下,如系统自适应保护、热点数据流控、集群流控、网关流控等,并且通过 Sentinel 控制台实际地配置和体验这些功能。