sentinel如何整合spring cloud限流
发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,这篇文章将为大家详细讲解有关sentinel如何整合spring cloud限流,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。spring cloud基于http进
千家信息网最后更新 2025年02月12日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 { ListflowRules = 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安全错误
数据库的锁怎样保障安全
2018年度网络安全工作
云服务器可以干什么
网络安全分析法的效率
网络安全上网手擦报
没有利用数据库技术会怎样
技术问题网络安全
预防网络安全主要措施
网络技术sonet要大写吗
百度软件开发400万
许昌办公软件开发
杰控软件开发
立创eda连接不上服务器
网络技术基础的学习内容
中山市app软件开发
长春移动软件开发公司
审核阿里云服务器是什么工作
联想服务器代码激活
五年服务器违约金
如何从底层开始搭建一个数据库
lol哪个服务器好
多媒体网关服务器
新疆服务器
岳阳软件开发学校
lucene 索引数据库
access数据库免费吗
谷雨数据库
软件开发oss是什么
如何看账号的服务器
计算机网络安全问题的分析与探究
阿里云数据库租费每年多少钱