1. Sentinel 概述

1.1 什么是 Sentinel

Sentinel 是阿里巴巴开源的面向分布式服务架构的流量控制、熔断降级与系统自适应保护组件。它以“流量”为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度保障微服务的稳定性。

Sentinel 的核心设计理念是:先对系统进行防护,再对业务进行优化。它不依赖任何外部中间件即可独立运行,同时提供丰富的 SPI 扩展点,能够无缝集成 Spring Cloud、Dubbo、gRPC 等主流微服务框架。

官方定义:Sentinel 是面向云原生微服务的高可用流量防护组件,等价于“Hystrix + 流量控制 + 实时监控 + 动态规则推送”的整合方案。

1.2 Sentinel 的核心特性

Sentinel 提供了以下六大核心能力,覆盖微服务高可用的全场景需求:

特性分类 具体能力 说明
流量控制 QPS 限流、线程数限流、并发控制 支持基于调用关系、来源应用、热点参数的精细化限流
熔断降级 慢调用比例、异常比例、异常数熔断 基于滑动时间窗口的实时熔断统计,支持半开恢复探测
系统保护 Load、CPU、平均 RT、入口 QPS 自适应 根据系统水位自动调整流量,防止雪崩
热点防护 热点参数限流、热点参数熔断 针对高频访问的特定参数值进行精准防护
实时监控 秒级监控、Dashboard 可视化 内置监控数据采集,支持 Prometheus 对接
动态规则 Nacos、Apollo、ZooKeeper 动态数据源 规则变更实时生效,无需重启应用
实践要点:Sentinel 的熔断降级基于滑动窗口算法,统计窗口默认 1 秒,最小统计粒度 500ms,相比 Hystrix 的固定时间窗口具有更高的实时性和准确性。

1.3 Sentinel 与 Hystrix 的对比

Hystrix 是 Netflix 开源的熔断器组件,已于 2018 年进入维护状态。Sentinel 作为后起之秀,在设计理念、功能覆盖和性能表现上均有显著优势。以下是两者的核心差异:

对比维度 Sentinel Hystrix
隔离策略 信号量隔离(线程数限流) 线程池隔离 / 信号量隔离
熔断统计 滑动时间窗口(秒级实时) 固定时间窗口(默认 10 秒)
流量控制 QPS 限流、并发控制、热点限流 不支持
系统保护 自适应过载保护(Load/CPU/RT) 不支持
动态规则 支持 Nacos、Apollo、ZK 等 仅支持文件/代码配置
实时监控 内置 Dashboard + 秒级监控 需集成 Turbine + Hystrix Dashboard
半开恢复 支持(可配置探测请求数) 支持(固定 1 个探测请求)
社区活跃度 活跃(阿里主导,持续迭代) 维护状态(2018 年停止更新)
迁移建议:如果现有项目仍在使用 Hystrix,建议逐步迁移至 Sentinel。迁移路径推荐:先引入 Sentinel 与 Hystrix 共存,通过开关灰度切换,待验证稳定后再下线 Hystrix 依赖。本课程后续章节将详细演示这一过程。

1.4 Sentinel 整体架构

下图展示了 Sentinel 的核心架构与数据流。从资源定义、规则配置、统计计算到熔断/限流动作,形成完整的闭环:

Sentinel 核心架构图 资源定义 @SentinelResource / SphU 规则配置 流量规则 | 熔断规则 | 系统规则 | 热点规则 统计与决策 滑动窗口统计 | 限流算法 | 熔断策略 | 系统自适应 执行动作 通过 | 限流 | 熔断 | 降级 动态数据源 Nacos / Apollo Dashboard 实时监控 / 规则管理 数据流:资源定义 → 规则配置 → 统计决策 → 执行动作,动态数据源与 Dashboard 提供规则推送与监控能力

1.5 本章小结

  • Sentinel 是阿里开源的流量防护组件,覆盖限流、熔断、系统保护三大场景。
  • 核心特性包括流量控制、熔断降级、系统保护、热点防护、实时监控、动态规则六大能力。
  • 与 Hystrix 相比,Sentinel 在隔离策略、统计精度、流量控制、动态配置等方面全面领先,且社区持续活跃。
  • Sentinel 的架构采用资源-规则-统计-动作四层模型,配合动态数据源和 Dashboard 形成完整的高可用防护闭环。