我們?cè)?a style="box-sizing: inherit; font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; border-style: solid; border-width: 0px; background-repeat: no-repeat; text-decoration-line: none; color: rgb(36, 132, 193);">springcloud(七):配置中心svn示例和refresh中講到,如果需要客戶端獲取到最新的配置信息需要執(zhí)行refresh
,我們可以利用webhook的機(jī)制每次提交代碼發(fā)送請(qǐng)求來(lái)刷新客戶端,當(dāng)客戶端越來(lái)越多的時(shí)候,需要每個(gè)客戶端都執(zhí)行一遍,這種方案就不太適合了。使用Spring Cloud Bus可以完美解決這一問(wèn)題。
Spring Cloud Bus
Spring cloud bus通過(guò)輕量消息代理連接各個(gè)分布的節(jié)點(diǎn)。這會(huì)用在廣播狀態(tài)的變化(例如配置變化)或者其他的消息指令。Spring bus的一個(gè)核心思想是通過(guò)分布式的啟動(dòng)器對(duì)spring boot應(yīng)用進(jìn)行擴(kuò)展,也可以用來(lái)建立一個(gè)多個(gè)應(yīng)用之間的通信頻道。目前唯一實(shí)現(xiàn)的方式是用AMQP消息代理作為通道,同樣特性的設(shè)置(有些取決于通道的設(shè)置)在更多通道的文檔中。
Spring cloud bus被國(guó)內(nèi)很多都翻譯為消息總線,也挺形象的。大家可以將它理解為管理和傳播所有分布式項(xiàng)目中的消息既可,其實(shí)本質(zhì)是利用了MQ的廣播機(jī)制在分布式的系統(tǒng)中傳播消息,目前常用的有Kafka和RabbitMQ。利用bus的機(jī)制可以做很多的事情,其中配置中心客戶端刷新就是典型的應(yīng)用場(chǎng)景之一,我們用一張圖來(lái)描述bus在配置中心使用的機(jī)制。