背景说明:生产环境中sentinel的使用应该是如下图所示: sentinel控制台编辑规则 推送到 nacos配置中心, 由nacos推送到应用,应用更新内存。
这样的话, 规则持久化在了nacos中,应用重启后,nacos会自动推送给应用,所以规则会一直生效。
1,给应用添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- Sentinel 针对 Nacos 作了适配,底层可以采用 Nacos 作为规则配置数据源 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
2,应用配置sentinel数据源
sentinel:
transport:
dashboard: localhost:8080
datasource:
ds1:
nacos:
server-addr: localhost:8848
namespace: c22e5019-0bee-43b1-b80b-fc0b9d847501
dataId: demo
group: DEFAULT_GROUP
data-type: json
rule-type: flow
3,nacos在对应的命名空间创建配置文件,信息与上一步一致,内容为:
[
{
"resource": "demo_test",
"count": 1,
"grade": 1,
"limitApp": "default",
"strategy": 0,
"controlBehavior": 0
}
]
4,在nacos控制台修改配置,刷新sentinel控制台后是更新后的信息,同时会自动推送给应用程序,使配置生效。