sentinel如何整合spring cloud限流
发表于:2024-12-02 作者:千家信息网编辑
千家信息网最后更新 2024年12月02日,这篇文章将为大家详细讲解有关sentinel如何整合spring cloud限流,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。spring cloud基于http进
千家信息网最后更新 2024年12月02日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安全错误
数据库的锁怎样保障安全
组织部网络安全工作
兄弟标签打印机数据库打印
网络安全大学学费多少钱
网络安全预防大赛
同城爆店码软件开发公司
概括工业网络技术的应用
粤商通注册联络员服务器异常
服务器pcb厂商标志
网络安全夏令营
新华三网络安全入门
网络安全和信息化专题会议情况
ci 链接数据库
网络安全法规定主体
青岛中管网络技术公司
万维易源是开放数据库吗
重装泰格软件连接不到数据库
计算机网络技术基
pycharm连接服务器
连接单位网络安全不安全
数据库字典管理工具
软件开发公司所属行业
碧桂园的网络安全怎么样
塔科夫加尼福尼亚服务器
格格网络技术
国华网安网络安全
乌班图服务器管理员账号是啥
c 图片上传数据库
粟镇网络技术有限公司
shell增加一行数据库
牙医预约软件开发