springcloud Sentinel


一、Sentinel 是什么?

Sentinel 是阿里巴巴开源的流量控制、熔断降级组件,用于保障微服务的稳定性。

✅ 替代 Hystrix

✅ Spring Cloud Alibaba 官方推荐

✅ 支持 流控、熔断、系统保护、热点参数、授权


二、为什么要用 Sentinel?(痛点)

问题 说明
服务雪崩 一个服务拖垮整个系统
高并发 瞬间流量打爆服务
依赖故障 下游服务不可用
系统过载 CPU / 内存飙高

✅ Sentinel 解决这些问题


三、Sentinel 核心概念(必背)

概念 说明
Resource 被保护的资源(方法 / URL)
Entry 资源的入口
Context 调用上下文
Rule 流控 / 降级 / 系统规则
Slot Chain 处理链

四、Sentinel 工作流程(高频)

复制代码
请求进入
   ↓
创建 Context
   ↓
构建 Resource
   ↓
Slot Chain 校验
   ↓
通过 → 执行业务
   ↓
异常 → 触发熔断 / 降级

五、流量控制(Flow Control)

1️⃣ 流控维度

维度 说明
QPS 每秒请求数
线程数 并发线程
调用关系 调用方

2️⃣ 流控效果

效果 说明
直接拒绝 默认
Warm Up 预热
排队等待 匀速排队

Warm Up 防止冷启动被打爆


六、熔断降级(Circuit Breaker)

1️⃣ 熔断策略(重点)

策略 说明
慢调用比例 RT 超过阈值
异常比例 异常占比
异常数 绝对数量

2️⃣ 熔断状态机

复制代码
Closed → Open → Half-Open → Closed

✅ 自动恢复


七、热点参数限流(特色功能 ⭐⭐⭐⭐⭐)

对某个参数单独限流

java 复制代码
@SentinelResource(value = "getUser", blockHandler = "blockHandler")
public User getUser(@RequestParam Long id) {
    return userService.get(id);
}

✅ 防止:

  • 恶意刷单
  • 热点商品
  • 爬虫攻击

八、系统自适应保护(系统规则)

指标 说明
LOAD 系统负载
RT 平均响应时间
线程数 并发数
入口 QPS 总流量
CPU 使用率 资源保护

保护整台机器


九、@SentinelResource 注解

java 复制代码
@SentinelResource(
    value = "createOrder",
    blockHandler = "blockHandler",
    fallback = "fallback"
)
public Order createOrder() {
    return orderService.create();
}
属性 作用
value 资源名
blockHandler 流控 / 熔断
fallback 业务异常

十、Sentinel vs Hystrix(必问)

对比 Sentinel Hystrix
隔离策略 信号量 线程池
流控 ✅ 丰富
系统保护
实时监控
生态 Spring Cloud Alibaba 停止维护

Sentinel 全面胜出


十一、Sentinel 控制台

✅ 实时监控

✅ 规则配置

✅ 集群流控

✅ 机器发现


十二、常见坑(面试加分)

❌ 资源名重复

❌ blockHandler 参数不匹配

❌ 规则未持久化

❌ 上下文丢失

❌ 网关流控配置错误


十三、规则持久化(生产必做)

存储 说明
Nacos ✅ 推荐
Apollo
Zookeeper
本地文件

十四、Spring Cloud Gateway + Sentinel

✅ API 网关级流控

✅ 路由级熔断

✅ 参数级限流


十五、面试标准答案(背这段 ✅)

Sentinel 是阿里开源的流量控制组件,通过资源定义、Slot Chain 和多种规则实现对系统的保护。
支持流控、熔断降级、热点参数和系统自适应保护,能够有效防止服务雪崩。
相比 Hystrix,Sentinel 提供了更丰富的流控策略和实时监控能力,是 Spring Cloud Alibaba 微服务稳定性的核心组件。


十六、一句话总结(记住这句)

Sentinel = 微服务的"保险丝 + 流量警察"


相关推荐
鱼鳞_1 小时前
苍穹外卖-Day01(开发环境搭建)
java·spring boot·spring·maven
用户398346161202 小时前
Go-Spring 实战第 4 课 —— 配置校验:使用 expr 标签拦截非法配置
spring·go
小小工匠2 小时前
Spring AI RAG - 08 JWT 认证与用户体系设计
spring·jwt
摇滚侠2 小时前
Spring 面试题 真正的 offer 偏方 Java 基础 Java 高级
java·后端·spring
用户398346161202 小时前
Go-Spring 实战第 2 课 —— 配置绑定:Properties 映射到 Go 类型
spring·go
用户398346161202 小时前
Go-Spring 实战第 3 课 —— 复杂类型的配置绑定:Duration、Time、Slice、Map
spring·go
Jul1en_4 小时前
【Spring Cloud】Spring Cloud Config详解
后端·spring·spring cloud
霸道流氓气质12 小时前
基于 Milvus Lite 的 Spring AI RAG 向量库实践方案与示例
人工智能·spring·milvus
Ting-yu13 小时前
SpringCloud快速入门(7)---- 数据隔离
spring boot·spring·spring cloud