【Spring Cloud Alibaba】Sentinel(一)
【Spring Cloud Alibaba】Sentinel(一)
- 1. 简介
- 2. 服务雪崩
1. 简介
Sentinel 是阿里巴巴开源的分布式系统的流量防护组件,主要用来做流量控制、熔断降级、系统保护。它的定位类似于 Hystrix,但更侧重在 流量治理 上。目前在微服务、服务网关、大型分布式系统中广泛使用,Spring Cloud Alibaba 体系中也自带集成。
=======================================================
🌟 Sentinel 的核心功能
1.流量控制(限流)
- 可以针对 QPS(每秒请求数)、并发线程数、调用关系等维度设置阈值。
- 支持 匀速排队、预热模式、冷启动模式 等策略,避免突发流量冲击。
2.熔断降级
- 根据 异常比例、异常数、响应时间 等指标,对调用链路进行熔断。
- 熔断后会在一段时间内快速失败,避免故障蔓延。
3.系统保护
- 基于 系统整体负载(如 CPU 使用率、RT、线程数) 进行自适应保护。
- 防止因为单个服务请求过多而导致整个系统雪崩。
4.实时监控
- 提供 控制台,可以实时查看各个服务的限流、熔断、请求量、响应时间等信息。
====================================================
📚 Sentinel 的工作原理
核心是 对请求进行统计与规则判断:
- 请求进入时,Sentinel 先判断是否超出阈值。
- 如果超出,直接拦截(触发限流/熔断)。
- 如果没有超出,就继续放行。
规则可以在 代码中硬编码,也可以通过 动态配置(Nacos、Apollo、ZooKeeper 等) 来下发。
=====================================================
✅ Sentinel 的优势
- 轻量级,不依赖重量级框架,接入成本低。
- 功能全面:限流 + 熔断 + 系统保护 + 实时监控。
- 动态规则:可结合配置中心(Nacos、Apollo 等)。
- 生态完善:已集成 Spring Cloud、Dubbo、gRPC、Spring WebFlux 等主流框架。
2. 服务雪崩
比如一个电商系统是微服务系统,它包含了秒杀商品、商品详情、购物车、积分等服务,且服务之间也是相互调用的。
如果其中一个服务挂了,比如说秒杀开始了,积分服务因为性能问题,挂了。
后续的话,因为积分服务挂掉了,后续的用户请求到积分的时候,所有的请求都会积压到这里,得不到响应。会重复请求导致服务压力更大。然后后面的请求又会积压到商品服务,慢慢的商品服务也挂掉了,后面整条链路的服务都会挂掉。这就是服务雪崩。
补充:服务挂掉的原因,如激增流量、不稳定服务依赖等等。