10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析

news2025/1/24 16:46:39

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 配置中心-规则持久化实例

在这里插入图片描述

在这里插入图片描述

需求:

  1. member-service-nacos-consumer-80 微 服务的 /member/openfeign/consumer/get/1 API 接口添加流控规则 QPS=1/快速失败 .

  2. 要求将该流控规则加入到 nacos server 配置中心,实现持久化

代码+配置实现步骤:

  1. 在 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 Up,2表示排队等待;
    clusterMode∶是否集群

在这里插入图片描述

修改 member-service-nacos-consumer-80 的 pom.xml, 加入 sentinel 和 nacos 持久化整合依赖

在这里插入图片描述


<!--        引入 sentinel 和 nacos 持久化整合依赖,使用版本仲裁-->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-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 如果该端口被占用,就自动从8791+1进行扫描,直到找到一个没有占用的端口.
      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

  1. 浏览器输入: http://localhost/member/openfeign/consumer/get/1 , 目前是 Openfeign 调用(负载均衡), 而且流控规则已经生效了.

在这里插入图片描述

  1. 注意看 sentinel, 这个流控规则已经生成了

在这里插入图片描述

在这里插入图片描述

  1. 查看 Sentinel 控制台 发现已经同步了流控规则

在这里插入图片描述

注意事项和细节:

  1. 在 nacos server 配置 sentinel 流控规则的 Data ID 也可以自己指定,比如写成 hsp-id, 只要在 sentinel client/微服务 的 applicaion.yml 的 datasource.ds1.nacos.dataId 的值保持一致即可。

在这里插入图片描述

2. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2281523.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud微服务Gateway网关简单集成Sentinel

Sentinel是阿里巴巴开源的一款面向分布式服务架构的轻量级流量控制、熔断降级组件。Sentinel以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度来帮助保护服务的稳定性。 官方文档&#xff1a;https://sentinelguard.io/zh-cn/docs/introduction.html …

正则表达式以及Qt中的使用

目录 一、正则表达式 1、基本匹配&#xff1a; 2、元字符&#xff1a; 2.1 .运算符&#xff1a; 2.2 字符集&#xff1a; 2.3 重复次数&#xff1a; 2.4 量词{} 2.5 特征标群() 2.6 或运算符 2.7 \反斜线转码特殊字符 2.8 锚点 3、简写字符 4、零宽度断言 4.1 正…

【STM32HAL-----GPIO】

1. 什么是GPIO&#xff1f;&#xff08;了解&#xff09; 2. STM32 GPIO简介 2.1. GPIO特点 2.2. GPIO电气特性 2.3. GPIO引脚分布图 IO引脚分布特点&#xff1a;按组存在、组数视芯片而定、每组最多16个IO引脚。 3. IO端口基本结构介绍 4. GPIO八种工作模式 4.1. 输入浮空 特…

亲测有效!解决PyCharm下PyEMD安装报错 ModuleNotFoundError: No module named ‘PyEMD‘

解决PyCharm下PyEMD安装报错 PyEMD安装报错解决方案 PyEMD安装报错 PyCharm下通过右键自动安装PyEMD后运行报错ModuleNotFoundError: No module named ‘PyEMD’ 解决方案 通过PyCharm IDE python package搜索EMD-signal&#xff0c;选择版本后点击“install”执行安装

低代码系统-产品架构案例介绍、简道云(七)

今天分析另外一个零代码、低代码产品-简道云&#xff0c;跟所有低代码产品的架构图一样&#xff0c;高、大、炫、美。 依然是从下至上&#xff0c;从左到右的顺序。 开发层 搭建中心 表单、流程、报表、用户中心&#xff0c;还是这些内容&#xff0c;自定义打印很多平台都有&am…

Chrome 132 版本新特性

Chrome 132 版本新特性 一、Chrome 132 版本浏览器更新 1. 在 iOS 上使用 Google Lens 搜索 在 Chrome 132 版本中&#xff0c;开始在所有平台上推出这一功能。 1.1. 更新版本&#xff1a; Chrome 126 在 ChromeOS、Linux、Mac、Windows 上&#xff1a;在 1% 的稳定版用户…

计算机网络三张表(ARP表、MAC表、路由表)总结

参考&#xff1a; 网络三张表&#xff1a;ARP表, MAC表, 路由表&#xff0c;实现你的网络自由&#xff01;&#xff01;_mac表、arp表、路由表-CSDN博客 网络中的三张表&#xff1a;ARP表、MAC表、路由表 首先要明确一件事&#xff0c;如果一个主机要发送数据&#xff0c;那么必…

cursor重构谷粒商城04——vagrant技术快速部署虚拟机

