网关集成sentinel
parent
4ca68ff56a
commit
7c2597a908
|
|
@ -0,0 +1,11 @@
|
|||
[
|
||||
{
|
||||
"resource": "feign-test", // 资源名
|
||||
"count": 1000, // 当熔断策略是慢调用时,此值为最大RT,单位是毫秒。当熔断是策略是异常比例时,此值为异常比例。当熔断策略是异常数时,此值为异常数目
|
||||
"timeWindow": 5, // 熔断时长,单位是秒
|
||||
"grade": 0, // 0: 慢调用, 1: 异常比例,2:异常数
|
||||
"minRequestAmount": 2, // 最小请求数
|
||||
"slowRatioThreshold": 0.2, // 比例阈值
|
||||
"statIntervalMs": 10000 // 统计时长,单位毫秒
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
[
|
||||
{
|
||||
"resource": "feign-test", // 资源名
|
||||
"resourceMode": 0, // API类型, 0: ROUTE ID区分, 1: API
|
||||
"count": 1, // 阈值,QPS类型就是限制时间间隔的请求数,线程数类型就是指并行的线程数
|
||||
"grade": 1, // 阈值类型,0:线程数,1:QPS
|
||||
"controlBehavior": 2, // 流控方式,0:快速失败,2:匀速排队
|
||||
"intervalSec": 10, // 间隔,单位是秒
|
||||
"burst": 0, // burst,只有在快速失败时才有效
|
||||
"maxQueueingTimeoutMs": 1000 // 超时时间,单位是毫秒
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
[
|
||||
{
|
||||
"avgRt": 1, // RT
|
||||
"highestCpuUsage": -1, // CPU 使用率
|
||||
"highestSystemLoad": -1, // LOAD
|
||||
"maxThread": -1, // 线程数
|
||||
"qps": -1, // 入口 QPS
|
||||
"count": 55 // 阈值,在CPU使用率中是百分比
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[
|
||||
{
|
||||
"resource": "sentinel_spring_web_context",
|
||||
"limitApp": "/test",
|
||||
"strategy": 0 // 授权类型(0代表白名单;1代表黑名单。)
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
[
|
||||
{
|
||||
"resource": "/degrade-test",
|
||||
"grade": 0, // 熔断策略,支持慢调用比例(0),异常比例(1),异常数(2)策略
|
||||
"count": 1000, // 慢调用比例模式下为慢调用临界 RT(超出该值计为慢调用,单位ms);异常比例/异常数模式下为对应的阈值
|
||||
"slowRatioThreshold": 0.1,// 慢调用比例阈值,仅慢调用比例模式有效(1.8.0 引入)
|
||||
"minRequestAmount": 10, //熔断触发的最小请求数,请求数小于该值时即使异常比率超出阈值也不会熔断
|
||||
"timeWindow": 10, // 熔断时长,单位为 s
|
||||
"statIntervalMs": 1000 // 统计时长(单位为 ms),如 60*1000 代表分钟级
|
||||
}
|
||||
]
|
||||
|
|
@ -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" // 关联资源、入口资源(关联、链路模式)
|
||||
}
|
||||
]
|
||||
|
|
@ -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" // 参数值
|
||||
}]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
[
|
||||
{
|
||||
"avgRt": 1, // RT
|
||||
"highestCpuUsage": -1, // CPU 使用率
|
||||
"highestSystemLoad": -1, // LOAD
|
||||
"maxThread": -1, // 线程数
|
||||
"qps": -1, // 入口 QPS
|
||||
"count": 55 // 阈值,在CPU使用率中是百分比
|
||||
}
|
||||
]
|
||||
|
|
@ -69,6 +69,24 @@
|
|||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
</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>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,53 @@ spring:
|
|||
namespace: dev # 命名空间。这里使用 dev 开发环境
|
||||
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:
|
||||
level:
|
||||
|
|
|
|||
Loading…
Reference in New Issue