精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SpringCloud整合MQ實現消息總線服務,實戰講解!

開發 前端
當我們手動更新某個倉庫配置文件的時候,想要實現所有客戶端同時也自動更新配置,可以利用消息總線來實現節點之間數據的同步變更操作。

一、背景介紹

在之前的文章中,我們介紹了服務配置中心高可用的玩法。了解到,每當修改配置文件內容,如果需要客戶端也同步更新,就需要手動調用/refresh接口,以便客戶端能獲取到最新的配置內容。

當客戶端越來越多的時候,通過人工進行處理顯然非常雞肋。有沒有一種更加高效的辦法,當手動調用其中一個客戶端的/refresh接口,其它的客戶端也自動更新?

答案是肯定的!

在 Spring Cloud 體系里,有一個叫做 Spring Cloud Bus 模塊,也被業界稱為消息總線。它可以將分布式系統內的節點以消息代理方式連接起來,開發者可以通過消息代理服務向其它節點傳輸數據的變更,例如配置文件的更改,也可以用于收集節點監控數據。其中常用的消息代理服務有 RabbitMQ 和 Kafka。

換言之,我們可以借助 Spring Cloud Bus 模塊來實現上文介紹的訴求,引入 Spring Cloud Bus 模塊后,客戶端獲取遠程配置文件的方式,可以用如下流程圖來描述。

圖片圖片

熟悉 MQ 服務的同學可能一眼就看出來了,其原理就是借助 MQ 服務的發布與訂閱功能向其它節點進行廣播數據,從而實現客戶端自動刷新配置功能。

其交互流程可以用如下內容來概括。

  • 1.當外部請求調用客戶端 A 的/refresh接口后,除了主動刷新配置意外,還會通過  Spring Cloud Bus 模塊,將刷新配置接口的指令數據發送到 MQ 服務器
  • 2.MQ 服務器會將指令數據通過  Spring Cloud Bus  模塊推送給其它客戶端
  • 3.客戶端 B、C 接收到最新的消息指令后,主動調用刷新配置服務,獲取最新的配置內容

下面我們通過具體的例子,結合之前介紹的知識,看看如何利用 Spring Cloud Bus  實現客戶端配置文件自動刷新的效果。

三、方案實踐

在此,我們采用 RabbitMQ 服務器來搭建消息總線,因此需要事先準備一臺可用的 RabbitMQ 服務器,具體的安裝教程之前有所介紹,大家也可以百度搜索一下,具體的安裝過程就不再重復撰述。

3.1、添加依賴

根據eureka-config-client復制一個服務消費者工程,命名為eureka-config-client-bus,并在pom.xml中引入spring-cloud-starter-bus-amqp依賴包,示例如下:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

3.2、添加配置文件

接著,在bootstrap.properties配置文件中添加消息代理相關的屬性信息,示例如下:

# 配置rabbitmq服務器地址
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

3.3、服務測試

然后,依次將eureka-server、eureka-config-server、eureka-config-client-bus (分別在不同的端口上,比如9022、9023) 服務啟動起來。訪問 eureka 可視化頁面,如果服務都正常,可以看到類似于如下的界面。

圖片圖片

將遠程倉庫配置文件中的blog.name=hahaha修改成blog.name=hahaha123456,以便測試客戶端配置文件是否能自動更新。

接著,向其中一個客戶端發送一個/bus/refresh的 POST 請求。

**需要注意的是,這里的路徑是/bus/refresh,而不是/refresh**!

圖片圖片

最后,在瀏覽器中重新訪問另一個客戶端讀取配置文件的接口,不意外的話,客戶端獲取的是最新的配置信息。

圖片圖片

說明客戶端已經成功讀取到最新的配置內容。

查看客戶端的日志,也會看到類似于如下的信息。

Received remote refresh request. Keys refreshed [config.client.version, blog.name]

3.4、WebHook

可能有的同學會發出一個疑問,不可能每次修改倉庫的配置文件,自己都需要手動調用/bus/refresh接口吧。

實際上,GIT 里面有個 WebHooks 功能,每次 push 代碼后,我們可以利用它給遠程 HTTP URL 發送一個 POST 請求,以此省去手動調用的工作。

圖片圖片