前言&#xff1a;这个系列将使用最前沿的cursor作为辅助编程工具&#xff0c;来快速开发一些基础的编程项目。目的是为了在真实项目中&#xff0c;帮助初级程序员快速进阶&#xff0c;以最快的速度&#xff0c;效率&#xff0c;快速进阶到中高阶程序员。 本项目将基于谷粒商城…

【玩转全栈】----Django连接MySQL

阅前先赞&#xff0c;养好习惯&#xff01; 目录 1、ORM框架介绍 选择建议 2、安装mysqlclient 3、创建数据库 4、修改settings&#xff0c;连接数据库 5、对数据库进行操作 创建表 删除表 添加数据 删除数据 修改&#xff08;更新&#xff09;数据&#xff1a; 获取数据 1、OR…

Jmeter使用Request URL请求接口

简介 在Jmeter调试接口时&#xff0c;有时不清楚后端服务接口的具体路径&#xff0c;可以使用Request URL和cookie来实现接口请求。以下内容以使用cookie鉴权的接口举例。 步骤 ① 登录网站后获取具体的Request URL和cookie信息 通过浏览器获取到Request URL和cookie&#…

mock可视化生成前端代码

介绍&#xff1a;mock是我们前后端分离的必要一环、ts、axios编写起来也很麻烦。我们就可以使用以下插件&#xff0c;来解决我们的问题。目前支持vite和webpack。&#xff08;配置超级简单&#xff01;&#xff09; 欢迎小伙伴们提issues、我们共建。提升我们的开发体验。 vi…

输入网址到网页显示,发生了什么--讲述

输入www.baidu.com作为网址&#xff0c; 孤身的人-HTTP 浏览器要做的第一步就是 解析URL&#xff0c;根据url里面的资源路径&#xff0c;确认服务器资源和路径&#xff0c;生成http请求消息&#xff0c;包括请求消息&#xff08;请求行 消息头 请求体&#xff09; 举例&am…

1.CSS的三大特性

css有三个非常重要的三个特性&#xff1a;层叠性、继承性、优先级 1.1 层叠性 想通选择器给设置想听的样式&#xff0c;此时一个样式就会覆盖&#xff08;层叠&#xff09;另一个冲突的样式。层叠性主要是解决样式冲突的问题。 <!DOCTYPE html> <html lang"en&…

Lock和Synchronized的区别,源码分析

Lock和Synchronized的区别&#xff0c;源码分析 探究Lock锁&#xff08;指实现Lock接口的锁&#xff0c;比如是ReentrantLock锁&#xff09;与Synchronized的区别。 以上区别都体现在Lock接口里定义的方法&#xff0c;以及实现Lock接口的类&#xff08;比如ReentrantLock&#…

如何把jupyter的一个.ipynb文件的多个单元格cell合并为1个cell

1 jupyter的一个.ipynb文件的多个单元格cell合并为1个cell 步骤 1&#xff1a;打开 your_notebook.ipynb 文件 启动 Jupyter Notebook。 导航到你的工作目录&#xff08;例如 F:\main&#xff09;。 打开 your_notebook.ipynb 文件。 步骤 2&#xff1a;选择所有单元格 点击…

Linux中的几个基本指令(二)

文章目录 1、cp指令例一&#xff1a;例二&#xff1a;例三&#xff1a;例四&#xff1a;例五&#xff1a; 2、mv 指令例一&#xff1a;例二&#xff1a; 3、cat指令例一&#xff1a; 4、tac指令5、which指令6、date指令时间戳&#xff1a;7、zip指令 今天我们继续学习Linux下的…

SSM开发(一)JAVA,javaEE,spring,springmvc,springboot,SSM,SSH等几个概念区别

目录 JAVA 框架 javaEE spring springmvc springboot SSM SSH maven JAVA 一种面向对象、高级编程语言&#xff0c;Python也是高级编程语言&#xff1b;不是框架(框架&#xff1a;一般用于大型复杂需求项目&#xff0c;用于快速开发)具有三大特性&#xff0c;所谓Jav…

GS论文阅读--GeoTexDensifier

前言 本文是一个关于高斯致密化策略对高斯地图进行优化&#xff0c;他主要关注了几何结构和纹理信息。我最近对于高斯点的分布比较感兴趣&#xff0c;因为高斯点的分布决定了之后重建质量的好坏&#xff0c;初始化高斯很重要&#xff0c;但之后的维护需要致密化与修建策略&…

计算机视觉算法实战——无人机检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​ 1. 引言✨✨ 随着无人机技术的快速发展&#xff0c;无人机在农业、物流、监控等领域的应用越来越广泛。然而&#xff0c;无人机的滥用也带…

2025/1/21 学习Vue的第四天

睡觉。 --------------------------------------------------------------------------------------------------------------------------------- 11.Object.defineProperty 1.在我们之前学习JS的时候&#xff0c;普通得定义一个对象与属性。 <!DOCTYPE html> <h…