SpringCloud(42)——Sentinel持久化

1.问题描述

经过我们多次的测试发现,一旦重启服务后,sentinel配置的规则就被初始化了,需要我们重新再配置,如果上生产环境的话肯定需要持久化的。

2.持久化效果

例如我们服务的端口号为8401,我们将限流规则配置持久化进Nacos保存,只要刷新8401某个rest地址,sentinel控制台的流控规则就能看到,只要Nacos里的配置不删除,针对8401上Sentinel的流控规则就持续有效

3.持久化配置

3.1引入依赖

首先要在工程里引入sentinel持久化的依赖

       <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-nacos</artifactId>
        </dependency>
3.2添加Nacos数据源配置

在application.yml里添加

image.png
3.3在Nacos里新建配置
image.png

注意:data ID要和yaml里配置的data ID保持一直
流控规则:
resource:资源名称;
limitApp:来源应用;
grade:阈值类型,0表示线程数,1表示QPS;
count:单机阈值;
strategy:流控模式。0表示直接,1表示关联,2表示链路;
controlBehavior:流控效果,0表示快速失败,1表示Warm up,2表示排队等待;
clusterMode:是否集群

其实这些参数就是sentinel新增流控规则的input属性

到这里我们的持久化就配置好了。

4.测试

我们重启服务可以直接看到配置的持久化规则了。
而且测试一下也是生效的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容