SpringCloud之訊息匯流排

2021-10-13 22:57:16 字數 2258 閱讀 7340

spring cloud bus通過輕量訊息**連線各個分布的節點。這會用在廣播狀態的變化(例如配置變化)或者其他的訊息指令。spring bus的乙個核心思想是通過分布式的啟動器對spring boot應用進行擴充套件,也可以用來建立乙個多個應用之間的通訊頻道。目前唯一實現的方式是用amqp訊息**作為通道,同樣特性的設定(有些取決於通道的設定)在更多通道的文件中。

根據此圖我們可以看出利用spring cloud bus做配置更新的步驟:

1、提交**觸發post給客戶端a傳送/actuator/bus-refresh

2、客戶端a接收到請求從server端更新配置並且傳送給spring cloud bus

3、spring cloud bus接到訊息並通知給其它客戶端

4、其它客戶端接收到通知,請求server端獲取最新配置

5、全部客戶端均獲取到最新的配置

修改bootstrap.yml新增連線rabbitmq的配置
server:

port: 8807 # 服務埠號

spring:

name: lovinconfigclient # 服務名稱

security:

basic:

enabled: true

user:

name: lovin

password: $

#eureka:

# client:

# serviceurl:

# defaultzone: http://lovin:lovin@localhost:8881/eureka/ # 註冊到的eureka服務位址

# 伍、啟動測試

- 1.首先依次啟動lovin-eureka-server、lovin-econfig-server、lovin-econfig-client

- 2.檢視lovin-econfig-server查詢配置

![檢視lovin-econfig-server查詢配置](

- 3.檢視lovin-econfig-client查詢配置

![檢視lovin-econfig-client查詢配置](

- 4.修改配置,並提交見token的值由lovin改為lovinupdate

![修改token](

- 5.再次檢視lovin-econfig-server查詢配置

![再次查詢服務端](

- 6.再次檢視lovin-econfig-client查詢配置

![再次查詢客戶端](

- 7.重新整理訊息匯流排

由於api變更,url由老版本的/bus/refresh變為actuator/bus-refresh

![屬性訊息匯流排](

- 8.再次檢視lovin-econfig-client查詢配置

![再次檢視客戶端配置](

我們可以看到已經重新整理成功,至此訊息匯流排配置已經完成

# 陸、區域性重新整理

某些場景下(例如灰度發布),我們可能只想重新整理部分微服務的配置,此時可通過/actuator/bus-refresh端點的destination引數來定位要重新整理的應用程式。

- 例如:/actuator/bus-refresh?destination=customers:**,這樣就可以觸發customers微服務所有例項的配置重新整理。

---* [最後的最後是本部落格的原始碼,歡迎關注這一套springcloud的實踐](

SpringCloud教程八 Bus(訊息匯流排)

一 概述 configclient 微服務 從configserver端獲取自己對應的配置檔案,但是目前的問題是 當遠端git倉庫配置檔案發生改變時,每次都是需要重啟configcient 微服務 如果有上百上千個微服務呢?我想我們不會乙個個去重啟每個微服務,也就是說如何讓configserver端...

SpringCloud 之Bus訊息匯流排

流程總結 架構優化 之前使用actuator監控中心完成重新整理功能,但是在config client服務端需要傳送post請求來手動重新整理,如果config client有很多的話,那麼需要乙個乙個地傳送post請求,這顯然是不現實的做法。使用訊息佇列中的topic,通過訊息實現通知。目前spr...

SpringCloud 訊息驅動

spring cloud stream由乙個中介軟體中立的核組成。應用通過spring cloud stream插入的input 相當於 消費者consumer,它是從佇列中接收訊息的 和output 相當於生產者producer,它是從佇列中傳送消 息的。通道與外界交流。通道通過指定中介軟體的bi...