關(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)文章
Nacos下線服務(wù)時,下線報錯選舉Leader失敗問題以及解決
這篇文章主要介紹了Nacos下線服務(wù)時,下線報錯選舉Leader失敗問題以及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07java使用Runtime執(zhí)行系統(tǒng)命令遇到的問題
這篇文章主要介紹了java使用Runtime執(zhí)行系統(tǒng)命令遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Java xml數(shù)據(jù)格式返回實現(xiàn)操作
這篇文章主要介紹了Java xml數(shù)據(jù)格式返回實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08Java HashSet(散列集),HashMap(散列映射)的簡單介紹
這篇文章主要介紹了Java HashSet(散列集),HashMap(散列映射)的簡單介紹,幫助大家更好的理解和學(xué)習(xí)Java集合框架的相關(guān)知識,感興趣的朋友可以了解下2021-01-01