Sentinel规则持久化到nacos的实现(源码修改)

news2024/11/28 2:47:12

文章目录

  • 1、Sentinel源码修改
  • 2、持久化效果测试

Sentinel规则管理有三种模式:

  • 原始模式
  • pull模式
  • push模式

这是实现push方式:

在这里插入图片描述

push模式即控制台将配置规则推送到远程配置中心,例如Nacos。Sentinel客户端去监听Nacos,获取配置变更的推送消息后完成本地配置更新。

但SentinelDashboard默认不支持nacos的持久化,需要修改源码,(不想花钱)下面开整:

1、Sentinel源码修改

  • 下载Sentinel的源码包
# github地址,版本自选
https://github.com/alibaba/Sentinel/tags

在这里插入图片描述

  • 解压后用IDEA打开项目

在这里插入图片描述

  • 修改sentinel-dashboard模块源码的pom文件,将sentinel-datasource-nacos依赖的scope注释掉(nacos的依赖默认的scope是test,只能在测试时使用,这里要去除)

在这里插入图片描述

  • 拷贝test目录下的nacos代码到main下的com.alibaba.csp.sentinel.dashboard.rule包(在sentinel-dashboard的test包下,已经编写了对nacos的支持)

在这里插入图片描述

  • 修改刚刚拷贝的nacos包下的NacosConfig类,修改其中的nacos地址,让其读取application.properties中的配置:(圈起来的都是新增的)

在这里插入图片描述

  • 在sentinel-dashboard的application.properties中添加nacos地址配置:
nacos.addr=localhost:8848
  • 修改 com.alibaba.csp.sentinel.dashboard.controller.v2包下的FlowControllerV2类,让我们添加的Nacos数据源生效:

在这里插入图片描述
在这里插入图片描述

  • 修改src/main/webapp/resources/app/scripts/directives/sidebar/目录下的sidebar.html文件:

在这里插入图片描述

  • 将sidebar.html文件其中的这部分注释打开,改个自己的文本(添加一个支持nacos的菜单):

在这里插入图片描述

  • 运行IDEA中的maven插件,重新编译和打包修改好的Sentinel-Dashboard:

在这里插入图片描述

  • 打包成功

在这里插入图片描述

  • 启动方式跟官方一样:
java -jar sentinel-dashboard.jar

在这里插入图片描述

  • 如果nacos地址不是localhost,修改需要添加参数:
java -jar -Dnacos.addr=localhost:8848 sentinel-dashboard.jar

2、持久化效果测试

改装完成,接下来修改自己的微服务order-service,使其监听Nacos配置中心

  • 在order-service中引入sentinel监听nacos的依赖
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
  • 在order-service中的application.yml文件配置nacos地址及监听的配置信息:
spring:
  cloud:
    sentinel:
      datasource:
        flow:
          nacos:
            server-addr: localhost:8848 # nacos地址
            dataId: orderservice-flow-rules
            groupId: SENTINEL_GROUP
            rule-type: flow # 还可以是:degrade、authority、param-flow
        #如果还有其他类型的限流,下面继续和flow同级写
        degrade:
          nacos:
            server-addr: localhost:8848 # nacos地址
            dataId: orderservice-degrade-rules
            groupId: SENTINEL_GROUP
            rule-type: degrade
  • 重启自己的微服务,请求个接口后在自己新加的侧边栏流控规则-NACOS中添加限流规则

在这里插入图片描述

  • 可以看到限流功能首先是正常的

在这里插入图片描述

  • 再查看Nacos配置,可以看到限流规则已被持久化进来

在这里插入图片描述

  • 再次重启自己的微服务order-service,可以看到nacos中的限流规则依然在,发起请求,依然会被限流,不再因为服务重启而丢失限流规则了。

在这里插入图片描述

修改成功!!!!

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

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

相关文章

通过URL对象实现简单爬虫功能

目录 一、URL类 1. URL类基本概念 2. 构造器 3. 常用方法 二、爬虫实例 1. 爬取网络图片&#xff08;简易&#xff09; 2. 爬取网页源代码 3. 爬取网站所有图片 一、URL类 1. URL类基本概念 URL&#xff1a;Uniform Resource Locator 统一资源定位符 表示统一资源定位…

Hadoop——Hive相关问题汇总

(1) 连接数据库时SSL问题 解决方法&#xff1a;useSSLfalse要放最后 (2) jdbc:hive2://localhost:10091: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): Us…

银河麒麟服务器v10 sp1 nginx 部署项目

上一篇&#xff1a;银河麒麟服务器v10 sp1 nginx开机自动启动_csdn_aspnet的博客-CSDN博客 由于项目为前后端分离&#xff0c;前端项目使用nginx部署&#xff0c;VUE项目打包后上传至银河麒麟服务器&#xff1a; 8063 为前端项目文件目录&#xff0c;修改配置 &#xff0c;默认…

计算机基础专升本笔记四 计算机系统

计算机基础专升本笔记四 计算机系统 计算机系统 计算机系统由计算机硬件系统和计算机软件系统 组成。且是按照存储程序的方式工作的。计算机硬件就是由各种电子器件按照一定逻辑连接而成&#xff0c;看的见摸得着&#xff0c;是计算机系统的物质基础&#xff0c;计算机软件系统…

港科夜闻|第二届钟南山青年科技创新奖发布仪式在香港科大(广州)成功举办...

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、第二届钟南山青年科技创新奖发布仪式在香港科大&#xff08;广州&#xff09;成功举办。本次活动由中国青年科技工作者协会、中国青年创业就业基金会、钟南山青年科技创新奖评审委员会、共青团广东省委员会、广州市南沙开…

axios请求本地json文件

