日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

改造Sentinel源碼,實現Nacos雙向通信!

來源: 責編: 時間:2023-10-17 18:04:57 355觀看
導讀Sentinel Dashboard(控制臺)默認情況下,只能將配置規則保存到內存中,這樣就會導致 Sentinel Dashboard 重啟后配置規則丟失的情況,因此我們需要將規則保存到某種數據源中,Sentinel 支持的數據源有以下這些:圖片然而,默認情況

Sentinel Dashboard(控制臺)默認情況下,只能將配置規則保存到內存中,這樣就會導致 Sentinel Dashboard 重啟后配置規則丟失的情況,因此我們需要將規則保存到某種數據源中,Sentinel 支持的數據源有以下這些:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

然而,默認情況下,Sentinel 和數據源之間的關系是單向數據通訊的,也就是只能先在數據源中配置規則,然后數據源會被規則推送至 Sentinel Dashboard 和 Sentinel 客戶端,但是在 Sentinel Dashboard 中修改規則或新增規則是不能反向同步到數據源中的,這就是單向通訊。XG428資訊網——每日最新資訊28at.com

所以,今天我們就該修改一下 Sentinel 的源碼,讓其可以同步規則至數據源,改造之后的交互流程如下圖所示:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

Sentinel 同步規則至數據源,例如將 Sentinel 的規則,同步規則至 Nacos 數據源的改造步驟很多,但整體實現難度不大,下面我們一起來看吧。XG428資訊網——每日最新資訊28at.com

1.下載Sentinel源碼

下載地址:https://github.com/alibaba/SentinelXG428資訊網——每日最新資訊28at.com

PS:本文 Sentinel 使用的版本是 1.8.6。XG428資訊網——每日最新資訊28at.com

下載源碼之后,使用 idea 打開里面的 sentinel-dashboard 項目,如下圖所示:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

2.修改pom.xml

將 sentinel-datasource-nacos 底下的 scope 注釋掉,如下圖所示:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

PS:因為官方提供的 Nacos 持久化實例,是在 test 目錄下進行單元測試的,而我們是用于生產環境,所以需要將 scope 中的 test 去掉。XG428資訊網——每日最新資訊28at.com

3.移動單元測試代碼

將 test/com.alibaba.csp.sentinel.dashboard.rule.nacos 下所有文件復制到 src/main/java/com.alibaba.csp.sentinel.dashboard.rule 目錄下,如下圖所示:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

4.新建NacosPropertiesConfiguration文件

在 com.alibaba.csp.sentinel.dashboard.rule 下創建 Nacos 配置文件的讀取類,實現代碼如下:XG428資訊網——每日最新資訊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 方法,修改后的代碼如下:XG428資訊網——每日最新資訊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 文件:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

修改后代碼:XG428資訊網——每日最新資訊28at.com

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

XG428資訊網——每日最新資訊28at.com

PS:此操作的目的是開啟 Controller 層操作 Nacos 的開關。XG428資訊網——每日最新資訊28at.com

如下圖所示:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

7.修改配置信息

在 application.properties 中設置 Nacos 連接信息,配置如下:XG428資訊網——每日最新資訊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 文件:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

搜索“dashboard.flowV1”改為“dashboard.flow”,如下圖所示:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

9.修改identity.js

identity.js 文件有兩處修改,它位于 webapp/resources/app/scripts/controllers/identity.js 目錄。XG428資訊網——每日最新資訊28at.com

9.1 第一處修改

將“FlowServiceV1”修改為“FlowServiceV2”,如下圖所示:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

9.2 第二處修改

搜索“/dashboard/flow/”修改為“/dashboard/v2/flow/”,如下圖所示:XG428資訊網——每日最新資訊28at.com

圖片圖片XG428資訊網——每日最新資訊28at.com

PS:修改 identity.js 文件主要是用于在 Sentinel 點擊資源的“流控”按鈕添加規則后將信息同步給 Nacos。XG428資訊網——每日最新資訊28at.com

小結

Sentinel Dashboard 默認情況下,只能將配置規則保存到內存中,這樣就會程序重啟后配置規則丟失的情況,因此我們需要給 Sentinel 設置一個數據源,并且要和數據源之間實現雙向通訊,所以我們需要修改 Sentinel 的源碼。源碼的改造步驟雖然很多,但只要逐一核對和修改就可以實現 Sentinel 生成環境的配置了。看完記得收藏哦,防止以后用的時候找不到。XG428資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-13673-0.html改造Sentinel源碼,實現Nacos雙向通信!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 7個開發者不可不知的VS Code小技巧

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

標簽:
  • 熱門焦點
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 這款新興工具平臺,讓你的電腦效率翻倍

    隨著信息技術的發展,我們獲取信息的渠道越來越多,但是處理信息的效率卻成為一個瓶頸。于是各種工具應運而生,都在爭相解決我們的工作效率問題。今天我要給大家介紹一款效率
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財經(niudaocaijing)7月5日,企鵝FM發布官方公告稱由于業務調整,將于9月6日正式停止運營,這意味著騰訊音樂長音頻業務走向消亡。騰訊在長音頻領域還在摸索。為
  • 一條抖音4億人圍觀 ! 這家MCN比無憂傳媒還野

    作者:Hiu 來源:互聯網品牌官01 擦邊少女空降熱搜,幕后推手曝光被網友譽為&ldquo;純欲天花板&rdquo;的女網紅井川里予,近期因為一組哥特風照片登上熱搜,引發了一場互聯網世界關于
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元&ldquo;人在職場,應該選擇什么樣的著裝?&rdquo;近日,在網絡上,一個與著裝相關的帖子引發關注,在該帖子里,一位在高級寫字樓亞洲金
  • 蘋果、三星、惠普等暫停向印度出口筆記本和平板電腦

    集微網消息,據彭博社報道,在8月3日印度突然禁止在沒有許可證的情況下向印度進口電腦/平板及顯示器等產品后,蘋果、三星電子和惠普等大公司暫停向印度
  • 引領旗艦級影像能力向中端機普及 OPPO K11 系列發布 1799 元起

    7月25日,OPPO正式發布K系列新品—— OPPO K11 。此次 K11 在中端手機市場長期被忽視的影像板塊發力,突破性地搭載索尼 IMX890 旗艦大底主攝,支持 OIS
Top 主站蜘蛛池模板: 绥德县| 咸宁市| 新竹县| 元谋县| 垣曲县| 古丈县| 肥西县| 黑山县| 棋牌| 惠东县| 南岸区| 翁源县| 永济市| 施甸县| 万荣县| 黄浦区| 蒙山县| 潞西市| 扎囊县| 红桥区| 平遥县| 满洲里市| 辉南县| 齐齐哈尔市| 黔江区| 鞍山市| 卓资县| 邮箱| 泸州市| 沈丘县| 满城县| 建昌县| 石阡县| 利津县| 哈巴河县| 江北区| 禄丰县| 温州市| 双流县| 南投市| 邯郸县|