当前位置:首页 > 科技  > 软件

改造Sentinel源码,实现Nacos双向通信!

来源: 责编: 时间:2023-10-17 18:04:57 239观看
导读Sentinel Dashboard(控制台)默认情况下,只能将配置规则保存到内存中,这样就会导致 Sentinel Dashboard 重启后配置规则丢失的情况,因此我们需要将规则保存到某种数据源中,Sentinel 支持的数据源有以下这些:图片然而,默认情况

Sentinel Dashboard(控制台)默认情况下,只能将配置规则保存到内存中,这样就会导致 Sentinel Dashboard 重启后配置规则丢失的情况,因此我们需要将规则保存到某种数据源中,Sentinel 支持的数据源有以下这些:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

然而,默认情况下,Sentinel 和数据源之间的关系是单向数据通讯的,也就是只能先在数据源中配置规则,然后数据源会被规则推送至 Sentinel Dashboard 和 Sentinel 客户端,但是在 Sentinel Dashboard 中修改规则或新增规则是不能反向同步到数据源中的,这就是单向通讯。Xvw28资讯网——每日最新资讯28at.com

所以,今天我们就该修改一下 Sentinel 的源码,让其可以同步规则至数据源,改造之后的交互流程如下图所示:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

Sentinel 同步规则至数据源,例如将 Sentinel 的规则,同步规则至 Nacos 数据源的改造步骤很多,但整体实现难度不大,下面我们一起来看吧。Xvw28资讯网——每日最新资讯28at.com

1.下载Sentinel源码

下载地址:https://github.com/alibaba/SentinelXvw28资讯网——每日最新资讯28at.com

PS:本文 Sentinel 使用的版本是 1.8.6。Xvw28资讯网——每日最新资讯28at.com

下载源码之后,使用 idea 打开里面的 sentinel-dashboard 项目,如下图所示:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

2.修改pom.xml

将 sentinel-datasource-nacos 底下的 scope 注释掉,如下图所示:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

PS:因为官方提供的 Nacos 持久化实例,是在 test 目录下进行单元测试的,而我们是用于生产环境,所以需要将 scope 中的 test 去掉。Xvw28资讯网——每日最新资讯28at.com

3.移动单元测试代码

将 test/com.alibaba.csp.sentinel.dashboard.rule.nacos 下所有文件复制到 src/main/java/com.alibaba.csp.sentinel.dashboard.rule 目录下,如下图所示:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

4.新建NacosPropertiesConfiguration文件

在 com.alibaba.csp.sentinel.dashboard.rule 下创建 Nacos 配置文件的读取类,实现代码如下:Xvw28资讯网——每日最新资讯28at.com

