SpringCloudBus實現配置檔案動態更新

2022-08-23 11:27:12 字數 2832 閱讀 3434

在springcloud之配置中心(config)的使用

的基礎上加上springcloudbus實現配置檔案動態更新

在此之前需要修改版本,否則會出現「endpoint id 'bus-env' contains invalid characters, please migrate to a valid format.」錯誤導致服務啟動失敗

springboot版本:

2.0.6.release
springcloud版本:

finchley.sr2
由於使用bus中需要使用訊息中介軟體來支援更新通知並且它支援rabbitmq和kfaka,所以還需要啟動其中之一,本文使用rabbitmq,安裝使用可參考rabbitmq的安裝(linux版)

和rabbitmq的安裝與基本使用(windows版)

<

dependency

>

<

groupid

>org.springframework.cloud

groupid

>

<

artifactid

>spring-cloud-starter-bus-amqp

artifactid

>

dependency

>

<

dependency

>

<

groupid

>org.springframework.boot

groupid

>

<

artifactid

>spring-boot-starter-actuator

artifactid

>

dependency

>

server.port=8050

# 註冊到服務註冊中心

# github的倉庫位址

spring.cloud.config.server.git.uri=

# github的檔案路徑

spring.cloud.config.server.git.searchpaths=repo

# github的分支,預設是master

spring.cloud.config.label=master

# 使用bus匯流排重新整理配置檔案

management.endpoints.web.exposure.include=bus-refresh //指定重新整理位址

spring.cloud.bus.trace.enabled=true

# 使用rabbitmq傳遞訊息

spring.rabbitmq.host=192.168.184.130

spring.rabbitmq.port=5672

spring.rabbitmq.username=test //可以自己在rabbitmq的web管理頁面新增使用者,不新增則可以使用預設賬號guest

spring.rabbitmq.password=123456

spring.rabbitmq.virtual-host=/vhost_test //不指定預設為/

<

dependency

>

<

groupid

>org.springframework.cloud

groupid

>

<

artifactid

>spring-cloud-starter-bus-amqp

artifactid

>

dependency

>

在使用遠端配置檔案資料的地方加上@refreshscope註解測試使用

@restcontroller

@refreshscope

public

class

configclientcontroller ")

string name;

@value("$")

string age;

public

string hi()

}

當git上的引數值修改後,需要利用訊息匯流排觸發乙個服務端configserver的/bus/refresh端點,而重新整理所有客戶端的配置,所以傳送請求http://localhost:8050/actuator/bus-refresh手動重新整理配置中心,這樣就會通知所有的微服務進行修改校正從而達到不用自己手動重啟微服務重新讀取配置的目的,但是要注意的是這個請求必須是post請求,這裡推薦使用postman除錯介面工具

修改後配置服務端和客戶端日誌:

其目的就是原先是無差別通知,如果想要定點通知某個微服務,那麼就傳送請求http://localhost:8050/actuator/bus-refresh/,至於這個destination,則由微服務的服務名+埠號組成,比如http://localhost:8050/actuator/bus-refresh/

config-client:9006

則表示只通知config-client這個微服務進行配置修改

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