返回
Sentinel 入门:基本概念概述
后端
2023-12-06 23:51:25
了解 Sentinel 的基本概念对于掌握其工作原理和正确使用 Sentinel 至关重要。本章将介绍 Sentinel 中最核心的概念,包括 Resource、Context、Sph、Entry、Node、ProcessorSlot 和 Rule。
Resource
资源是 Sentinel 流控和熔断的保护对象,可以是任意业务或技术对象,例如:
- API 接口
- 数据库查询
- 缓存服务
- 第三方服务调用
资源通过 Resource.define()
方法定义,Sentinel 会根据资源的名称来进行流控和熔断。
Context
上下文是指 Sentinel 在做流控和熔断时,根据不同的上下文做出不同的决策。上下文包括:
- 应用名称
- 服务名称
- 机器 IP
- 线程名称
上下文通过 SphU.entry()
方法指定,Sentinel 会根据上下文来进行流控和熔断。
Sph
Sph 是 Sentinel 的核心类,提供了 Sentinel 的主要功能,包括:
- 流控
- 熔断
- 监控
Sph 类提供了以下几个主要方法:
Sph.entry()
:根据资源名称和上下文进入资源的流控和熔断保护Sph.exit()
:退出资源的流控和熔断保护Sph.getCurrentEntry()
:获取当前资源的流控和熔断信息Sph.setFlowValve()
:设置资源的流控阀门Sph.setCircuitBreaker()
:设置资源的熔断器
Entry
Entry 是 Sph.entry() 方法返回的对象,代表资源的流控和熔断保护状态。Entry 包含以下几个主要属性:
resource
:资源名称context
:上下文count
:通过流控和熔断保护的请求数blockQps
:被流控拦截的请求数blockException
:被熔断拦截的请求数
Node
Node 是 Sentinel 的监控节点,用于收集和存储 Sentinel 的监控数据。Node 可以部署在任何一台机器上,Sentinel 会自动发现并连接到 Node。
ProcessorSlot
ProcessorSlot 是 Sentinel 的限流槽,用于限制资源的并发请求数。ProcessorSlot 包含以下几个主要属性:
resource
:资源名称context
:上下文qps
:限流阈值count
:通过限流的请求数blockQps
:被限流拦截的请求数
Rule
Rule 是 Sentinel 的规则,用于定义资源的流控、熔断和监控规则。Rule 包括以下几个主要属性:
resource
:资源名称context
:上下文strategy
:流控策略threshold
:流控阈值retryTimeout
:熔断重试超时时间statIntervalMs
:监控统计时间间隔
Sentinel 通过这些基本概念来实现流控、熔断和监控功能,保障微服务的稳定性。