操作非常簡單,只需要將其中一個客戶端/bus/refresh接口地址添加進去即可。需要注意的是,這里的 HTTP URL 必須是一個能請求通過的公網地址哈!

四、升級版

在以上的方案中,雖然我們利用消息總線實現了手動刷新一個客戶端的配置文件更新,其它客戶端也同步跟著一起刷新的目的,但在實際的實踐過程中,發現還是有一些不便的地方。

例如客戶端因為業務的快速迭代會頻繁的發布服務,同時也會根據服務的并發量適度的增減服務實例數量,這種情況下,客戶端的 IP 和端口會經常發生變動,每次人工運維起來會很繁瑣。

因此,我們可以將上面的交互流程改變一下,由服務配置中心通過 Spring Cloud Bus 模塊向客戶端發送重刷配置文件的指令。

整個流程,可以用如下圖來描述。

圖片圖片

因為服務配置中心基本上很少會去迭代,客戶端的 IP 和端口發生變動的可能性較小,由它向客戶端推送消息,運維的工作量可以顯著的下降。

改造的流程也很簡單,只需要兩步即可!

3.1、添加依賴

與上文類似,根據eureka-config-server復制一個服務消費者工程,命名為eureka-config-server-bus,并在pom.xml中引入spring-cloud-starter-bus-amqp依賴包,示例如下:

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
</dependencies>

4.2、添加配置文件

接著,在application.properties中添加消息代理服務相關的屬性,示例如下:

spring.application.name=eureka-config-server
server.port=9020

# 配置git倉庫地址
spring.cloud.config.server.git.uri=https://gitee.com/pzblogs/config-demo
spring.cloud.config.server.git.username=
spring.cloud.config.server.git.password=

# 設置與Eureka Server交互的地址,多個地址可使用【,】分隔
eureka.client.serviceUrl.defaultZnotallow=http://localhost:8001/eureka/

# 關閉安全認證
management.security.enabled=false

# 配置rabbitmq服務器地址
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

4.3、服務測試

然后,依次將eureka-server、eureka-config-server-bus、eureka-config-client-bus服務啟動起來。

接著,修改倉庫中的配置文件內容,完成之后,以 POST 方式調用服務配置中心的刷新配置接口,例如http://localhost:9020/bus/refresh。

最后,在瀏覽器訪問客戶端http://localhost:9023/hello,不意外的話,能看到最新的信息。

圖片圖片

五、小結

最后總結一下,當我們手動更新某個倉庫配置文件的時候,想要實現所有客戶端同時也自動更新配置,可以利用消息總線來實現節點之間數據的同步變更操作。

如果想要用 Kafka 來做消息代理服務,實現思路也類似,將bus-amqp換成bus-kafka,示例子如下

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-kafka</artifactId>
</dependency>

最后在配置文件中添加 Kafka 相關服務地址配置參數即可。

五、參考

  1. http://www.ityouknow.com/springcloud/2017/05/26/springcloud-config-eureka-bus.html
責任編輯:武曉燕 來源: 潘志德技術筆記
相關推薦

2025-04-08 08:50:37

SpringCamel系統

2024-11-04 08:02:23

SpringRabbitMQ中間件

2017-03-20 09:50:35

消息隊列架構消息

2024-11-11 10:02:37

Spring搜索數據

2025-01-10 08:20:00

MQ消息架構

2022-06-02 08:21:07

RocketMQ消息中間件

2022-04-27 08:23:34

微服務負載均衡

2019-02-19 15:20:12

消息總線架構異步

2022-04-09 14:45:02

微服務常見概念Spring

2024-11-13 00:59:13

2025-01-06 08:53:37

2022-05-12 08:21:13

項目網關模塊

2022-05-31 08:21:07

MQ使用場景消費消息

2025-01-13 05:00:00

2010-06-08 16:00:34

CAN總線協議

2021-06-09 09:42:50

SpringCloud微服務灰度發布

2021-05-17 16:24:58

Spring Clou

2009-06-14 17:18:55

ibmdwWebSphereMQ

2023-06-29 10:10:06

Rocket MQ消息中間件

2023-10-24 07:50:18

消息中間件MQ
點贊
收藏

51CTO技術棧公眾號

