Spring Cloud Bus實現自動更新配置

2022-07-15 18:30:15 字數 2219 閱讀 6239

1.配置環境

版本:spring boot版本2.0.3.release,spring cloud版本finchley.sr1,rabbitmq 3.7.7

說明:本文章是在的基礎上完成,

2. 實現原理(如下圖所示)

通過訊息佇列mq傳遞訊息

修改配置,對外暴露/actuator/bus-refresh介面

手動訪問/actuator/bus-refresh重新整理配置;或者在git伺服器(碼雲、github等)上配置webhooks,實現自動呼叫/actuator/bus-refresh介面,從而重新整理配置(推薦)

1. 新增依賴

org.springframework.cloud

spring-cloud-starter-bus-amqp

2. 修改配置

spring:

# rabbitmq配置

rabbitmq:

cache:

channel:

checkout-timeout: 1s

host: 192.168.2.246port: 5672username: admin

password: admin

#暴露/actuator/bus-refresh介面

management:

endpoints:

web:

exposure:

include: "*"

3. 啟動config-server,檢視mq,會多出來乙個佇列

1. 新增依賴

org.springframework.cloud

spring-cloud-starter-bus-amqp

2. 新增rabbitmq配置

spring:

# rabbitmq配置

rabbitmq:

cache:

channel:

checkout-timeout: 1s

host: 192.168.2.246port: 5672username: admin

password: admin

3. 在使用屬性的地方,增加@refreshscope註解,防止重新整理後配置不生效----------但測試發現,不新增@refreshscope註解也能動態重新整理配置

//

@refreshscope

@configuration

@configurationproperties("aliyun")

public

class

ossproperties

1. 啟動client端服務,使用postman請求測試介面

2. 修改git伺服器上的配置

3. 呼叫config server的/actuator/bus-refresh介面

config server控制台日誌:

config client控制台日誌:

rabbitmq管理頁面:

4. 重新請求測試介面,發現在沒重啟的情況下,配置已經改變

Spring Cloud Bus 配置更新

spring cloud bus做配置更新步驟如下 1.提交 觸發post請求給bus refresh 2.server端接收到請求並傳送給spring cloud bus 3.spring cloud bus接到訊息並通知給其它客戶端 4.其它客戶端接收到通知,請求server端獲取最新配置 5....

Spring Cloud Bus訊息匯流排

前面講到spring cloud config把配置檔案放到github上來讀取。通過 refresh介面來更新讀取修改的檔案,從而可以讀取新的值。但是,若所有觸發操作均需要我們手工去維護web hook中的應用位置的話,這隨著系統的不斷擴張,會變的越來越難以維護,而訊息 中介軟體是解決該問題最為合...

SpringCloud Bus學習筆記

在學習springcloud時學習了springcloud bus,一直沒有成功,問題如下。1.0版本的 2.0版本的 我使用的版本為2.0的版本。而我們遇到的問題是 剛開始我用瀏覽器發出的請求 預設為get請求,機緣巧合之下,我說要不用postman試一下,剛好我的postman是預設post的請...