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