package com.alibaba.csp.sentinel.dashboard.rule;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Configuration;@ConfigurationProperties(prefix = "sentinel.nacos")@Configurationpublic class NacosPropertiesConfiguration {    private String serverAddr;    private String dataId;    private String groupId;    private String namespace;    private String username;    private String password;    // 省略 Getter/Setter 代码}

5.修改NacosConfig文件

只修改 NacosConfig 中的 nacosConfigService 方法,修改后的代码如下:Xvw28资讯网——每日最新资讯28at.com

@Beanpublic ConfigService nacosConfigService(NacosPropertiesConfiguration nacosPropertiesConfiguration) throws Exception {    Properties properties = new Properties();    properties.put(PropertyKeyConst.SERVER_ADDR, nacosPropertiesConfiguration.getServerAddr());    properties.put(PropertyKeyConst.NAMESPACE, nacosPropertiesConfiguration.getNamespace());    properties.put(PropertyKeyConst.USERNAME,nacosPropertiesConfiguration.getUsername());    properties.put(PropertyKeyConst.PASSWORD,nacosPropertiesConfiguration.getPassword());    return ConfigFactory.createConfigService(properties);//        return ConfigFactory.createConfigService("localhost"); // 原代码}

6.修改FlowControllerV2文件

修改 com.alibaba.csp.sentinel.dashboard.controller.v2 目录下的 FlowControllerV2 文件:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

修改后代码:Xvw28资讯网——每日最新资讯28at.com

@Autowired@Qualifier("flowRuleNacosProvider")private DynamicRuleProvider<List<FlowRuleEntity>> ruleProvider;@Autowired@Qualifier("flowRuleNacosPublisher")private DynamicRulePublisher<List<FlowRuleEntity>> rulePublisher;

Xvw28资讯网——每日最新资讯28at.com

PS:此操作的目的是开启 Controller 层操作 Nacos 的开关。Xvw28资讯网——每日最新资讯28at.com

如下图所示:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

7.修改配置信息

在 application.properties 中设置 Nacos 连接信息,配置如下:Xvw28资讯网——每日最新资讯28at.com

sentinel.nacos.serverAddr=localhost:8848sentinel.nacos.username=nacossentinel.nacos.password=nacossentinel.nacos.namespace=sentinel.nacos.groupId=DEFAULT_GROUPsentinel.nacos.dataId=sentinel-dashboard-demo-sentinel

8.修改sidebar.html

修改 webapp/resources/app/scripts/directives/sidebar/sidebar.html 文件:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

搜索“dashboard.flowV1”改为“dashboard.flow”,如下图所示:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

9.修改identity.js

identity.js 文件有两处修改,它位于 webapp/resources/app/scripts/controllers/identity.js 目录。Xvw28资讯网——每日最新资讯28at.com

9.1 第一处修改

将“FlowServiceV1”修改为“FlowServiceV2”,如下图所示:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

9.2 第二处修改

搜索“/dashboard/flow/”修改为“/dashboard/v2/flow/”,如下图所示:Xvw28资讯网——每日最新资讯28at.com

图片图片Xvw28资讯网——每日最新资讯28at.com

PS:修改 identity.js 文件主要是用于在 Sentinel 点击资源的“流控”按钮添加规则后将信息同步给 Nacos。Xvw28资讯网——每日最新资讯28at.com

小结

Sentinel Dashboard 默认情况下,只能将配置规则保存到内存中,这样就会程序重启后配置规则丢失的情况,因此我们需要给 Sentinel 设置一个数据源,并且要和数据源之间实现双向通讯,所以我们需要修改 Sentinel 的源码。源码的改造步骤虽然很多,但只要逐一核对和修改就可以实现 Sentinel 生成环境的配置了。看完记得收藏哦,防止以后用的时候找不到。Xvw28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-13673-0.html改造Sentinel源码,实现Nacos双向通信!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 7个开发者不可不知的VS Code小技巧

下一篇: 使用Python处理大型CSV文件

标签:
  • 热门焦点
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • SpringBoot中使用Cache提升接口性能详解

    SpringBoot中使用Cache提升接口性能详解

    环境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架从 3.1 开始,对 Spring 应用程序提供了透明式添加缓存的支持。和事务支持一样,抽象缓存允许一致地使用各
  • 不容错过的MSBuild技巧,必备用法详解和实践指南

    不容错过的MSBuild技巧,必备用法详解和实践指南

    一、MSBuild简介MSBuild是一种基于XML的构建引擎,用于在.NET Framework和.NET Core应用程序中自动化构建过程。它是Visual Studio的构建引擎,可在命令行或其他构建工具中使用
  • 共享单车的故事讲到哪了?

    共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为&ldquo;纯欲天花板&rdquo;的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • 2纳米决战2025

    2纳米决战2025

    集微网报道 从三强争霸到四雄逐鹿,2nm的厮杀声已然隐约传来。无论是老牌劲旅台积电、三星,还是誓言重回先进制程领先地位的英特尔,甚至初成立不久的新
  • 三星Galaxy Z Fold5今日亮相:厚度缩减但仍略显厚重

    三星Galaxy Z Fold5今日亮相:厚度缩减但仍略显厚重

    据官方此前宣布,三星将于7月26日也就是今天在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • 滴滴违法违规被罚80.26亿 共存在16项违法事实

    滴滴违法违规被罚80.26亿 共存在16项违法事实

    滴滴违法违规被罚80.26亿 存在16项违法事实开始于2121年7月,历经一年时间,网络安全审查办公室对“滴滴出行”网络安全审查终于有了一个暂时的结束。据“网信
Top