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 = 微服务的"保险丝 + 流量警察"


相关推荐
IT空门:门主8 小时前
Java AI 开发框架终极对比:Spring AI vs Spring AI Alibaba vs AgentScope-Java
java·人工智能·spring·spring ai·ai alibaba·agentscope-java
zzz_23689 小时前
【Spring】面试突击系列(三):Spring Web MVC 深度解析
前端·spring·面试
biubiubiu07069 小时前
SpringBoot 3.5.4 整合Quartz 定时任务
java·spring boot·spring
用户3983461612011 小时前
Go-Spring 实战第 18 课 —— App 使用:启动、配置与运行期扩展
spring·go
zzz_236811 小时前
【Spring】面试突击系列(一):IoC 与 DI 深度解析
java·spring·面试
RemainderTime11 小时前
Spring Boot脚手架集成 Spring Security实现生产级RBAC鉴权
spring boot·后端·spring
宸津-代码粉碎机11 小时前
Spring AI企业级Agent实战|多工具自动规划+并行调度落地,彻底解决复杂业务AI任务编排问题
java·大数据·人工智能·spring boot·python·spring
lixia0417mul212 小时前
flink接入spring体系
java·spring·flink
biubiubiu070612 小时前
自定义starter 可以导入SpringBoot直接使用
java·spring boot·spring
贺国亚13 小时前
Buy领域智能体-Spring-AI全量工程
java·人工智能·spring