国产又粗又猛又黄又爽| 久久久久久国产免费a片| 毛片在线导航| 久久久青草青青国产亚洲免观| 国产精品对白刺激| 少妇影院在线观看| 精品一区毛片| 日韩三级在线免费观看| 国内外成人激情视频| 精产国品自在线www| 99久久国产免费看| 成人激情视频在线播放| 日本在线播放视频| 91精品国产自产在线观看永久∴ | 波多野结衣一区| 欧美一区二区视频观看视频| 免费日韩视频在线观看| 成年人黄视频在线观看| 国产亚洲午夜高清国产拍精品| 7777精品久久久大香线蕉小说| 五月婷婷激情视频| 一区在线视频| 久久久成人精品视频| 久久精品无码一区| 五月激激激综合网色播| 日韩一区二区三| 中文字幕在线观看日 | 国产综合视频在线观看| 伊人久久综合视频| 欧美影院一区| 久久韩剧网电视剧| 超薄肉色丝袜一二三| 秋霞综合在线视频| 日韩欧美黄色影院| 九九热精品国产| 岛国一区二区| 91高清在线观看| 无码人妻丰满熟妇区五十路百度| 第一av在线| 夜色激情一区二区| 黄色一级视频播放| 免费网站成人| 亚洲欧洲av另类| 亚洲欧洲三级| 91caoporm在线视频| 国产午夜一区二区三区| 欧美亚洲另类在线一区二区三区| 天堂中文在线资源| 成人av免费网站| 粉嫩高清一区二区三区精品视频| a天堂中文在线观看| 国模大尺度一区二区三区| 国产精品女主播视频| 久久久999久久久| 日韩二区三区在线观看| 国产成人av网址| 中文字幕一区二区三区四区欧美| 久久婷婷激情| 国产精品国模在线| 在线免费看av的网站| 麻豆精品精品国产自在97香蕉| 国产精品69av| 亚洲天堂自拍偷拍| 精品无人区卡一卡二卡三乱码免费卡 | 欧美一区二区三区免费在线看 | 久久综合五月天婷婷伊人| 久久综合中文色婷婷| 神马久久高清| 亚洲国产精品黑人久久久| 亚洲高清精品中出| 精品孕妇一区二区三区| 亚洲制服欧美中文字幕中文字幕| 成人午夜精品久久久久久久蜜臀| 亚洲黄色免费看| 欧美性生活久久| 日日夜夜精品视频免费观看| ccyy激情综合| 亚洲欧洲视频在线| 性生交大片免费全黄| 欧美日韩三级电影在线| 欧美一二三视频| 久久久久在线视频| 狠狠狠色丁香婷婷综合久久五月| 99国内精品久久久久久久软件| 刘亦菲毛片一区二区三区| 久久亚洲欧美国产精品乐播| 欧美精品尤物在线| 91国内在线| 欧美日韩性视频| 天天操狠狠操夜夜操| 国产精品色在线网站| 亚洲人成网站免费播放| 91久久国产综合| 亚洲免费高清| 91精品久久久久久久久| 粉嫩小泬无遮挡久久久久久| 久久亚洲捆绑美女| www.99riav| 亚洲第一二三四区| 日韩欧美在线123| 国产中年熟女高潮大集合| 亚洲国产精品久久久久蝴蝶传媒| 欧美交受高潮1| 一本一道人人妻人人妻αv| 成人一区二区三区视频在线观看| 欧美综合77777色婷婷| 日本三级韩国三级欧美三级| 91福利在线观看| 91黄色免费视频| 久久久久久久久久久久久久久久久久 | 忘忧草在线影院两性视频| 欧美精品1区2区3区| 在线观看av中文字幕| 亚洲国产精品久久久天堂 | 丁香六月激情网| 岛国精品在线| 亚洲欧美激情精品一区二区| 欧美成人一区二区三区高清| 麻豆精品视频在线观看免费| 欧美日韩在线观看一区二区三区| 日本孕妇大胆孕交无码| 欧美高清性hdvideosex| 极品人妻videosss人妻| 亚洲一区免费| 国产精品免费一区二区三区观看 | 97久久国产精品| 国产三级第一页| 国产精品久久久久影院老司| 日韩视频免费在线播放| 欧美人体视频| 国内成人精品一区| 性色av蜜臀av| 亚洲精品一二三四区| 日韩高清第一页| 日韩成人激情| 国产精品久久久久久久久久久久久久 | 性欧美超级视频| 精品视频久久久久久久| 日本网站在线免费观看| 国产福利91精品一区| 日本一二三区视频在线| 精品视频成人| 欧美成人亚洲成人日韩成人| 国产精品熟女久久久久久| 亚洲欧美一区二区视频| 欧美视频亚洲图片| 亚洲精品99| 亚洲一区二区久久久久久| 免费网站看v片在线a| 91麻豆精品国产91久久久久久| 日本激情视频一区二区三区| 美美哒免费高清在线观看视频一区二区| 日韩精品一区二区三区色偷偷| 成人欧美大片| 在线电影欧美日韩一区二区私密| 中文字幕乱码在线观看| 国产精品情趣视频| 91免费视频污| 黄色成人av网站| 久久久www免费人成黑人精品| 妞干网免费在线视频| 亚洲美女av网站| 国产精品自拍第一页| 国产精品午夜久久| 亚洲第一成肉网| 欧美精品啪啪| 久久精品国产理论片免费| 欧美极品免费| 日日狠狠久久偷偷四色综合免费| 国产成人a人亚洲精品无码| 亚洲一区中文日韩| 性久久久久久久久久久| 玖玖精品视频| www.-级毛片线天内射视视| 亚洲精品国产九九九| 91国在线精品国内播放 | aa在线视频| 国产精品久久777777换脸| 亚洲精品动态| 国产精品爽爽爽| 可以免费观看的毛片| 91亚洲视频在线观看| 91ph在线| 亚洲国产一区二区在线播放| 99re久久精品国产| 亚洲丝袜精品| 男人的天堂在线视频免费观看| 中文字幕在线视频一区| 制服下的诱惑暮生| 国产精品久久久久久模特 | 婷婷激情小说网| 天天影视天天精品| 97久久人人超碰caoprom欧美| 成人影院在线视频| 中文字幕欧美亚洲| 成人毛片在线精品国产| 在线观看精品一区| 久草网在线观看| 欧美一级性视频| 日本久久综合网| 四虎视频在线精品免费网址| 日韩在线小视频| 国产精品麻豆免费版现看视频| 女人扒开双腿让男人捅 | 欧美顶级大胆免费视频| 成人在线免费观看一区| 亚洲综合av一区二区三区| 欧美成人免费全部| 欧美孕妇性xxxⅹ精品hd| 日韩一区二区在线免费观看| www.色欧美| www.超碰97.com| 欧美套图亚洲一区| 欧美视频在线播放| 国产真实乱偷精品视频| 国产精品美女久久久久久久| 亚洲精品乱码久久久久久不卡| 精品亚洲成av人在线观看| 成年人免费在线播放| 韩国在线一区| 91精选在线观看| 亚洲精品一线二线三线无人区| 久草青青在线观看| 欧美一区二区三区久久精品| 日本一区二区三区视频在线播放| 岛国精品一区| 亚洲一区二区三区乱码aⅴ| 日韩经典一区| 日韩av手机在线| 深夜av在线| 日韩电影在线免费看| 欧美一区二区播放| 天堂网中文字幕| 大桥未久av一区二区三区| 中文字幕av免费在线观看| 亚洲三级在线看| 日韩av网站在线播放| 欧美经典一区二区三区| 波多野结衣福利| 久久你懂得1024| 右手影院亚洲欧美| 2020日本不卡一区二区视频| 亚洲色图14p| 99re这里只有精品6| 中文人妻一区二区三区| 97精品视频在线观看自产线路二| 中文在线观看免费视频| 波多野结衣91| 欧美做受喷浆在线观看| 久久综合九色综合97婷婷女人| 国产精品久久无码| 久久人人爽爽爽人久久久| av男人的天堂av| 国产精品区一区二区三| 永久免费未视频| 一区二区在线观看视频在线观看| 黄色一级视频在线观看| 亚洲成精国产精品女| 在线天堂中文字幕| 欧洲av一区二区嗯嗯嗯啊| 亚洲无码久久久久久久| 日韩欧美区一区二| 人妻精品无码一区二区| 亚洲精品中文字幕有码专区| av在线免费观看网站| 俺去亚洲欧洲欧美日韩| 欧美激情成人动漫| 91精品国产成人www| 欧洲一级精品| 亚洲一区二区三区777| 美女扒开腿让男人桶爽久久动漫| 欧美日韩一区二区三区在线视频 | 久久久久久九九九九| 精品国产乱码久久久久久蜜坠欲下| 在线丝袜欧美日韩制服| 欧美亚韩一区| 久久婷婷五月综合色国产香蕉| 麻豆freexxxx性91精品| 激情小说欧美色图| 久久精品这里都是精品| 性色av无码久久一区二区三区| 亚洲动漫第一页| 久久久久久久久久一级| 日韩美女在线视频 | 日本一区二区三区视频在线看| 好吊色欧美一区二区三区视频| 欧美肉体xxxx裸体137大胆| 97av中文字幕| 日韩综合小视频| 9191在线视频| 亚洲国产精品成人综合| 亚洲精品午夜久久久久久久| 一本久道中文字幕精品亚洲嫩| 亚洲天堂网视频| 亚洲国产高清高潮精品美女| 日韩精品成人av| 91黑丝在线观看| 国产高清日韩| 日韩免费一区二区三区| 一区视频在线看| 一区二区久久精品| 久久久夜色精品亚洲| 欧美日韩精品在线观看视频| 在线精品国精品国产尤物884a| 精品人妻一区二区三区日产乱码| 国产一区二区三区欧美| 国产伦久视频在线观看| 亚洲伊人一本大道中文字幕| 国产伦一区二区三区| 黄色一级视频在线播放| 国产一区二区91| 老熟妇一区二区| 日韩欧美成人网| 成人乱码一区二区三区| 久久成人精品电影| 一二区成人影院电影网| 久久国产精品久久| 国产精品大片| 99热这里只有精品2| 中文字幕乱码久久午夜不卡| 在线精品免费视| 欧美人牲a欧美精品| 日韩国产一区久久| 欧美a视频在线观看| 国产精品91一区二区三区| 7777精品伊人久久久大香线蕉完整版| 色婷婷狠狠18| 91久色porny| 91蜜桃视频在线观看| 日韩精品一区二区三区视频在线观看| 午夜免费福利在线观看| 国产精品igao视频| 久久99影视| 能在线观看的av| 91久色porny| 五月天激情四射| 亚洲精品视频中文字幕| 国内激情视频在线观看| 国产美女99p| 亚洲经典在线| 日韩精品视频一区二区| 亚洲国产精品久久人人爱| 久久精品国产综合精品| 精品国产黄a∨片高清在线| 日韩av一区二区三区在线观看| 久久精品免费| 免费观看a级片| 欧美熟乱第一页| 欧美69xxx| 92看片淫黄大片欧美看国产片| 91精品在线观看国产| 杨幂一区二区国产精品| 亚洲在线观看免费视频| 嫩草影院一区二区| 97在线精品国自产拍中文| 久本草在线中文字幕亚洲| 成人在线免费在线观看| 久久精品视频网| 最好看的日本字幕mv视频大全| 中文字幕亚洲图片| 激情不卡一区二区三区视频在线| 女人床在线观看| 99久久精品免费精品国产| 超碰超碰超碰超碰| 国产一区二区三区在线观看网站| 日本国产欧美| 日本三级中文字幕在线观看| 国产成人超碰人人澡人人澡| 91精品国产乱码在线观看| 亚洲视频视频在线| 日韩五码电影| 韩国无码av片在线观看网站| av动漫一区二区| 亚洲视频久久久| 国模私拍一区二区三区| 精品不卡一区| 成人高清在线观看视频| 岛国av午夜精品| 亚洲欧美视频一区二区| 国产不卡一区二区在线观看| 亚洲欧美日本日韩| 黄色录像免费观看| 亚洲精品mp4| 国产精品亲子伦av一区二区三区 | 国产在线高清| 成人h视频在线| 日韩亚洲在线| 99热99这里只有精品| 亚洲精品在线免费播放| 91精品影视| 日本中文字幕在线视频观看 | 欧美成人片在线观看| 亚洲欧美福利视频| 精品国模一区二区三区欧美 | 亚洲欧美色图片| 国产一区二区三区视频在线| 色系列之999| 欧美极品videos大乳护士| 亚洲一区二区三区色| k8久久久一区二区三区 |