当前位置:网站首页>将 Sentinel 熔断限流规则持久化到 Nacos 配置中心
将 Sentinel 熔断限流规则持久化到 Nacos 配置中心
2022-08-04 13:33:00 【InfoQ】
Nacos 配置中心配置持久化规则
集成到 Spring Cloud Alibaba微服务项目
在 Nacos 中配置流控规则
- resource :资源名,资源名是限流规则的作用对象,比如请求资源 getUser 。
- grade :限流阈值类型,QPS 或线程数模式。0表示线程数,1表示QPS。默认为1,即 QPS 模式
- count :限流阈值。比如值为2表示1秒超过2个请求就限流。
- strategy :流控模式:直接、链路、关联,默认 直接 。0表示直接,1表示关联,2表示链路。
- controlBehavior :流控效果(直接拒绝 / 排队等待 / 慢启动模式),0表示快速失败,1表示Warm Up,2表示排队等待。
- limitApp :流控针对的调用来源。默认就是 default ,代表不区分调用来源.
- resource :资源名,资源名是限流规则的作用对象,比如请求资源 getUser 。
- grade :熔断策略,支持慢调用比例/异常比例/异常数策略。1:慢调用比例,2:异常比例,3:异常数。默认为1,慢调用比例。
- count :慢调用比例模式下为慢调用临界 RT(超出该值计为慢调用);异常比例/异常数模式下为对应的阈值。
- timeWindow :熔断时长,单位为秒。
- minRequestAmount :熔断触发的最小请求数,请求数小于该值时即使异常比率超出阈值也不会熔断。默认为 5 。
- statIntervalMs :统计时长(单位为 ms),如 60*1000 代表分钟级。默认为 1000 ms。
- slowRatioThreshold :慢调用比例阈值,仅慢调用比例模式有效
Spring Cloud Alibaba 微服务项目中设置 Sentinel 数据源
<!-- 引入 Sentinel 数据源 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-datasource</artifactId>
</dependency>
<!-- Sentinel数据源之 Nacos -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
server:
port: 7072
spring:
application:
name: cloud-sentinel-service
cloud:
nacos:
discovery:
server-addr: 192.168.242.112:81
sentinel:
transport:
dashboard: localhost:8080
port: 8719
# https://github.com/alibaba/Sentinel/issues/1213
web-context-unify: false
datasource:
nacos:
nacos:
serverAddr: 192.168.242.112:81
groupId: DEFAULT_GROUP
dataId: sentinelFlowRule.json
ruleType: flow
management:
endpoints:
web:
exposure:
include: '*'
[
{
"resource": "getUser",
"limitApp": "default",
"grade": 1,
"count": 2,
"strategy": 0,
"controlBehavior": 0,
"clusterMode": false
},
{
"resource": "getOrder",
"limitApp": "default",
"grade": 1,
"count": 2,
"strategy": 0,
"controlBehavior": 0,
"clusterMode": false
}
]
@GetMapping("/getUser")
@SentinelResource("getUser")
public String getUser() {
return "getUser success!";
}
@GetMapping("/getOrder")
@SentinelResource("getOrder")
public String getOrder() {
return "getOrder success!";
}
验证限流规则
小结
边栏推荐
- rpm安装提示error: XXX: not an rpm package (or package manifest):
- How to play the Tower of Hanoi
- ReentrantLock 原理
- "Social Enterprises Conducting Civilian Personnel Training Specifications" group standard on the shelves of Xinhua Bookstore
- LeetCode 1403 非递增顺序的最小子序列[贪心] HERODING的LeetCode之路
- SMART S7-200PLC串行自由口通讯(耐压测试仪)
- router---路由守卫
- Map常见的遍历方式-keySet 和 entrySet
- Week 7 Latent Variable Models and Expectation Maximization
- Is the code more messy?That's because you don't use Chain of Responsibility!
猜你喜欢
Niuke.com Brush Question Record || Linked List
Why don't young people like to buy Mengniu and Yili?
MFC的相机双目标定界面设计
新 Nsight Graph、Nsight Aftermath 版本中的性能提升和增强功能
SCA兼容性分析工具(ORACLE/MySQL/DB2---&gt;MogDB/openGauss/PostgreSQL)
秋招攻略秘籍,吃透25个技术栈Offer拿到手软
倒计时 3 天|一起看云原生 Meetup 的六大议题
跨链桥已成行业最大安全隐患 为什么和怎么办
How to play the Tower of Hanoi
Week 7 Latent Variable Models and Expectation Maximization
随机推荐
Interviewer: Tell me the difference between NIO and BIO
Ceres库运行,模板内报内存冲突问题。(已解决)
leetcode 48. Rotate Image 旋转图像(Medium)
《社会企业开展应聘文职人员培训规范》团体标准在新华书店上架
TS - type
c#之winform(软件开发)
Launcher app prediction
漏洞复现 - - - Alibaba Nacos权限认证绕过
数据库的基本概念
Unity 3D模型展示框架篇之资源打包、加载、热更(Addressable Asset System | 简称AA)
代码越写越乱?那是因为你没用责任链!
【牛客刷题-SQL大厂面试真题】NO5.某宝店铺分析(电商模式)
LM2596有没有可以替代的?LM2576可以
并发刺客(False Sharing)——并发程序的隐藏杀手
封装、继承、多态的联合使用实现不同等级学生分数信息的统计
【LeetCode】1403. 非递增顺序的最小子序列
AVR学习笔记之熔丝位
router---模式
第四讲 SVN
RT-Thread stm32 基础记录