Spring Cloud消息隊列與消息匯流排更新Config
Docker
Spring Cloud Bus
RabbitMQ
《Spring Cloud分散式配置中心Config》
《CentOS7安裝Docker與RabbitMQ鏡像》
在這兩篇文章里,提出了當獲取配置的客戶端很多時,如何自動刷新的問題,Spring Cloud給出的方案就是消息匯流排。下面一步步來。
消息隊列
新建一個消息隊列工程,依賴如下:
依賴
代碼結構:
代碼結構
配置:
配置
代碼:
RabbitMQ配置類
消息發送類
消息接收類
按道理消息的發送、接收應該是兩個工程,在這裡為了簡單放在一個工程里。
Controller類
結果:
通過URL發送消息
發送
後台日誌
日誌
消息匯流排自動更新配置
之前搞Docker、RabbitMQ的鏡像,主要是為了能給連接Spring Cloud Config的客戶端自動刷新配置用的,就是希望對一個客戶端進行刷新操作之後,通過消息匯流排通知其他客戶端也執行刷新操作。現在對客戶端User Service工程做更改。
選擇的版本應該是1.5.6!切記,根據我查的資料看,好像1.5.2之前的版本是沒法自動更新其他客戶端的。而我一開始用2.0.0,也是不行!折騰了我很久很久!!開源世界不靠譜的地方啊~~~唉!
增加依賴:
pom.xml
增加配置:
application.yml
跟前一節一樣,增加RabbitMQ的配置即可。
結果:
啟動Eureka註冊中心、Spring Cloud Config服務端、User Service兩個,埠分別是2221、2222,讀取的配置如下:
1
2
修改一下配置文件,POST執行http://127.0.0.1:2221/bus/refresh (2.0版本的話鏈接是application/bus/refresh,當然了,沒啥用,更新不了其他客戶端)
兩個配置都變了:
1
2
至此功能就實現了,大家搜資料的時候肯定有說,這種刷新的操作最好還是放在Config服務端,這個也簡單,就是把剛才對User Service做的修改在Config服務端那也做一遍,以後執行bus/refresh就執行Config服務端的就可以了。
另外還有指定刷新的操作,資料上很多,這裡就不贅述了。
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※CentOS7安裝Docker與RabbitMQ鏡像
※虛擬機VBox安裝CentOS7及網路問題的解決
※Spring Boot單元測試(Mock)
※Spring Boot自己實現簡版OAuth2.0
※Spring Cloud服務追蹤與日誌聚合
TAG:Java個人學習心得 |
※Android 消息機制—ThreadLocal
※Justin Bieber 與 Hailey Baldwin 訂婚消息釋出
※NBA 交易消息 ? Paul George 親自宣布將續留 Oklahoma City Thunder
※劇透!《Avengers: Infinity War》導演揭露更多角色「生死消息」
※NBA 交易消息 ? Chris Paul 正在招募 Carmelo Anthony 加入 Rockets?
※springboot websocket後台主動推送消息
※NBA 交易消息 ? Tyronn Lue 將與 Luke Walton 會面談論 LeBron James
※好消息:Windows 10 ARM將支持Ubuntu Linux
※Wings 主題再臨!Air Jordan 5 新品消息曝光
※雅虎開始在iOS和Android上測試Squirrel消息應用程序
※疑似 Virgil Abloh x Nike Air Max 97 全新聯乘消息曝光
※來自以色列的好消息!Good News from Israel#851
※NBA 交易消息 ? Bleacher Report 公布「湖人球星排行」中 LeBron 超越 Kobe
※NBA 交易消息 ? 多隊表示高度興趣!Carmelo Anthony 確認將離開 Thunder
※繼Louis Vuitton聯名神作之後,Supreme x D&G又爆合作消息!
※Intel雙核10nm Cannolake再曝新消息
※NBA 交易消息 ? LeBron James 的「King of LA」塗鴉遭到惡意破壞
※好消息,iPhone 6 Plus有望保修期內置換iPhone 6s Plus
※adidas Originals YEEZY 500 全新「Salt」配色更多消息曝光
※Tom Sachs x NikeCraft Mars Yard 2.0 童鞋版本發售消息曝光