千家信息网

sentinel如何整合spring cloud限流

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关sentinel如何整合spring cloud限流,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。spring cloud基于http进
千家信息网最后更新 2026年11月04日sentinel如何整合spring cloud限流

这篇文章将为大家详细讲解有关sentinel如何整合spring cloud限流,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

spring cloud基于http进行服务调用,大致过程如下:

  • 服务提供端:提供http接口,并向服务中心注册服务信息

  • 服务消费端:将服务端的http接口作为本地服务,从注册中心读取服务提供端信息,使用feign发起远程调用

相关依赖

                               com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-discovery                                    com.alibaba.cloud            spring-cloud-starter-alibaba-sentinel        

示例

为简化处理,直接对url接口进行限流,不做服务调用

application.yml

spring:  application:    name: hello-sentinel  cloud:    nacos:      discovery:        server-addr: localhost:8848    sentinel:      transport:        dashboard: localhost:8081

限流可使用本地配置、或者sentinel dashboard配置

HelloController

@RestControllerpublic class HelloController {     @SentinelResource(value = "hello", blockHandler = "blockHandle")    @RequestMapping("/hello")    public String hello(){        return "hello";    }    public String blockHandle(BlockException e){        e.printStackTrace();        return "被限流了";}

************

本地限流配置

CustomFlowRule

public class CustomFlowRule implements InitFunc {     @Override    public void init() throws Exception {        List flowRules = new ArrayList<>();        FlowRule flowRule = new FlowRule();        flowRule.setResource("hello");        flowRule.setCount(1);        flowRule.setControlBehavior(RuleConstant.CONTROL_BEHAVIOR_DEFAULT);        flowRules.add(flowRule);        FlowRuleManager.loadRules(flowRules);    }}

META-INF/services/com.alibaba.csp.sentinel.init.InitFunc

com.example.demo.rule.CustomFlowRule

jmeter 测试

2022-03-27 22:30:50.534  INFO 1791 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''2022-03-27 22:30:50.547  INFO 1791 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, DEFAULT_GROUP hello-sentinel 192.168.5.11:8080 register finished2022-03-27 22:30:50.557  INFO 1791 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 2.227 seconds (JVM running for 2.824)2022-03-27 22:31:04.044  INFO 1791 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'2022-03-27 22:31:04.044  INFO 1791 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'2022-03-27 22:31:04.049  INFO 1791 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 5 msINFO: Sentinel log output type is: fileINFO: Sentinel log charset is: utf-8INFO: Sentinel log base directory is: /Users/huli/logs/csp/INFO: Sentinel log name use pid is: falsecom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowException

************

sentinel dashboard配置限流

启动sentinel dashboard

java -Dserver.port=8081 -Dcsp.sentinel.dashboard.server=localhost:8081 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar 参数说明:-Dserver.port=8081:指定控制台启动端口-Dcsp.sentinel.dashboard.server:指定控制台地址和端口-Dproject.name=sentinel-dashboard:指定控制台项目名称

localhost:8081,控制台配置流控策略

说明:若需使用本地降级方法,需在下方的hello配置流控规则

jmeter 测试

2022-03-28 08:50:29.165  INFO 853 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''2022-03-28 08:50:29.198  INFO 853 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, DEFAULT_GROUP hello-sentinel 192.168.5.11:8080 register finished2022-03-28 08:50:29.210  INFO 853 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 3.315 seconds (JVM running for 4.03)2022-03-28 08:52:05.792  INFO 853 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'2022-03-28 08:52:05.793  INFO 853 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'2022-03-28 08:52:05.802  INFO 853 --- [nio-8080-exec-2] o.s.web.servlet.DispatcherServlet        : Completed initialization in 9 msINFO: Sentinel log output type is: fileINFO: Sentinel log charset is: utf-8INFO: Sentinel log base directory is: /Users/huli/logs/csp/INFO: Sentinel log name use pid is: falsecom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowExceptioncom.alibaba.csp.sentinel.slots.block.flow.FlowException

关于"sentinel如何整合spring cloud限流"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

服务 配置 控制台 控制 接口 篇文章 整合 信息 更多 端口 o.a.c.c.C. 测试 不错 实用 内容 参数 名称 地址 文章 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 北京路客互联网科技有限公司 盈实互联网科技 互联网最新的科技有限公司 远拓互联网科技 壹账通互联网科技 上海致骋互联网科技 互联网科技公司有哪些 互联网科技英文翻译 互联网科技公司招聘 互联网教育科技公司vipkid 移动互联网科技公司 知域互联网科技有限公司大骗子 合肥互联网科技公司公章图片 雨阳互联网卡科技有限公司 皮皮虾互联网科技有限公司 四川互联网展示科技馆设计 济南小医互联网科技有限公司招聘 北京天晋互联网科技有限公司 上海互联网科技园景观 互联网加科技 互联网科技图片 百单网互联网科技有限公司怎么样 艾特科技互联网 联恩商钥互联网科技有限公司 互联网教育科技公司vipkid 移动互联网年度科技创新 新兴科技互联网创新大赛颁奖典礼 工业互联网科技创业 艺电能源互联网科技有限公司招聘
0