之前一直采用properties文件管理配置信息,若是集群則每個機器上都要拷貝一份,每次修改也需要依次修改。一直在尋找統一修改,實時生效,方便修改,分環境分系統的配置管理,自己也在整理設計,若找不到合意的就准備自己寫一個,可以根據自己需求慢慢改進。通過開源中國微博知道了360的配置管理,看了下沒大搞明白,貌似管理不太方便,反正不是我想要的,后來知道了百度的disconf,淘寶也有一個配置管理。我先看了百度的disconf,這就是我想要的,所以沒看淘寶那個配置管理。
首先這是一個開源項目,托管在github上,地址: https://github.com/knightliao/disconf,官方的文檔還是很豐富的,地址:https://github.com/knightliao/disconf/wiki 。建議先看官方文檔,文檔很實用,花不了多少時間,我這里僅就官方沒說,但剛接觸這個的人常見的部分問題說說自己的解決方案,下面是一張運行效果圖。
要看這個項目,需要的知識:java相關技術、前端、git、mysql、tomcat、redis、zookeper、nginx,后面幾個簡單度一下就能了解個大概。
- 安裝git客戶端、下載代碼、導入eclipse、運行redis、zookeper、mysql就不說了。
- windows上運行sh腳本小知識。
一看項目內容就知道,這應該只考慮了Linux環境開發,只提供了sh腳本,而很多人都是windows開發環境。其實安裝git客戶端后,windows下是可以運行sh腳本的。如下圖就是git下的sh軟件和運行效果,需要先按官方教程配置環境變量,我換系統了所以沒配置,之前配置過。 - 能不安裝nginx嗎?
這是我剛開始在官方討論群提的問題,得到的答案是不能,提到了什么動靜分離,於是百度了解了下,對nginx在這里扮演的角色有了一個了解,知道他做了什么,才能知道他是否必須。了解了之后,就會知道,這里應該有多中方式實現不安裝nginx,我實現了一種如下圖所示,其他方式可以百度springMVC關於靜態文件的處理方式,第一張截圖就是我在eclipse中用tomcat運行的結果。這個能方便開發,正式環境建議還是按官方設計的方式使用,nginx對靜態文件的處理要比tomcat快不少。 - 看交流群討論,記錄如下幾點,可以研究下,看怎么修改能解決問題,然后推送官方,也貢獻自己的一份力。
1) 貌似使用spring4時有問題。
2) 有人建議添加配置優先級,先讀取環境變量,再各種配置文件,都沒有時提供默認配置。
由於官方文檔比較詳細,這里基本沒有提到disconf本身的用途,使用方式。建議到處問人前先仔細看看官方教程。