1.安装axios npm install axios --save 2.在main.js中引入 import { createApp } from vue import axios from axios import VueAxios from vue-axios const app createApp(App) app.config.globalProperties.$http axios; app.use(VueAxios, axios) 3.在根目录下的publi…

什么小程序需要社交相关类目?

1、陌生人交友&#xff1a;小程序内涉及提供在线陌生人交友服务&#xff0c;需补充社交-陌生人交友类目。 所需资质&#xff1a;《增值电信业务经营许可证》&#xff08;核准服务项目包含“互联网信息服务业务”&#xff09; 案例&#xff1a;如下图小程序涉及通过展示用户微…

【JAVA】云HIS系统功能菜单知识(三)

云HIS系统能帮助基层医院完成日常各类业务&#xff0c;提供病患预约挂号、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工作站等一系列常规功能。 四、住院医生站 1.医嘱管理 登记信息、主治医生、患者信息、床位号、病案编号、住院号、身份证号、入…

从零到一nvm、npm、cnpm、yarn、vue全套安装和环境配置以及创建新项目和如何运行人家的项目大全,最详细,保姆级

NVM 1.下载 下载地址&#xff1a;Releases coreybutler/nvm-windows GitHub 可能需要开启魔法 划到下面。找到如图所示的文件下载即可2. 2.安装&#xff08;要记住安装的路径&#xff09; 基本一键默认即可&#xff0c;你要修改路径也可以&#xff0c;但不建议 下载好…

Rust之泛型、特性和生命期(四):验证有生存期的引用

开发环境 Windows 10Rust 1.71.0 VS Code 1.80.1 项目工程 这里继续沿用上次工程rust-demo 验证具有生存期的引用 生存期是我们已经在使用的另一种泛型。生存期不是确保一个类型具有我们想要的行为&#xff0c;而是确保引用在我们需要时有效。 我们在第4章“引用和借用”一…

Java将数据集合转换为PDF

这里写自定义目录标题 将数据集合转换为pdf引入包工具类测试代码导出效果 将数据集合转换为pdf 依赖itext7包将数据集合转换导出为PDF文件 引入包 <properties><itext.version>7.1.11</itext.version> </properties><dependency><groupId&…

Spring、Springboot、SpringMVC之间的关系

他们之间没有明确的区分。一个项目&#xff0c;可以说是SpringMVC,又是Sprigboot,又是Spring项目。 首先简单看一下他们的定义&#xff1a; Spring是包含众多容器的IOC(控制反转)容器&#xff0c;是一个分层的轻量级框架&#xff0c;为了简化Java程序的开发。Springboot在Spr…

实例022 非矩形窗体

实例说明 大部分Windows窗体都是一个矩形区域&#xff0c;读者是否已经厌倦了这种中规中矩的矩形窗体&#xff1f;本例中的窗体是一个打破传统矩形的异型窗体&#xff0c;运行该例会看到一个非常可爱的窗体&#xff0c;单击【X】按钮就会使窗口关闭。实例效果如图1.22所示。 …

基于MATLAB的无人机遥感数据预处理与农林植被性状估算实践

遥感技术作为一种空间大数据手段&#xff0c;能够从多时、多维、多地等角度&#xff0c;获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优势&#xff0c;是智慧农业必须采用的重要技术之一。本内容主要针对农业、林业、生态、遥感背景的对无人机遥感有兴趣的…

低代码平台协同OA升级,促进金融企业信息化建设

编者按&#xff1a;数字化办公是信息化时代每个企业不可避免的&#xff0c;OA系统是数字化办公的关键环节。如何与时俱进&#xff0c;保持企业的活力&#xff0c;增强企业综合竞争力&#xff1f;本文分析了企业OA系统为什么需要升级&#xff0c;并进一步指出如何实现升级。 关…

git stash 内容丢失找回【亲测好用】

直接将下列代码复制到 终端 会出现所有列表 也包括你删除/丢失的stash git log --graph --oneline --decorate $( git fsck --no-reflog | awk /dangling commit/ {print $3} ) 前面的黄色就是他的编号 例如我想回复 自己编辑修改项目 将编号复制重链即可 git stash apply …

MySQL使用

目录 1 MySQL的登录 1.1 服务的启动和终止 1.2 自带客户端的登录与退出 2 MySQL演示使用 2.1 MySQL的使用演示 2.2 MySQL的编码设置 1 MySQL的登录 1.1 服务的启动和终止 MySQL安装完毕以后&#xff0c;需要启动服务器进程&#xff0c;不然客户端无法连接数据库。 在前面…

用html+javascript打造公文一键排版系统7:落款排版

一、公文落款的格式 公文落款包括单位署名和成文日期两个部分&#xff0c;其中成文日期中的数字 用阿拉伯数字将年、月、日标全&#xff0c;年份应标全称&#xff0c;月、日不编虚位&#xff08;即 1 不编为 01&#xff09;。 在实际应用工作中分为三种情况&#xff1a; &am…

(36)转速传感器

文章目录 前言 36.1 RPM库如何工作(TYPE AUXPIN) 36.2 霍尔效应传感器 36.3 电调遥测 - 电机平均转速 36.4 电气换向传感器 36.5 光学传感器 36.6 谐波陷波中心频率 前言 ArduPilot 支持使用众多类型的转速传感器。它们通常用于传统的直升机&#xff0c;测量主旋翼速度…

java Spring Boot上线运维 启动jar时控制台调整零时变量

前面的文章 java 打包Spring Boot项目&#xff0c;并运行在windows系统中和将Spring Boot项目打包部署到阿里云linux服务器讲述了Spring Boot项目打包部署的过程 但是 这里 我们可能会遇到一种情况 此时 我们服务器 java项目占用了 80端口 但我们需要放上去一个更重要的东西&am…