返回

Sentinel 入门:基本概念概述

后端

了解 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 通过这些基本概念来实现流控、熔断和监控功能,保障微服务的稳定性。