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...