微信公衆号:bugstack蟲洞棧 沉澱、分享、成長,專注于原創專題案例,以最易學習程式設計的方式分享知識,讓自己和他人都能有所收獲。目前已完成的專題有;Netty4.x實戰專題案例、用Java實作JVM、基于JavaAgent的全鍊路監控、手寫RPC架構、架構設計專題案例[Ing]等。
在實際開發中經常會有一個叫做配置中心的服務,這個服務經過變更參數來動态重新整理線上業務資料行為配置。比如;行為開關、活動資料、黑白名單、本地/預發/線上環境切換等等,這些配置資訊往往需要在我們不重新開機系統的時候就可以被更新執行。那麼我們一般會使用具備此類屬性在分布式系統中适合的元件進行開發配置中心,像是zookeeper、redis釋出訂閱、或者http定時輪許拉取,他們都可以做成統一配置中心服務。而在Spring Cloud Config 中,預設采用 Git 來存儲配置資訊,是以使用 Spring Cloud Config 建構的配置伺服器,天然就支援對微服務應用配置資訊的版本管理,在加上Github的Webhook鈎子服務,可以在我們push等行為操作的時候,自動執行我們的http行為,以達到自動重新整理配置服務。
jdk 1.8、idea2018、Maven3
Spring Boot 2.0.6.RELEASE
Spring Cloud Finchley.SR2
需要有一個Git帳号,用來建立配置中心以及開啟Webhooks服務,添加回調
通過在個人Git建立配置服務工程,開啟Webhooks服務添加回調鈎子http://xxx:port/actuator/refresh在更新配置後自動重新整理服務配置内容,如圖;
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-9dT8z67X-1573801291240)(https://bugstack.cn/assets/images/pic-content/2019/11/springcloud-6-1.png)]
完整代碼歡迎關注公衆号:bugstack蟲洞棧 回複“SpringCloud專題”進行下載下傳
web/ConfigClientController.java & 添加注解@RefreshScope自動重新整理配置
ConfigClientApplication.java & 普通配置即可
application.yml & 需要配置endpoints,這樣才可以暴漏重新整理服務
bootstrap.yml & 配置中心服務配置,http://localhost:7397
ConfigServerApplication.java & 添加注解@EnableConfigServer設定成配置服務中心
application.yml &
準備好自己Github的配置倉庫,也可以克隆我的Git;https://github.com/fuzhengwei/itstack-demo-config {有一組配置配置檔案}
配置Webhooks,在https://github.com/換你自己的fuzhengwei/換你自己的itstack-demo-netty/settings/hooks/new
分别啟動服務
itstack-demo-springcloud-config-server 配置Server
itstack-demo-springcloud-config-client 配置Client
通路配置服務,端口7397;http://localhost:7397/config-client/dev
通路結果
通路規則{配置檔案會被轉換成 Web 接口,規則如下}
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
通路配置檔案;http://localhost:8080/config-client-dev.yml {可以直接通路檢視配置資訊}
通路使用配置的用戶端,端口9001;http://localhost:9001/config {可以送出配置代碼反複重新整理測試}
Spring Cloud Config 可以很友善的依賴于Github提供的回調鈎子進行更新配置,同時也支援本地配置
Webhooks 不止可以用于變更配置,還可以用于一起啟動觸發工程打包部署釋出的行為
不要局限于知識點,往往每一個新知識所帶來的架構設計更值得學習,這些都可以靈活的用于項目系統中
