<!-- 持久化sentinel 流控规则到nacos-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.6.3</version>
</dependency>
<!-- 流控规则持久化到nacos 需要fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.70</version>
</dependency>
(2)nacos中添加流控规则
新建一个配置,配置Data ID为服务名(spring.application.name)加上后缀,Group为DEFAULT_GROUP(默认分组)。
特别注意的是配置内容,需要使用JSON格式。这里是一个数组,数组中每个Json对象表示一条流控规则。
流控
[
{
"resource": "/**",
"controlBehavior": 0,
"count": 7.0,
"grade": 1,
"limitApp": "default",
"strategy": 0
}
]
降级
[
{
"resource": "/forecast",
"controlBehavior": 0,
"count": 500,
"minRequestAmount": 5,
"timeWindow": 100,
"slowRatioThreshold": 1,
"statIntervalMs": 1000,
"grade": 0,
"limitApp": "default",
"strategy": 0
}
]
yml 配置文件
启动所有 发现规则已经存在sentinel 控制台
-----------------sentinel 控制台操作规则持久化到nacos . 改造sentinel控制台代码
注释scope
将test目录下nacos动态规则实现的相关代码,复制到com.alibaba.csp.sentinel.dashboard.rule包下。
修改FlowControllerV2类,将动态规则发布及拉取的注入类,替换为flowRuleNacosProvider及flowRuleNacosPublisher。
找到图中目录下的sidebar页面,将流控规则菜单中的dashboard.flowV1改为dashboard.flow。