降级规则详解
在 Sentinel 控制台中,降级规则用于实现服务的熔断降级功能,以防止故障扩散和系统雪崩。用户可以为特定资源设定多种类型的降级策略:
-
平均响应时间(RT):
- 当资源的平均响应时间超过设定阈值并在指定的时间窗口内持续触发,则会在接下来的一段时间内对这个资源进行熔断,拒绝后续请求或者执行预设的 fallback 处理逻辑。
-
异常比例(Exception Ratio):
- 根据资源调用时产生的异常数量占总请求数的比例,当达到预设阈值时触发降级。
-
异常数(Exception Count):
- 在一定时间窗口内,若资源发生异常的次数超过设定的阈值,将会触发降级。
-
自定义降级:
- 用户还可以基于自定义的统计指标(如业务错误码、特定类型异常等)设置降级规则。
配置降级规则时,通常包括以下参数:
- 资源名称:需要保护的资源。
- 阈值类型与具体数值:根据上述不同策略设定相应的阈值。
- 时间窗口大小:用来计算平均响应时间或异常比例的时间范围。
- 熔断后恢复策略:可设置自动或手动恢复,以及恢复时间窗。
热点规则详解
热点规则是针对热点参数(例如URL中的某个频繁变化的参数)进行流量控制的一种方式。热点参数限流可以在一定程度上预防因某个热点数据而导致的服务过载。
热点规则通常包含以下内容:
- 参数索引:热点参数在请求中的位置或名称。
- 阈值类型与阈值:例如QPS阈值,超过该阈值则对该热点参数对应的资源进行限流。
- 热度维度:可以根据请求来源IP、用户ID或其他自定义字段作为热度维度进行限流。
授权规则详解
授权规则主要应用于权限管理,支持黑白名单机制,可以限制特定资源仅允许部分客户端调用。
授权规则配置项:
- 资源名:需要授权控制的资源。
- 流控应用:定义黑名单或白名单,即允许访问或禁止访问的客户端列表。
- 授权类型:区分是白名单模式还是黑名单模式。
系统规则详解
系统规则主要用于从整体系统层面进行保护,监控系统的负载情况,如CPU使用率、线程池队列长度等核心健康指标。
系统规则一般包括:
- CPU使用率:当系统 CPU 使用率超过阈值时,触发系统保护,开始拒绝请求。
- 线程数:监控系统的线程池并发线程数,超出阈值时启动保护。
- 入口 QPS:针对入口流量,如果其总体的 QPS 达到一定的阈值,也可以开启全局流控。
通过这些规则的配置和监控,Sentinel 控制台可以帮助开发者更加精细地管理和维护分布式系统的服务质量和稳定性。