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


相关推荐
XS0301061 天前
Spring AI:两种内置 Advisor 快速实现 RAG
java·人工智能·spring
风起洛阳@不良使1 天前
Spring MVC的前端控制器配置(servlet+DispatcherServlet)
前端·spring·mvc
Pluchon2 天前
Java个人综合项目——萌部落社区V2.0
java·python·spring·spring cloud·postman·idea
她说可以呀2 天前
Spring-ai-alibaba文生图
java·人工智能·spring
不才不才不不才2 天前
Spring 源码系列(16): doDispatch 全流程——一次请求的主干链路
java·后端·spring
sugar__salt2 天前
Spring 三层架构与 IoC、依赖注入完全指南
java·spring boot·后端·spring·架构·maven·intellij-idea
evans在进步2 天前
Spring AI 从入门到实战:用 Java 实现大模型对话与 Tool Calling
java·人工智能·spring
豆瓣鸡2 天前
Spring Cloud Gateway 核心原理:从请求转发到微服务流量治理
网关·spring cloud·微服务
lemon_sjdk2 天前
Spring的基础概念
java·后端·spring
lemon_sjdk2 天前
Spring 容器与 Bean 深度解析:从概念到实践
java·网络·spring·webflux