Java Spring Cloud Bus 實現(xiàn)配置實時更新詳解
背景
使用Spring Cloud Config Server,啟動Service時會從配置中心取配置文件,并注入到應(yīng)用中,如果在Service運(yùn)行過程中想更新配置,需要使用Spring Cloud Bus配合實現(xiàn)實時更新。
實現(xiàn)原理
需要借助RabbitMQ等消息中間件來實現(xiàn)服務(wù)間的通訊

ConfigServer改造
目標(biāo):使ConfigServer暴露bus-refresh接口,通過bus通知服務(wù)更新配置
1. pom.xml增加以下依賴
<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>
2. 配置文件中配置暴露接口
management.endpoints.web.exposure.include=bus-refresh
Service改造
1. pom.xml增加以下依賴
<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>
2. 通過@RefreshScope聲明配置刷新時需要重新注入
@RefreshScope
@Controller
public class LblController {
測試
1. 修改git倉庫上的配置文件
Service配置沒有更新
2. 調(diào)用http://localhost:8081/actuator/bus-refresh(POST)
Service配置更新
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
springboot + devtools(熱部署)實例教程
devtools是boot的一個熱部署工具,當(dāng)我們修改了classpath下的文件(包括類文件、屬性文件、頁面等)時,會重新啟動應(yīng)用。本文通過實例給大家介紹springboot+devtools熱部署,感興趣的朋友一起看看吧2017-04-04
Java實現(xiàn)上傳文件圖片到指定服務(wù)器目錄
本文通過實例代碼給大家介紹了java上傳文件圖片到指定服務(wù)器目錄的相關(guān)知識,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06
SpringBoot中OKHttp和壓縮文件的使用實戰(zhàn)教程
本文介紹了如何在SpringBoot中使用OKHttp發(fā)起請求和處理壓縮文件,包括文件的存儲配置、實體類、配置類和初始化類的設(shè)置,以及如何通過主程序和測試類進(jìn)行實際操作,最后提供了必要的依賴添加方法,以確保功能的實現(xiàn)2024-10-10
Java微服務(wù)Filter過濾器集成Sentinel實現(xiàn)網(wǎng)關(guān)限流過程詳解
這篇文章主要介紹了Java微服務(wù)Filter過濾器集成Sentinel實現(xiàn)網(wǎng)關(guān)限流過程,首先Sentinel規(guī)則的存儲默認(rèn)是存儲在內(nèi)存的,應(yīng)用重啟之后規(guī)則會丟失。因此我們通過配置中心Nacos保存規(guī)則,然后通過定時拉取Nacos數(shù)據(jù)來獲取規(guī)則配置,可以做到動態(tài)實時的刷新規(guī)則2023-02-02

