11.1、Sentinel简介
Sentinel 简介
Sentinel 是 Spring Cloud Alibaba 的流量控制和熔断降级组件。本节将学习 Sentinel 的基本概念。
本章节内容参考官方文档顺序: 根据 Sentinel 官方文档 - Introduction,官方文档按照以下顺序讲解:
- What is Sentinel(Sentinel 是什么)
- Key Features(核心功能)
- Design Philosophy(设计理念)
- Use Cases(使用场景)
本节将学习:Sentinel 是什么、核心功能、设计理念、与 Hystrix 对比,以及适用场景。
Sentinel 是什么
官方定义
根据 Sentinel 官方文档 - Introduction,Sentinel 的定义是:
Sentinel 是面向分布式服务架构的轻量级流量控制框架,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
设计理念
官方文档说明了 Sentinel 的设计理念:
- 以流量为切入点:Sentinel 从流量控制入手,通过控制流量来保护服务的稳定性
- 多维度保护:不仅提供流量控制,还提供熔断降级、系统负载保护等多维度保护
- 轻量级设计:Sentinel 采用轻量级设计,对应用性能影响小
- 实时监控:提供实时监控和控制台,方便运维和开发人员查看系统状态
核心功能
主要功能
根据官方文档,Sentinel 的核心功能包括:
1. 流量控制(Flow Control)
- QPS 限流:控制每秒请求数,防止系统过载
- 线程数限流:控制并发线程数,保护系统资源
- 关联限流:根据关联资源的流量进行限流
- 链路限流:根据调用链路进行限流
- 预热限流:系统启动时逐步增加流量,避免冷启动问题
2. 熔断降级(Circuit Breaking)
- 慢调用比例:当慢调用比例超过阈值时触发熔断
- 异常比例:当异常比例超过阈值时触发熔断
- 异常数:当异常数超过阈值时触发熔断
- 熔断恢复:支持自动恢复和手动恢复
3. 系统自适应保护(System Adaptive Protection)
- 系统负载保护:根据系统负载自动调整流量控制策略
- CPU 使用率保护:根据 CPU 使用率自动调整流量控制策略
- 入口 QPS 保护:根据入口 QPS 自动调整流量控制策略
4. 实时监控(Real-time Monitoring)
- 实时监控面板:提供实时监控和控制台
- 规则管理:支持规则的动态配置和管理
- 统计信息:提供详细的统计信息和报表
与 Hystrix 对比
对比表
| 特性 | Sentinel | Hystrix |
|---|---|---|
| 流量控制 | 支持 | 不支持 |
| 熔断降级 | 支持 | 支持 |
| 系统保护 | 支持 | 不支持 |
| 实时监控 | 支持 | 支持 |
| 规则配置 | 动态配置 | 静态配置 |
适用场景
使用场景
Sentinel 适用场景:
- 流量控制
- 熔断降级
- 系统保护
- 实时监控
官方资源
根据 Sentinel 官方文档,Sentinel 的核心特性包括:
-
流量控制:Sentinel 提供了丰富的流量控制手段,包括 QPS 限流、并发线程数限流、系统自适应限流等。官方文档强调,Sentinel 的限流规则支持多种维度(如接口、方法、资源等),并且可以在运行时动态调整,无需重启应用。
-
熔断降级:Sentinel 支持多种熔断策略,包括慢调用比例、异常比例、异常数等。官方文档中提到,Sentinel 的熔断降级机制可以自动检测服务异常,快速失败,避免级联故障,保护系统稳定性。
-
系统自适应保护:Sentinel 提供了系统级别的自适应保护机制,可以根据系统的实时负载、CPU 使用率、入口 QPS 等指标,自动调整流量控制策略,防止系统被压垮。
参考资源:
- Sentinel 官方文档:https://sentinelguard.io/
- Sentinel GitHub:https://github.com/alibaba/Sentinel
本节小结
在本节中,我们学习了:
第一个是 Sentinel 是什么。 Sentinel 是流量控制框架。
第二个是核心功能。 流量控制、熔断降级、系统保护、实时监控。
第三个是与 Hystrix 对比。 Sentinel 和 Hystrix 的对比。
第四个是适用场景。 Sentinel 的使用场景。
这就是 Sentinel 简介。了解 Sentinel 的基本概念,是使用 Sentinel 的基础。
在下一节,我们将学习 Sentinel 核心概念。