前言:
????????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