關(guān)于SpringCloud的Bus消息總線圖文詳解
分布式自動(dòng)刷新配置功能
Spring Cloud Bus 配合 Spring Cloud Config 使用可以實(shí)現(xiàn)配置的動(dòng)態(tài)刷新。
Spring Cloud Bus是用來(lái)將分布式系統(tǒng)的節(jié)點(diǎn)與輕量級(jí)消息系統(tǒng)鏈接起來(lái)的框架,它整合了Java的事件處理機(jī)制和消息中間件的功能。
Spring Clud Bus目前支持RabbitMQ和Kafka。
Spring Cloud Bus能管理和傳播分布式系統(tǒng)間的消息,就像一個(gè)分布式執(zhí)行器,可用于廣播狀態(tài)更改、事件推送等,也可以當(dāng)作微服務(wù)間的通信通道。
什么是總線
在微服務(wù)架構(gòu)的系統(tǒng)中,通常會(huì)使用輕量級(jí)的消息代理來(lái)構(gòu)建一個(gè)共用的消息主題,并讓系統(tǒng)中所有微服務(wù)實(shí)例都連接上來(lái)。由于該主題中產(chǎn)生的消息會(huì)被所有實(shí)例監(jiān)聽和消費(fèi),所以稱它為消息總線。在總線上的各個(gè)實(shí)例,都可以方便地廣播一些需要讓其他連接在該主題上的實(shí)例都知道的消息。
基本原理
ConfigClient實(shí)例都監(jiān)聽MQ中同一個(gè)topic(默認(rèn)是springCloudBus)。當(dāng)一個(gè)服務(wù)刷新數(shù)據(jù)的時(shí)候,它會(huì)把這個(gè)信息放入到Topic中,這樣其它監(jiān)聽同一Topic的服務(wù)就能得到通知,然后去更新自身的配置。
架構(gòu)設(shè)計(jì)思想:
- 1)利用消息總線觸發(fā)一個(gè)客戶端/bus/refresh,而刷新所有客戶端的配置
- 2)利用消息總線觸發(fā)一個(gè)服務(wù)端ConfigServer的/bus/refresh端點(diǎn),而刷新所有客戶端的配置
圖二的架構(gòu)顯然更加適合,圖一不適合的原因如下:
1.打破了微服務(wù)的職責(zé)單一性,因?yàn)槲⒎?wù)本身是業(yè)務(wù)模塊,它本不應(yīng)該承擔(dān)配置刷新的職責(zé)。
2.破壞了微服務(wù)各節(jié)點(diǎn)的對(duì)等性。
3.有一定的局限性。例如,微服務(wù)在遷移時(shí),它的網(wǎng)絡(luò)地址常常會(huì)發(fā)生變化,此時(shí)如果想要做到自動(dòng)刷新,那就會(huì)增加更多的修改
到此這篇關(guān)于關(guān)于SpringCloud的Bus消息總線圖文詳解的文章就介紹到這了,更多相關(guān)SpringCloud的Bus消息總線內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nacos下線服務(wù)時(shí),下線報(bào)錯(cuò)選舉Leader失敗問(wèn)題以及解決
這篇文章主要介紹了Nacos下線服務(wù)時(shí),下線報(bào)錯(cuò)選舉Leader失敗問(wèn)題以及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07淺析從同步原語(yǔ)看非阻塞同步以及Java中的應(yīng)用
非阻塞同步是基于沖突檢測(cè)的樂(lè)觀并發(fā)策略,這種樂(lè)觀的并發(fā)策略使得很多線程不需要因?yàn)楦?jìng)爭(zhēng)失敗直接掛起,這種同步措施稱為非阻塞同步。下面我們就從硬件原語(yǔ)開始了解非阻塞同步,并看一看在Java中非阻塞同步的一些應(yīng)用2021-06-06java使用Runtime執(zhí)行系統(tǒng)命令遇到的問(wèn)題
這篇文章主要介紹了java使用Runtime執(zhí)行系統(tǒng)命令遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java xml數(shù)據(jù)格式返回實(shí)現(xiàn)操作
這篇文章主要介紹了Java xml數(shù)據(jù)格式返回實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08Java HashSet(散列集),HashMap(散列映射)的簡(jiǎn)單介紹
這篇文章主要介紹了Java HashSet(散列集),HashMap(散列映射)的簡(jiǎn)單介紹,幫助大家更好的理解和學(xué)習(xí)Java集合框架的相關(guān)知識(shí),感興趣的朋友可以了解下2021-01-01SpringBoot多模塊項(xiàng)目框架搭建過(guò)程解析
這篇文章主要介紹了SpringBoot多模塊項(xiàng)目框架搭建過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01