11.2Sentinel核心概念

分类: Sentinel流量控制与熔断

Sentinel 核心概念

理解 Sentinel 的核心概念是使用 Sentinel 的基础。本节将学习 Sentinel 的核心概念。

本章节内容参考官方文档顺序: 根据 Sentinel 官方文档 - Basic Implementation,官方文档按照以下顺序讲解核心概念:

  1. Resource(资源)
  2. Rule(规则)
  3. Flow Control(流量控制)
  4. Circuit Breaking(熔断降级)
  5. 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

  1. 资源(Resource):官方文档详细说明了资源的定义和类型,包括方法资源、接口资源、服务资源等。文档强调,资源是 Sentinel 的核心概念,只有通过 Sentinel API 定义的代码才能被保护。

  2. 规则(Rule):官方文档详细描述了规则的种类和配置方式,包括流量控制规则、熔断降级规则、系统保护规则等。文档说明了规则可以动态修改,实时生效。

  3. 流量控制(Flow Control):官方文档详细说明了流量控制的原理和实现方式,包括 QPS 限流、线程数限流、关联限流、链路限流等。文档提供了详细的配置示例和使用场景。

  4. 熔断降级(Circuit Breaking):官方文档详细说明了熔断降级的原理和实现方式,包括慢调用比例、异常比例、异常数等策略。文档说明了熔断器的三种状态:关闭、开启、半开。

  5. 系统保护(System Protection):官方文档详细说明了系统保护的原理和实现方式,包括系统负载保护、CPU 使用率保护、入口 QPS 保护等。文档说明了系统保护的自适应机制。

参考资源

本节小结

在本节中,我们学习了:

第一个是资源。 需要保护的目标。

第二个是规则。 控制规则的类型。

第三个是流量控制。 流量控制的维度。

第四个是熔断降级。 熔断降级策略。

这就是 Sentinel 核心概念。理解这些概念,是使用 Sentinel 的基础。

在下一节,我们将学习 Sentinel 控制台安装。