程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Spring Cloud 統一配置

Spring Cloud 統一配置

編輯:JAVA綜合教程

Spring Cloud 統一配置


本文使用 Spring Cloud 進行集中式配置管理,將以往的配置文件從項目中摘除後放到git 或svn中集中管理,並在需要變更的時候,可以通知到各應用程序,應用程序刷新配置不需要重啟。

先套用下面這張圖來看一下我們需要做的事情:
這裡寫圖片描述

Git Repository 為存放配置的地方,當然你也可以選擇SVN。

接著我們創建多模塊Maven工程,包括 sample-cloud-all 、 sample-cloud-configserver 、 sample-cloud-client ,整體結構如下圖:
這裡寫圖片描述

其中config-repo 為配置文件存放位置,並非一個Maven工程,只是為了便於本地修改和提交。
整體源碼地址在Github上,所以本文就不貼代碼了

至此,config-server 和 config-client 已經完成了,並且可以正常使用了。

再說一下基本原理:
git 上存放我們的遠程配置文件
config-server 連接到 git
config-client 連接到config-server
當我們啟動config-client 服務的時候,client 會通過連接的 config-server 拿到遠程git 上面的配置文件,然後通過 Spring 加載到對象中。<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxociAvPg0KPHA+xMfDtKOstbHO0sPH0N64xMHLIGdpdCDJz7XE1LazzMXk1sPOxLz+uvOjrMjnus7U2rK71tjG9CBjb25maWctY2xpZW50ILf+zvG1xMfpv/bPwsjDz+7Ev9bQ0v3Tw7XExeTWw9DFz6K4/NDCxNijvzxiciAvPg0KytfPyKOsztLDx9TaIGNvbmZpZy1jbGllbnQguaSzzNbQzO2809LAwLWjujwvcD4NCjxwcmUgY2xhc3M9"brush:java;"> org.springframework.boot spring-boot-starter-actuator true

然後在需要自動更新配置變量的Java類上,使用注解 @RefreshScope 修飾。

以後當我們再更新git上面的配置文件後,在 config-client 端執行POST 請求 http://localhost:8080/refresh 就可以更新刷新配置變量到內存中了。


如果我們 config-client 做的是分布式部署,豈不是要每一個機器都POST一下 /refresh 請求,這樣顯然不是最好的方法。
Spring Cloud Bus 為我們解決了這樣的問題。

先看一下下面這張套用的圖:
這裡寫圖片描述組件做為代理才可以使用。

經過對Spring Cloud 的統一配置管理的了解和測試,本人發現這個做的並不好,特別是在分布式部署上雖然完全可以支持,但是總感覺使用起來比較麻煩。

個人還是推薦大家使用百度開源的 Disconf 進行集中化配置管理。而且這個目前也比較成熟,很多商用項目已經在使用。

目前 Spring Cloud 還並不成熟,所以大家慢慢學習和研究,博主也期待 Spring Cloud 真正強大的一天早一天到來。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved