11.2、Sentinel核心概念
Sentinel 核心概念
理解 Sentinel 的核心概念是使用 Sentinel 的基础。本节将学习 Sentinel 的核心概念。
本章节内容参考官方文档顺序: 根据 Sentinel 官方文档 - Basic Implementation,官方文档按照以下顺序讲解核心概念:
- Resource(资源)
- Rule(规则)
- Flow Control(流量控制)
- Circuit Breaking(熔断降级)
- System Protection(系统保护)
本节将学习:资源、规则、流量控制、熔断降级,以及系统保护。
资源
官方定义
根据 Sentinel 官方文档 - Resource,资源的定义是:
资源 是 Sentinel 中的核心概念之一。资源可以是任何内容,例如应用程序、服务或代码片段。只要通过 Sentinel API 定义的代码,就是资源,能够被 Sentinel 保护起来。
资源类型
根据官方文档,Sentinel 支持多种资源类型:
1. 方法资源
- 通过
@SentinelResource注解定义的方法 - 通过 Sentinel API 定义的方法
- 可以是任何 Java 方法
2. 接口资源
- HTTP 接口
- RPC 接口
- 通过 URL 或路径定义的资源
3. 服务资源
- 微服务名称
- 服务实例
- 通过服务名定义的资源
资源定义方式
Sentinel 支持多种资源定义方式:
- 注解方式:使用
@SentinelResource注解 - API 方式:通过
SphU.entry()API - 自动方式:与 Spring Cloud 集成时自动识别资源
规则
规则定义
根据官方文档,规则是 Sentinel 控制资源访问的配置:
规则 是 Sentinel 控制资源访问的配置。规则可以动态修改,实时生效。Sentinel 支持多种规则类型,包括流量控制规则、熔断降级规则、系统保护规则等。
规则类型
根据官方文档,Sentinel 支持以下规则类型:
1. 流量控制规则(Flow Rule)
- 控制资源的访问流量
- 支持 QPS 限流、线程数限流等
- 可以设置限流阈值、控制效果等
2. 熔断降级规则(Degrade Rule)
- 控制资源的熔断降级
- 支持慢调用比例、异常比例、异常数等策略
- 可以设置熔断阈值、恢复时间等
3. 系统保护规则(System Rule)
- 保护系统整体稳定性
- 支持系统负载、CPU 使用率、入口 QPS 等维度
- 可以设置系统保护阈值
4. 热点参数规则(Param Flow Rule)
- 针对热点参数进行限流
- 支持参数索引、参数值等维度
- 可以设置参数限流阈值
5. 授权规则(Authority Rule)
- 控制资源的访问权限
- 支持白名单、黑名单等策略
- 可以设置访问来源限制
流量控制
控制维度
流量控制维度:
- QPS 限流
- 线程数限流
- 关联限流
- 链路限流
熔断降级
降级策略
熔断降级策略:
- 慢调用比例
- 异常比例
- 异常数
官方资源
根据 Sentinel 官方文档 - Basic Implementation:
-
资源(Resource):官方文档详细说明了资源的定义和类型,包括方法资源、接口资源、服务资源等。文档强调,资源是 Sentinel 的核心概念,只有通过 Sentinel API 定义的代码才能被保护。
-
规则(Rule):官方文档详细描述了规则的种类和配置方式,包括流量控制规则、熔断降级规则、系统保护规则等。文档说明了规则可以动态修改,实时生效。
-
流量控制(Flow Control):官方文档详细说明了流量控制的原理和实现方式,包括 QPS 限流、线程数限流、关联限流、链路限流等。文档提供了详细的配置示例和使用场景。
-
熔断降级(Circuit Breaking):官方文档详细说明了熔断降级的原理和实现方式,包括慢调用比例、异常比例、异常数等策略。文档说明了熔断器的三种状态:关闭、开启、半开。
-
系统保护(System Protection):官方文档详细说明了系统保护的原理和实现方式,包括系统负载保护、CPU 使用率保护、入口 QPS 保护等。文档说明了系统保护的自适应机制。
参考资源:
- Sentinel 核心概念:https://sentinelguard.io/zh-cn/docs/basic-implementation.html
- Sentinel 流量控制:https://sentinelguard.io/zh-cn/docs/flow-control.html
- Sentinel 熔断降级:https://sentinelguard.io/zh-cn/docs/circuit-breaking.html
本节小结
在本节中,我们学习了:
第一个是资源。 需要保护的目标。
第二个是规则。 控制规则的类型。
第三个是流量控制。 流量控制的维度。
第四个是熔断降级。 熔断降级策略。
这就是 Sentinel 核心概念。理解这些概念,是使用 Sentinel 的基础。
在下一节,我们将学习 Sentinel 控制台安装。