SpringCloud-動態(tài)配置變化監(jiān)控-獲取變化(支持Config迅耘、Nacos)

SpringCloud-動態(tài)配置變化監(jiān)控-獲取變化(支持Config、Nacos)

qq交流群: 812321371
微信交流群: MercyYao

簡介

配置中心有原生的 SpringCloud Config 、國內開源的 阿里 Nacos簸淀、攜程 Apollo 等沟使。
都是配置熱加載的基礎上增加了其他的功能委可。

配置中心具有配置熱加載,修改配置 -> 推送到程序 -> 執(zhí)行配置更新腊嗡。

而獲取配置更新的具體內容着倾,這些組件都沒有做到(SpringCloud ConfigNacos, Apollo待驗證 )燕少。如:獲取變化的配置 test 更新前為 123 ,更新后為 111卡者。

SpringCloud ConfigNacos 客们、 Apollo待驗證 配置更新都是將整個配置文件推送給服務進行配置對比結果進行更新崇决。這個階段用戶無法從程序中獲取更新的內容材诽。

為了實現這個擴展功能點,更新結果可以讓程序感知。
在這個階段用戶通過code可以實現配置監(jiān)聽, 監(jiān)聽到某個配置變化做其他操作等恒傻。

示例: 獲取到推送配置變化, 感知到 test 發(fā)生變化, 做更新同步數據操作等等脸侥。

感知結果集如:

{
    `被更新的配置key`:{
        before: `原來的值`,
        after: `更新后的值`
    },
    `被更新的配置key`:{
        before: `原來的值`盈厘,
        after: `更新后的值`
    }
}

功能使用

添加依賴

ps: 實際version版本請使用最新版
最新版本:

<dependency>
  <groupId>com.purgeteam</groupId>
  <artifactId>dynamic-config-spring-boot-starter</artifactId>
  <version>0.1.0.RELEASE</version>
</dependency>

當然實際情況要結合添加動態(tài)配置依賴包 SpringCloud Config 睁枕、 NacosApollo 沸手。

dynamic-config-spring-boot-starter 模塊不包含以上依賴, 需要自行添加外遇。

@EnableDynamicConfigEvent

簡介: 開啟這個特性注解,具備配置推送更新監(jiān)聽能力契吉。

啟動類添加 @EnableDynamicConfigEvent 注解開啟配置變化監(jiān)聽功能跳仿。

@EnableDynamicConfigEvent
@SpringBootApplication
public class DynamicConfigSpringBootApplication {

  public static void main(String[] args) {
    SpringApplication.run(DynamicConfigSpringBootApplication.class, args);
  }

}

編寫事件接收器

創(chuàng)建 NacosListener(名稱隨意) 實現 ApplicationListener<ActionConfigEvent>#onApplicationEvent 方法

@Slf4j
@Component
public class NacosListener implements ApplicationListener<ActionConfigEvent> {

  @Override
  public void onApplicationEvent(ActionConfigEvent event) {
    log.info("接收事件");
    log.info(event.getPropertyMap().toString());
  }
}

NacosListener#onApplicationEvent 方法里獲取目標值, 作相應的邏輯處理。

ActionConfigEvent event:

public class ActionConfigEvent extends ApplicationEvent {

    // 事件說明
    private String eventDesc;
    
    // 更新變化結果集
    private Map<String, HashMap> propertyMap;
    ...
}

ActionConfigEvent 主要包含 Map<String, HashMap> propertyMap;, 從這里可以獲取更新變化結果, propertyMap結構如下:

{
    `被更新的配置key`:{
        before: `原來的值`栅隐,
        after: `更新后的值`
    },
    `被更新的配置key`:{
        before: `原來的值`塔嬉,
        after: `更新后的值`
    }
}

更新配置演示

ps: 示例為 Nacos 其它配置中心無差別。

原始配置:

test.age=18
user.name=purgeyao

修改配置:

# test.age 將18更新為19
test.age=19
user.name=purgeyao

NacosListener#onApplicationEvent 方法加入端點調試觀察 ActionConfigEvent 對象參數租悄。

img

更新的 test.age 已經被記錄在了 ActionConfigEvent.propertyMap 里了, 從 18 更新為 19谨究。

控制臺打印:

2019-10-17 10:44:09.221  INFO 54054 --- [-10.1.1.97_8848] c.p.dynamic.config.demo.NacosListener    : 接收事件
2019-10-17 10:45:19.752  INFO 54054 --- [-10.1.1.97_8848] c.p.dynamic.config.demo.NacosListener    : {test.age={before=18, after=19}}

總結

上述功能基于 NacosSpringCloud Config 或基于 SpringCloud Config 之上構建的配置中心都可以使用, 其他配置中心待驗證泣棋。

qq交流群: 812321371
微信交流群: MercyYao

示例代碼地址:dynamic-config-spring-boot

作者GitHub:
Purgeyao 歡迎關注
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布胶哲!

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市潭辈,隨后出現的幾起案子鸯屿,更是在濱河造成了極大的恐慌,老刑警劉巖把敢,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寄摆,死亡現場離奇詭異,居然都是意外死亡修赞,警方通過查閱死者的電腦和手機婶恼,發(fā)現死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柏副,“玉大人勾邦,你說我怎么就攤上這事「钤瘢” “怎么了眷篇?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荔泳。 經常有香客問我蕉饼,道長虐杯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任椎椰,我火速辦了婚禮厦幅,結果婚禮上,老公的妹妹穿的比我還像新娘慨飘。我一直安慰自己,他們只是感情好译荞,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布瓤的。 她就那樣靜靜地躺著,像睡著了一般吞歼。 火紅的嫁衣襯著肌膚如雪圈膏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天篙骡,我揣著相機與錄音稽坤,去河邊找鬼。 笑死糯俗,一個胖子當著我的面吹牛尿褪,可吹牛的內容都是我干的。 我是一名探鬼主播得湘,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼杖玲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了淘正?” 一聲冷哼從身側響起摆马,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鸿吆,沒想到半個月后囤采,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡惩淳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年蕉毯,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片黎泣。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡恕刘,死狀恐怖,靈堂內的尸體忽然破棺而出抒倚,到底是詐尸還是另有隱情褐着,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布托呕,位于F島的核電站含蓉,受9級特大地震影響频敛,放射性物質發(fā)生泄漏。R本人自食惡果不足惜馅扣,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一斟赚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧差油,春花似錦拗军、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至妆偏,卻和暖如春刃鳄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钱骂。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工叔锐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人见秽。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓愉烙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親张吉。 傳聞我的和親對象是個殘疾皇子齿梁,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內容

  • 看 云淡風輕 , 感 陰晴圓缺肮蛹。 觀 風聲水起 勺择, 覺 悲歡離合。
    致遠達長心閱讀 189評論 0 1
  • 上周末去了一處農家伦忠。 有誰想到這看似尋常得不能再尋常的普通農家竟有一處草木茂盛的庭院省核。 長滿院墻的藤蔓植物,爬山虎...
    恩佑閱讀 575評論 16 9