经过前面的sentinel简单的学习,已经大概了解了sentinel的各种功能,还差一个就是sentinel规则的持久化,我们发现只要重启应用,sentinel里面的规则又不见了,那怎么办呢?
一、环境准备
八、springCloudAlibaba-整合sentinel
二、sentinel整合nacos持久化
1、pom.xml引入
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
2、nacos控制台新增配置
名称这里为order-sentinel-flow-rule,格式为json
[
{
"resource":"/order/get",
"controlBehavior": 0,
"count": 2,
"grade": 1,
"limitApp": "default",
"strategy": 0
}
]
上面的配置大家应该都很清楚,其实就我我们用代码模式编写的各种属性
3、配置文件加入配置
server:
port: 8089
spring:
application:
name: order-sentinel
cloud:
sentinel:
transport:
dashboard: localhost:8084
web-context-unify: false #默认将调用链路收敛,要用链路流控,这里需要改为false
datasource:
flow-rule:
nacos:
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
dataId: order-sentinel-flow-rule
rule-type: flow
主要是加上
datasource:
flow-rule:
nacos:
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
dataId: order-sentinel-flow-rule
rule-type: flow
4、启动测试
可以看到有规则了,测试规则也是生效的。
三、遗留问题
1、在sentinel修改规则后,nacos控制台没有变化
2、nacos控制台的规则设置也太麻烦了
3、后续如果要方便点肯定是要修改sentinel相关源码才行
sentinel就学到这里先,下面开启seata,分布式事务的学习!