Sentinel配置Nacos持久化
前言:
Sentinel在使用控制台时进行配置是纯内存操作,并没有提供默认的持久化措施,一旦服务重启会导致配置的流控、熔断等策略失效。Sentinel官方提供了多种持久化方式如:Redis、Zookeeper、Etcd、Nacos以及其他方式等。此文以Nacos为持久化配置方式进行讲解。
一、Nacos配置
1.在Nacos中添加配置,创建一个json的新的配置文件
规则说明:
resource:资源名称,流控对象
limitApp:流控针对的调用来源,default(不区分)
grade:限流阈值类型,1、QPS,2 、并发线程数
count:限流阈值
strategy:调用关系限流策略,直连、链路、关联,默认(直连)
controlBehavior:流控效果(直接拒接、排队等待、慢启动),默认(直接拒绝)
clusterMode:是否集群,默认(否)
2.完成后发布
二、配置服务
1.项目pom中引入sentinel_nacos依赖
<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId><version>x.y.z</version> </dependency>
2. 配置applocation.yml文件
spring:cloud:sentinel:datasource:ds1:nacos:serverAddr: 120.46.40.171:8848 #nacos服务地址端口namespace: 2a6c5f46-ace7-47d9-8435-ef675229 #如果没有不需要设置dataId: goods_sentinel_flow #配置文件名称groupId: DEFAULT_GROUP # 没有指定走默认dataType: json # 文件格式ruleType: flow # 流控flow, degrade, authority, system, param-flow, gw-flow, gw-api-group
3.参看参数配置:
查看DataSourcePropertiesConfiguration,发现支持多种持久化配置包括我们的nacos
查看nacos源参数
可参照响应参数进行配置。配置完成后,重启服务。
4.重启应用查看控制台是否添加
5.流控结果
流控生效!!!
借此我们就完成了sentinel使用nacos配置中心做持久化策略的方法,其他持久化方式也是一样的道理,查看具体需要的参数即可。
参考文献:https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel