网关集成sentinel

pull/138/head
koltZhang 2024-09-04 11:42:21 +08:00
parent 4ca68ff56a
commit 7c2597a908
10 changed files with 158 additions and 0 deletions

View File

@ -0,0 +1,11 @@
[
{
"resource": "feign-test", //
"count": 1000, // RT
"timeWindow": 5, //
"grade": 0, // 0: 1: 2:
"minRequestAmount": 2, //
"slowRatioThreshold": 0.2, //
"statIntervalMs": 10000 //
}
]

View File

@ -0,0 +1,12 @@
[
{
"resource": "feign-test", //
"resourceMode": 0, // API, 0: ROUTE ID, 1: API
"count": 1, // QPS线线
"grade": 1, // 0线1QPS
"controlBehavior": 2, // 02
"intervalSec": 10, //
"burst": 0, // burst
"maxQueueingTimeoutMs": 1000 //
}
]

View File

@ -0,0 +1,10 @@
[
{
"avgRt": 1, // RT
"highestCpuUsage": -1, // CPU 使
"highestSystemLoad": -1, // LOAD
"maxThread": -1, // 线
"qps": -1, // QPS
"count": 55 // CPU使
}
]

View File

@ -0,0 +1,7 @@
[
{
"resource": "sentinel_spring_web_context",
"limitApp": "/test",
"strategy": 0 // (01)
}
]

View File

@ -0,0 +1,11 @@
[
{
"resource": "/degrade-test",
"grade": 0, // 012
"count": 1000, // RTms/
"slowRatioThreshold": 0.1,// 1.8.0
"minRequestAmount": 10, //使
"timeWindow": 10, // s
"statIntervalMs": 1000 // ms 60*1000
}
]

View File

@ -0,0 +1,14 @@
[
{
"resource": "/flow-test", //
"limitApp": "default", // // default
"grade": 1, // (1:QPS; 0:线
"count": 1, //
"clusterMode": false, //
"controlBehavior": 0, // (0:; 1:Warm Up(); 2:)
"strategy": 0, // (0: 1:; 2:)
"warmUpPeriodSec": 10, //
"maxQueueingTimeMs": 500, //
"refResource": "rrr" // ()
}
]

View File

@ -0,0 +1,18 @@
[
{
"resource": "/param-flow-test",
"grade": 1, // QPS
"paramIdx": 0, //
"count": 13, //
"durationInSec": 6, //
"clusterMode": false, // false
"controlBehavior": 0, //
"limitApp": "default",
//
"paramFlowItemList": [{
"classType": "int", //
"count": 222, //
"object": "2" //
}]
}
]

View File

@ -0,0 +1,10 @@
[
{
"avgRt": 1, // RT
"highestCpuUsage": -1, // CPU 使
"highestSystemLoad": -1, // LOAD
"maxThread": -1, // 线
"qps": -1, // QPS
"count": 55 // CPU使
}
]

View File

@ -69,6 +69,24 @@
<groupId>com.google.guava</groupId> <groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> <artifactId>guava</artifactId>
</dependency> </dependency>
<!-- SpringCloud Alibaba Sentinel Gateway -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
</dependency>
<!-- SpringCloud Alibaba Sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- Sentinel Datasource Nacos -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
</dependencies> </dependencies>

View File

@ -13,6 +13,53 @@ spring:
namespace: dev # 命名空间。这里使用 dev 开发环境 namespace: dev # 命名空间。这里使用 dev 开发环境
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
--- #################### Sentinel相关配置 ####################
spring:
cloud:
sentinel:
enabled: true # 是否开启。默认为 true 开启
eager: true # 是否饥饿加载。默认为 false 关闭
transport:
dashboard: 127.0.0.1:8080 # Sentinel 控制台地址
filter:
url-patterns: /** # 拦截请求的地址。默认为 /*
#自定义流控降级异常信息
scg:
fallback:
mode: response
response-body: '{"code": 429, "msg":"服务压力过大,请稍后重试!"}'
# sentinel用nacos作为数据源的配置 (可导入/yudao-cloud/script/sentinel/system-server下对应规则使用时需去掉注释)
datasource:
# 流控规则
flow:
nacos:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
username: ${spring.cloud.nacos.username}
password: ${spring.cloud.nacos.password}
data-id: ${spring.application.name}-gw-flow-rules # 在修改的sentinel 源码中定义的规则名
rule-type: gw_flow
# 降级规则
degrade:
nacos:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
username: ${spring.cloud.nacos.username}
password: ${spring.cloud.nacos.password}
dataId: ${spring.application.name}-degrade-rules
rule-type: degrade
# 系统规则
system:
nacos:
server-addr: ${spring.cloud.nacos.server-addr}
namespace: ${spring.cloud.nacos.discovery.namespace}
username: ${spring.cloud.nacos.username}
password: ${spring.cloud.nacos.password}
dataId: ${spring.application.name}-system-rules
groupId: DEFAULT_GROUP
data-type: json
rule-type: system
# 日志文件配置 # 日志文件配置
logging: logging:
level: level: