關(guān)于SpringCloud的Bus消息總線圖文詳解
分布式自動刷新配置功能
Spring Cloud Bus 配合 Spring Cloud Config 使用可以實現(xiàn)配置的動態(tài)刷新。

Spring Cloud Bus是用來將分布式系統(tǒng)的節(jié)點與輕量級消息系統(tǒng)鏈接起來的框架,它整合了Java的事件處理機制和消息中間件的功能。
Spring Clud Bus目前支持RabbitMQ和Kafka。
Spring Cloud Bus能管理和傳播分布式系統(tǒng)間的消息,就像一個分布式執(zhí)行器,可用于廣播狀態(tài)更改、事件推送等,也可以當作微服務(wù)間的通信通道。

什么是總線
在微服務(wù)架構(gòu)的系統(tǒng)中,通常會使用輕量級的消息代理來構(gòu)建一個共用的消息主題,并讓系統(tǒng)中所有微服務(wù)實例都連接上來。由于該主題中產(chǎn)生的消息會被所有實例監(jiān)聽和消費,所以稱它為消息總線。在總線上的各個實例,都可以方便地廣播一些需要讓其他連接在該主題上的實例都知道的消息。
基本原理
ConfigClient實例都監(jiān)聽MQ中同一個topic(默認是springCloudBus)。當一個服務(wù)刷新數(shù)據(jù)的時候,它會把這個信息放入到Topic中,這樣其它監(jiān)聽同一Topic的服務(wù)就能得到通知,然后去更新自身的配置。
架構(gòu)設(shè)計思想:
- 1)利用消息總線觸發(fā)一個客戶端/bus/refresh,而刷新所有客戶端的配置

- 2)利用消息總線觸發(fā)一個服務(wù)端ConfigServer的/bus/refresh端點,而刷新所有客戶端的配置

圖二的架構(gòu)顯然更加適合,圖一不適合的原因如下:
1.打破了微服務(wù)的職責單一性,因為微服務(wù)本身是業(yè)務(wù)模塊,它本不應(yīng)該承擔配置刷新的職責。
2.破壞了微服務(wù)各節(jié)點的對等性。
3.有一定的局限性。例如,微服務(wù)在遷移時,它的網(wǎng)絡(luò)地址常常會發(fā)生變化,此時如果想要做到自動刷新,那就會增加更多的修改
到此這篇關(guān)于關(guān)于SpringCloud的Bus消息總線圖文詳解的文章就介紹到這了,更多相關(guān)SpringCloud的Bus消息總線內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java?C++算法題解leetcode801使序列遞增的最小交換次數(shù)
這篇文章主要為大家介紹了Java?C++題解leetcode801使序列遞增的最小交換次數(shù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
關(guān)于MyBatis 查詢數(shù)據(jù)時屬性中多對一的問題(多條數(shù)據(jù)對應(yīng)一條數(shù)據(jù))
這篇文章主要介紹了MyBatis 查詢數(shù)據(jù)時屬性中多對一的問題(多條數(shù)據(jù)對應(yīng)一條數(shù)據(jù)),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
Java中出現(xiàn)InterruptedException異常的原因及解決方案
在Java多線程編程中,InterruptedException是一個常見但又容易被忽視的異常,它通常出現(xiàn)在線程被外部中斷時,例如調(diào)用Thread.interrupt() 或線程池關(guān)閉時,本文將通過一個實際的日志案例,分析InterruptedException 的產(chǎn)生原因、影響,需要的朋友可以參考下2025-06-06
SpringBoot調(diào)用對方webService接口的幾種方法示例
平常我們開發(fā)調(diào)用接口一般會用到幾種數(shù)據(jù)格式,比如有restful的,這個是目前最流行的,也是最簡單開發(fā)的,還有一種就是webservice數(shù)據(jù)格式,本文給大家介紹了幾種SpringBoot調(diào)用對方webService接口的方法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2023-11-11

