Sentinel - 指南
概念
阿里开源的就是Sentinel 微服务流量治理组件,核心定位是 “流量的哨兵”—— 通过监控、防护、控制流量,解决微服务架构中 “流量失控导致服务崩溃” 的挑战,最终保障服务的高可用性。
它的核心价值:在流量洪峰、下游故障、资源紧张等场景下,通过 “限流、熔断、降级” 等手段,建立 “削峰填谷、故障隔离、资源保活”,避免单一问题扩散为全链路雪崩。
Sentinel 五大核心防护能力:流控、熔断、降级、热点、授权
1. 流控(流量控制)
- 核心作用:对进入服务的请求流量设置 “上限”,避免超出服务的承载能力(比如服务每秒只能处理 300 个请求,就不允许每秒 500 个请求进入),本质是 “削峰填谷”,保证服务在安全流量范围内稳定运行。
- 关键规则维度:
- 限流指标:QPS(每秒请求数,适合接口级限流)、线程数(适合线程密集型服务,避免线程耗尽);
- 限流策略:直接拒绝(超阈值直接返回错误)、排队等待(按固定速率放行,避免瞬间流量)、预热(从低阈值逐步升到目标阈值,适合秒杀等流量骤增场景);
- 限流范围:默认全局限流,也支持按调用来源(如只限制 APP 端流量)、按链路(如只限制 “下单→支付” 链路的流量)。
- 举例:电商秒杀场景
某商品秒杀接口经压测,最大能稳定处理 200 QPS(超过会导致数据库连接池满)。用 Sentinel 配置流控规则:
- 资源名:seckillProduct(秒杀接口的唯一标识);
- 限流指标:QPS;
- 阈值:200;
- 策略:直接拒绝,返回 “当前人数过多,请稍后重试”。
效果
浙公网安备 33010602011771号