做建筑材料的网站,江西宗杰建设工程有限公司网站,山东济南网络公司,青岛市专业做网站的吗一、前言 接下来是开展一系列的 SpringCloud 的学习之旅#xff0c;从传统的模块之间调用#xff0c;一步步的升级为 SpringCloud 模块之间的调用#xff0c;此篇文章为第十七篇#xff0c;即使用 Sentinel 实现规则持久化。
二、概述 从前面我们做的实验可知#xff0c;…一、前言 接下来是开展一系列的 SpringCloud 的学习之旅从传统的模块之间调用一步步的升级为 SpringCloud 模块之间的调用此篇文章为第十七篇即使用 Sentinel 实现规则持久化。
二、概述 从前面我们做的实验可知一旦我们重启应用sentinel 规则将消失生产环境需要将配置规则进行持久化以保证正常的运行。 可以将限流配置规则持久化进 Nacos 保存只要刷新 8401 某个 res t地址sentinel 控制台的流控规则就能看到只要 Nacos 里面的配置不删除针对 8401 上 sentinel 上的流控规则持续有效。
三、实现步骤
3.1 添加 maven 依赖 首先确保 cloudalibaba-consumer-nacos-order8401 模块的 pom.xml 中引入了 相关的依赖如下
!--SpringCloud ailibaba sentinel-datasource-nacos 后续做持久化用到--
dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactId
/dependency
3.2 修改配置文件 接下来需要在 application.yml 中添加 Nacos 数据源的支持如下
server:port: 8401spring:application:name: cloudalibaba-sentinel-servicecloud:nacos:discovery:server-addr: localhost:8848 # Nacos服务注册中心地址sentinel:transport:dashboard: localhost:8080 # 配置Sentinel dashboard地址# 默认8719端口假如被占用会自动从8719开始依次1扫描,直至找到未被占用的端口port: 8719# 添加 Nacos 数据源的配置datasource:ds1:nacos:server-addr: localhost:8848dataId: cloudalibaba-sentinel-servicegroupId: DEFAULT_GROUPdata-type: jsonrule-type: flow
management:endpoints:web:exposure:include: *
3.3 配置 nacos 打开 nacos 的管理界面添加 nacos 的业务规则配置如下图 配置详解如下 1、resource资源名称 2、limitApp来源应用 3、grade闻值类型0 表示线程数1 表示 QPS 4、count单机阈值 5、strategy流控模式0 表示直接1 表示关联2 表示链路 6、controlBehavior流控效果0 表示快速失败1 表示 Warm Up2 表示排队等待 7、clusterMode是否集群
3.4 测试 启动 8401 模块后 调用 http://localhost:8401/rateLimit/byUrl刷新 sentinel 发现流控规则有了如下图 快速访问测试接口可以看到限流是没有任何问题的如下图 此时停止 8401 模块再看 sentinel 管理界面如下图可以看到流控规则没有了 重新启动 8401 再看 sentinel等待一会并且多次调用 http://localhost:8401/rateLimit/byUrl如下图重新配置出现了持久化验证通过。