天天看點

攜程Apollo(阿波羅)配置中心的Java樣例用戶端啟動和調試

參考:https://github.com/ctripcorp/apollo/wiki/Apollo%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97#23-java%E6%A0%B7%E4%BE%8B%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%90%AF%E5%8A%A8

前提先搭建好本地單機環境:http://www.cnblogs.com/EasonJim/p/7643630.html

解壓導入Eclipse:

攜程Apollo(阿波羅)配置中心的Java樣例用戶端啟動和調試

主要使用的是apollo-demo

在配置中心背景建立好App和配置檔案項

攜程Apollo(阿波羅)配置中心的Java樣例用戶端啟動和調試

注意:兩個配置檔案的名稱中,第一個是建立App時預設的,主要把項填入即可。而第二個是選擇添加Namespace時,指定私有模式才能輸入自定義名稱。

回到apollo-demo項目上,指定Class運作,增加如下的VM啟動參數:

攜程Apollo(阿波羅)配置中心的Java樣例用戶端啟動和調試
攜程Apollo(阿波羅)配置中心的Java樣例用戶端啟動和調試

并配置剛才設定的AppID:

攜程Apollo(阿波羅)配置中心的Java樣例用戶端啟動和調試

啟動後可以看見如下的資訊已經通過遠端啟動起來:

攜程Apollo(阿波羅)配置中心的Java樣例用戶端啟動和調試

對于為什麼需要傳遞兩個VM參數,原因如下:

1、第一個參數用于指定環境,env先通過/opt/settings/server.propertis指定的去讀取,如果沒有就直接讀取系統屬性-D提供的,如果都沒有,那麼你挂定了。

2、由于使用的是整套代碼引入的Demo項目,是以在app-core中對于meta_server的位址采用了變量去讀取,而這個變量提供的方式時系統屬性-D去提供。在這裡:

攜程Apollo(阿波羅)配置中心的Java樣例用戶端啟動和調試

而如果是使用自己打包上傳到倉庫的Client時,這個Client最終會包含Core,這些位址已經自動指定了,是以不需要系統屬性。

當然,上面所截圖隻是會在打包的時候修改這裡的變量,而真正去讀取的部分在代碼上,如果同時指定了系統屬性的,那麼優先級是系統屬性最高。