歡迎來到菜鳥SpringCloud實戰入門系列(SpringCloudForNoob),該系列經過層層遞進的實戰視角,來一步步學習和理解SpringCloud。html
本系列適合有必定Java以及SpringBoot基礎的同窗閱讀。node
每篇文章末尾都附有本文對應的Github源代碼,方便同窗調試。git
Github倉庫地址:github
你能夠經過如下兩種途徑查看菜鳥SpringCloud實戰入門系列:spring
前文回顧:後端
前文提到,若是須要客戶端獲取到最新的配置信息須要執行refresh,咱們能夠利用webhook的機制每次提交代碼發送請求來刷新客戶端,當客戶端愈來愈多的時候,須要每一個客戶端都執行一遍,這種方案就不太適合了。使用Spring Cloud Bus能夠完美解決這一問題。安全
Spring bus的一個核心思想是經過分佈式的啓動器對spring boot應用進行擴展,也能夠用來創建一個多個應用之間的通訊頻道。目前惟一實現的方式是用AMQP消息代理做爲通道,一樣特性的設置(有些取決於通道的設置)在更多通道的文檔中。其實本質是利用了MQ的廣播機制在分佈式的系統中傳播消息,目前經常使用的有Kafka和RabbitMQ。springboot
如下是本文即將實現的架構:bash
更新客戶端配置文件整個流程是:
請參考個人文章:
config-server模塊在上一章有介紹
添加依賴:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-kafka</artifactId>
</dependency>
複製代碼
修改配置文件,添加kafka配置:
springboot2中只須要這一句,不足要zk-node等設置啦。
# kafka
stream:
kafka:
binder:
brokers: localhost:9092
bus:
trace:
enabled: true
複製代碼
完整配置文件以下:
server:
port: 8769
spring:
application:
name: spring-cloud-config-server
cloud:
config:
server:
git:
uri: https://xxxxxxxxxxxx.git # 配置git倉庫的地址
search-paths: config-repo # git倉庫地址下的相對地址,能夠配置多個,用,分割。
username: xxxxxxxx # git倉庫的帳號
password: xxxxxxx # git倉庫的密碼
# kafka
stream:
kafka:
binder:
brokers: localhost:9092
bus:
trace:
enabled: true
# 客戶端調用須要
management:
endpoints:
web:
exposure:
include: "*"
# 在服務中心註冊
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
複製代碼
服務端設置好了總線,客戶端固然也要和總線鏈接
依賴和配置文件的修改,與config-server如出一轍,照着上面修改就能夠了。
分別運行eureka,config-server和config-client模塊,這裏咱們開啓兩個config-client模塊,分別對應端口8771,8772.
啓動後的進程結構以下:
能夠看到eureka裏註冊了服務端和兩個客戶端:
咱們直接訪問config-server,查看服務端如今的配置文件:
http://localhost:8769/spring-cloud-config-dev.properties
接下來,將配置文件修改一下,加點字符。
隨後push到遠程服務器。
而後訪問 http://localhost:8769/spring-cloud-config-dev.properties :
發現已經服務端更新了。
這時候,咱們須要作更新,發送POST請求:
curl -X POST http://localhost:8769/actuator/bus-refresh
複製代碼
這是springboot2的請求,和老的請求格式不一樣,能夠從進程啓動時候的mapping日誌中看出。
這時候請求 :
更新成功!
你還能夠經過trace來跟蹤總線事件:
一些場景下,咱們可能但願知道Spring Cloud Bus事件傳播的細節。此時,咱們能夠跟蹤總線事件(RemoteApplicationEvent的子類都是總線事件)。
http://localhost:8769/actuator/httptrace
複製代碼
www.ityouknow.com/springcloud…
菜鳥SpringCloud實戰入門專欄全導航:經過如下兩種途徑查看
我是蠻三刀把刀,後端開發。主要關注後端開發,數據安全,爬蟲等方向。
來微信和我聊聊:yangzd1102
若是文章對你有幫助,不妨收藏起來並轉發給您的朋友們~