1. 配置信息保存在程序代碼中
這種方案簡單,但每次修改配置都要從新編譯、部署應用程序。顯然這種方案很不方便,也不可靠,更沒法作到修改的實時生效。web
2. 配置信息保存在xml文件或者屬性文件中
在參數信息保存在xml或者屬性文件中,當須要修改參數時,直接修改 xml 文件。這樣無需從新編譯,只需從新部署修改的文件便可。但而後對全部的應用進行從新部署。這樣作的缺點顯而易見,要往上百臺機器上從新部署應用,簡直是一個噩夢。同時該方案還有一個缺點,就是配置修改沒法作到實時生效。修改後每每過一段時間才能生效。數據庫
3. 配置信息保存在數據庫中
當須要修改參數時,直接修改數據庫,而後重啓分佈式應用程序,或者刷新分佈式應用的緩存。儘管這種作法比以上兩種方案簡單,但卻面臨着單點失效問題。若是數據庫服務器停機,則分佈式應用程序的配置信息將沒法更新。另外這種方案的配置修改生效實時性雖然比第二種方案好些,但仍然不能達到某些狀況下的要求。緩存
若是使用ZooKeeper來實現,就能夠直接把配置信息保存到ZooKeeper中,當配置內容發生變化時,就通知監聽者如應用程序去從新讀取配置文件。服務器