Sentinel 是一个开源的流量控制组件,它主要用于保护后端服务的稳定性。在微服务架构中,服务之间相互依赖,任何一个服务出现问题都可能导致连锁反应,最终导致整个系统的瘫痪。为了防止这种情况发生,Sentinel 提供了多种流量控制和熔断降级策略,其中就包括系统保护规则。
系统保护规则是 Sentinel 中用于保护整个系统稳定性的机制之一。它的主要目的是避免由于请求过多而导致系统过载。当系统的负载达到一定的阈值时,Sentinel 可以通过拒绝部分请求来保护系统免于崩溃。以下是系统保护规则的一些工作原理:
-
资源占用率:可以设定系统的最大 CPU 使用率、最大响应时间等指标。当这些指标超过预设的阈值时,Sentinel 将会触发保护机制,限制进入系统的流量。
-
异常比例:可以设置允许的异常请求比例。如果在一个时间段内,异常请求的比例超过了这个阈值,Sentinel 将会触发降级,即直接返回错误给客户端而不真正执行业务逻辑。
-
QPS(每秒查询率):虽然有针对特定接口的流控规则,但是也可以从全局的角度限制系统的 QPS,以确保系统不会因为单一接口的流量激增而崩溃。
-
线程数:可以限制处理请求的最大线程数,一旦达到这个上限,新的请求将会被限流。
-
入口流量控制:可以对整个系统的入口流量进行控制,这样即使某些服务出现异常,也不会影响到整个系统的稳定性。
-
动态规则管理:Sentinel 支持动态调整规则,这意味着可以根据系统的实时状态来调整保护规则,使得系统能够更好地应对突发流量。
通过这些机制,Sentinel 能够帮助开发者有效地保护他们的服务,避免由于流量过大或者其他原因导致的服务不可用。