默认情况下一旦重启微服务,那么Sentinel配置的规则直接会丢失,重启后需要重新配置规则,假如在生产环境一个应用有很多个服务,假如应用重启那么所有服务都得重新配置,那么就非常麻烦
Sentinel提供了持久化配置,它可以使用Mysql,Redis,文件,Nacos做未持久化数据的源,一般使用Nacos作为Sentinel的持久化源
操作:将限流配置规则持久化进Nacos保存,只要刷新8401某个rest地址,sentinel控制台的流控规则就能看到,只要nacos里面的配置不删除,针对8401上的sentinel流控规则就持续有
一,Sentinel微服务端的配置
① maven
<!--实现服务的注册与发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--sentinel服务限流降级框架--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <!--sentinel持久化依赖包--> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId> </dependency>
② application配置
server: port: 9106 spring: application: name: cloudalibaba-sentinelmain-service cloud: nacos: discovery: server-addr: 192.168.68.134:8084 #nacos服务端地址,Nginx做了代理 sentinel: transport: dashboard: localhost:8080 port: 8719 datasource: ds1: nacos: server-addr: 192.168.68.134:8084 #nacos的服务地址 data-id: cloudalibaba-sentinelmain-service #远程nacos配置文件的名称(唯一) group-id: DEFAULT_GROUP #分组 data-type: json #数据类型为json rule-type: flow
二,Nacos保存Sentinel规则
配置格式:选择 json 选项
配置内容:
- resource: 资源名称
- limitApp: 来源应用
- grade: 阈值类型,0表示线程,1表示QPS
- count: 单机阈值
- strategy: 流控模式,0表示直接,1表示关联,2表示链路
- controlBehavior: 流控效果,0表示快速失败,1表示Warm Up,2表示排队等待
- clusterMode: 是否集群
① 添加sentinel的规则配置到nacos
例:添加下列配置
[ { "resource":"/testA", "limitApp":"default", "grade":1, "count":1, "strategy":0, "controlBehavior":0, "clusterMode":false } ]
Comments | NOTHING
Warning: Undefined variable $return_smiles in /www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/functions.php on line 1109