优化官方网站设计,呼叫中心系统解决方案,京东的网络营销方式,大学部门宣传视频创意10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析 文章目录 10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析1. 规则持久化1.1 Nacos Server 配置中心-规则持久化实例 2. 最后#xff1a; 1. 规则持久化
规则没有持久化的问题 如果 sentinel 流控规则没有…10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析 文章目录 10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析1. 规则持久化1.1 Nacos Server 配置中心-规则持久化实例 2. 最后 1. 规则持久化
规则没有持久化的问题 如果 sentinel 流控规则没有持久化当重启调用 API/接口 所在微服务后规则就会丢失需要 重新加入。 解决方案通过 Nacos 进行持久化
规则持久化方案
阿里云 Ahas[最方便/付费]https://help.aliyun.com/zh/ahas/ 在 Nacos Server 配置规则, 完成持久化 -官方推荐将规则持久化到本地文件, 定时同步
1.1 Nacos Server 配置中心-规则持久化实例 需求 member-service-nacos-consumer-80 微 服务的 /member/openfeign/consumer/get/1 API 接口添加流控规则 QPS1/快速失败 . 要求将该流控规则加入到 nacos server 配置中心实现持久化
代码配置实现步骤:
在 Nacos Server 配置中心增加 Sentinel 客户端/微服务模块的流控规则。 [{resource: /member/openfeign/consumer/get/1,limitApp: default,grade: 1,count: 1,strategy: 0,controlBehavior: 0,clusterMode: false}
]在 Nacos Server 配置中心增加 Sentinel 客户端/微服务模块 的流控规则参数说明resource∶资源名称;limlitApp∶ 来源应用;grade∶阈值类型0表示线程数1表示QPS;count∶单机阈值;strategy∶流控模式0表示直接1表示关联2表示链路;controlBehavior∶流控效果0表示快速失败1表示Warm Up2表示排队等待;clusterMode∶是否集群修改 member-service-nacos-consumer-80 的 pom.xml, 加入 sentinel 和 nacos 持久化整合依赖 !-- 引入 sentinel 和 nacos 持久化整合依赖使用版本仲裁--dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactId/dependency
修改 member-service-nacos-consumer-80 的 application.yml , 配置该微服务从 Nacos Server 获取流控规则 在application.yaml 当中配置 rule-typle 规则: datasource:ds1:# 流控规则配置是从 nacos server 配置中心获取nacos:server-addr: localhost:8848 # 指定 nacos server 配置中心地址dataId: member-service-nacos-consumer # nacos server 配置中心当中对应的ID保持一致一定要保持一致才行groupId: DEFAULT_GROUP # 指定组[nacos server配置中心]data-type: json # 指定配置流控规则的数据类型rule-type: flow # 规则类型流控规则 表示可以看文档rule-type: flow # 规则类型流控规则 表示可以看文档 有:flow流量控制,degrade熔断降级规则system系统保护规则authority 访问控制规则
spring:application:name: member-service-nacos-consumer-80#配置 nacos 注册中心cloud:nacos:discovery:server-addr: localhost:8848 # 配置 nacos server的地址sentinel:transport:dashboard: localhost:9090 # 指定 sentinel 控制台地址(dash board)port: 8719 # 设置端口默认是 8719 如果该端口被占用,就自动从87911进行扫描,直到找到一个没有占用的端口.datasource:ds1:# 流控规则配置是从 nacos server 配置中心获取nacos:server-addr: localhost:8848 # 指定 nacos server 配置中心地址dataId: member-service-nacos-consumer # nacos server 配置中心当中对应的ID保持一致一定要保持一致才行groupId: DEFAULT_GROUP # 指定组[nacos server配置中心]data-type: json # 指定配置流控规则的数据类型rule-type: flow # 规则类型流控规则 表示可以看文档 测试 浏览器: ht启动 Nacos Server 8848 启动 Sentinel8080 控制台/Sentinel dashboard 启动 member-service-nacos-provider-10004/10006 启动 member-service-nacos-consumer-80tp://localhost/member/openfeign/consumer/get/1 浏览器输入: http://localhost/member/openfeign/consumer/get/1 , 目前是 Openfeign 调用(负载均衡), 而且流控规则已经生效了. 注意看 sentinel, 这个流控规则已经生成了 查看 Sentinel 控制台 发现已经同步了流控规则 注意事项和细节
在 nacos server 配置 sentinel 流控规则的 Data ID 也可以自己指定比如写成 hsp-id, 只要在 sentinel client/微服务 的 applicaion.yml 的 datasource.ds1.nacos.dataId 的值保持一致即可。 2. 最后 “在这个最后的篇章中我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底继续在其他的领域奋斗。感谢你们我们总会在某个时刻再次相遇。”