SpringBoot 整合 Sentinel——流量控制与熔断降级
Sentinel 是阿里巴巴开源的流量控制组件相比 Hystrix 功能更丰富、性能更好。支持限流、熔断、系统保护等多种能力。一、为什么选 Sentinel对比SentinelHystrix限流模式直接、冷启动、匀速线程池/信号量熔断策略慢比、异常比、异常数错误率控制台✅ 可视化配置❌ 需额外搭建规则持久化✅ Nacos 支持❌社区活跃度⭐⭐⭐⭐⭐⭐已停更二、集成 SentineldependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependencyspring:cloud:sentinel:transport:dashboard:localhost:8080# Sentinel 控制台eager:true三、流控规则RestControllerRequestMapping(/api)publicclassSeckillController{GetMapping(/seckill/{productId})SentinelResource(valueseckill,blockHandlerseckillBlockHandler,fallbackseckillFallback)publicResultVO?seckill(PathVariableLongproductId){// 秒杀逻辑returnResultVO.success(秒杀成功);}/** * 限流后的处理方法blockHandler 处理 */publicResultVO?seckillBlockHandler(LongproductId,BlockExceptione){returnResultVO.error(429,请求太频繁请稍后重试);}/** * 熔断降级后的处理方法fallback 处理 */publicResultVO?seckillFallback(LongproductId,Throwablee){returnResultVO.error(500,服务繁忙请稍后);}}四、熔断规则ConfigurationpublicclassSentinelRuleConfig{PostConstructpublicvoidinitRules(){// 流控规则每秒最多 100 个请求ListFlowRuleflowRulesnewArrayList();FlowRuleflowRulenewFlowRule();flowRule.setResource(seckill);flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);flowRule.setCount(100);flowRule.setControlBehavior(RuleConstant.CONTROL_BEHAVIOR_DEFAULT);flowRules.add(flowRule);FlowRuleManager.loadRules(flowRules);// 熔断规则10秒内异常比例超过50%则熔断ListDegradeRuledegradeRulesnewArrayList();DegradeRuledegradeRulenewDegradeRule();degradeRule.setResource(seckill);degradeRule.setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_RATIO);degradeRule.setCount(0.5);degradeRule.setTimeWindow(10);degradeRules.add(degradeRule);DegradeRuleManager.loadRules(degradeRules);}}五、配置中心持久化ComponentpublicclassSentinelNacosDataSource{PostConstructpublicvoidinit()throwsException{ReadableDataSourceString,ListFlowRuledsnewNacosDataSource(localhost:8848,DEFAULT_GROUP,seckill-flow-rules,source-JSON.parseObject(source,newTypeReferenceListFlowRule(){}));FlowRuleManager.register2Property(ds.getProperty());}}六、热点参数限流GetMapping(/product/{id})SentinelResource(valueproduct,blockHandlerproductBlockHandler)publicResultVO?getProduct(PathVariableSentinelResourceParamLongid){returnResultVO.success(productService.getById(id));}// Nacos 中配置热点规则// 参数索引 0单机阈值 10统计时长 1 秒// 即对商品 ID 限流同一个商品每秒最多请求 10 次七、系统保护规则// 系统规则当 Load 或 RT 超过阈值时触发ListSystemRulesystemRulesnewArrayList();SystemRulerulenewSystemRule();rule.setHighestSystemLoad(5.0);// 系统 Loadrule.setAvgRt(1000);// 平均 RT 超过 1000msrule.setMaxQps(10000);// 总 QPS 限制SystemRuleManager.loadRules(systemRules);八、Feign 集成feign:sentinel:enabled:trueFeignClient(namestock-service,fallbackStockFallback.class)publicinterfaceStockClient{GetMapping(/stock/{productId})ResultVOIntegergetStock(PathVariableLongproductId);}ComponentpublicclassStockFallbackimplementsStockClient{OverridepublicResultVOIntegergetStock(LongproductId){returnResultVO.error(500,库存服务不可用);}}九、控制台# 下载并启动 Sentinel 控制台java-jarsentinel-dashboard-1.8.6.jar--server.port8080访问http://localhost:8080可以可视化配置限流和熔断规则。总结Sentinel 的核心功能 限流 → 控制 QPS防止系统被打满 熔断 → 下游服务挂了快速失败 降级 → 返回默认值保证核心业务可用 觉得有用的话点赞 关注【张老师技术栈】吧每周更新 Java/Python/MySQL 实战干货不让你白来。

相关新闻

AI精准搜索:高效获取精准信息的新一代智能检索工具指南

AI精准搜索:高效获取精准信息的新一代智能检索工具指南

本科毕业论文是大学四年最大的坎。开题报告憋一周写不出三页,找文献翻遍十几个网站还是缺关键资料,写正文卡壳半天憋不出一句话,降重改到凌晨三点结果逻辑全乱,答辩前一天PPT还没做完。别慌,亲测这四个工具能让你少熬半…

2026/11/3 17:54:20 阅读更多 →
DeepSeek    LeetCode 3753. 范围内总波动值 II JavaScript实现

DeepSeek LeetCode 3753. 范围内总波动值 II JavaScript实现

对于 LeetCode 3753 这道困难题,核心解法是数位 DP,配合前缀和技巧:F(num2) - F(num1-1)。以下是基于该思路的 JavaScript 实现。javascript /*** param {number} num1* param {number} num2* return {number}*/ var totalWaviness function…

2026/11/9 17:24:11 阅读更多 →
DeepSeek    LeetCode 3753. 范围内总波动值 II Python3实现

DeepSeek LeetCode 3753. 范围内总波动值 II Python3实现

这道题的核心是数位DP (Digit DP),直接枚举区间内的每个数字会超时。代码实现可以直接参考 LeetCode 官方题解区或 GitHub 上的高票答案。📝 问题回顾 波动值 (Waviness):一个数字中峰(严格大于两边)和谷(严…

2026/11/9 23:36:37 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