Sentinel第 21 篇:SpringCloud 普通微服务 整合 sentinel,限流降级的规则保存在nacos中,sentinel从nacos拉取规则使用
·
声明下:和上一篇 大同小异
1 pom.xml
<!-- Sentinel Spring Cloud Starter(必须!提供自动配置) -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- Sentinel 规则持久化到 Nacos -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
2 yml配置
server:
port: 9991
spring:
application:
name: travel-order
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
namespace: public
group: DEFAULT_GROUP
username: nacos
password: nacos
config:
server-addr: 127.0.0.1:8848
namespace: public
group: DEFAULT_GROUP
file-extension: yaml
username: nacos
password: nacos
# ===== Sentinel =====
sentinel:
transport:
# Sentinel Dashboard 地址,另外有个8719的端口,故意没写,Sentinel会自动处理,不然要手动把每个写的不一样,麻烦
dashboard: 127.0.0.1:8858
eager: true # 启动时立即向 Sentinel 控制台注册,默认为 false
# Sentinel 规则持久化:从 Nacos 拉取规则
datasource:
ds1:
nacos:
server-addr: 127.0.0.1:8848
dataId: ${spring.application.name}-flow-rules
groupId: DEFAULT_GROUP
data-type: json
rule-type: flow # 注意这
username: nacos
password: nacos
ds2:
nacos:
server-addr: 127.0.0.1:8848
dataId: ${spring.application.name}-degrade-rules
groupId: DEFAULT_GROUP
data-type: json
rule-type: degrade # 注意这
username: nacos
password: nacos
3 在nacos中编写限流,熔断的规则
文件名 Data ID: travel-order-flow-rules 格式:json
[
{
"resource": "/order/scenic/{scenicId}",
"count": 50,
"grade": 1,
"limitApp": "default",
"strategy": 0,
"controlBehavior": 0
},
{
"resource": "/order/list",
"count": 100,
"grade": 1,
"limitApp": "default",
"strategy": 0,
"controlBehavior": 0
}
]
-------------------------------------
文件名 Data ID: travel-order-degrade-rules 格式:json
[
{
"resource": "/order/scenic/{scenicId}",
"grade": 0,
"count": 2000,
"timeWindow": 15,
"minRequestAmount": 10,
"statIntervalMs": 1000,
"slowRatioThreshold": 0.6
},
{
"resource": "/order/list",
"grade": 0,
"count": 3000,
"timeWindow": 10,
"minRequestAmount": 5,
"statIntervalMs": 1000,
"slowRatioThreshold": 0.5
}
]
4 后期 更改规则 从 nacos 中改,不要在sentinel web控制台改,因为改了,也不会保存进nacos中,除非你对Sentinel Dashboard 源码 二次开发
5 现在在sentinel的web控制台,就能看见写的规则了,可以测试了
更多推荐

所有评论(0)