Apollo配置中心-Api方式與Java方式測試
阿新 • • 發佈:2018-07-13
ons 通過 ins src 標識 client ppi 自己 clu [toc]
這個部分來演示
- 創建一個項目並添加測試的key值:timeout=8000 ,batch=9000
- 通過提供一個token的方式,利用api獲取配置信息
- 創建一個spring boot項目,引入apollo架包,讀取配置
- 通過變跟配置文件,看java項目是不是實時更新配置
創建Apollo項目
- 點擊添加項目
- 輸入項目信息,註意應用ID後面也是應用讀取的唯一標識
-
選擇DEV環境,新增配置, 我這裏有測試過,所以dev環境多了個gzywtest-c1集群,默認情況下,點擊環境都是選擇default配置
- 點擊發布,這樣dev環境的配置信息就生效了,接下來來生成一個token測試
利用Apollo Api測試接口
- 點擊管理員工具-開發平臺授權管理
- 輸入必要的信息,點擊創建,生成token
- 獲取集群下所有Namespace信息接口
···
curl -H ‘Authorization:ab5a901872858535afb48f4da1f7c1c5be522de5‘ \
-H ‘Content-Type:application/json;charset=UTF-8‘ \
http://192.168.1.1:8080/openapi/v1/envs/dev/apps/900001/clusters/default/namespaces/application
···
返回結果如下{ "appId": "900001", "clusterName": "default", "namespaceName": "application", "comment": "default app namespace", "format": "properties", "isPublic": false, "items": [{ "key": "redis_host", "value": "127.0.0.1", "dataChangeCreatedBy": "apollo", "dataChangeLastModifiedBy": "apollo", "dataChangeCreatedTime": "2018-07-04T16:55:54.000+0800", "dataChangeLastModifiedTime": "2018-07-04T16:55:54.000+0800" }, { "key": "timeout", "value": "8000", "comment": "", "dataChangeCreatedBy": "apollo", "dataChangeLastModifiedBy": "apollo", "dataChangeCreatedTime": "2018-07-09T11:07:24.000+0800", "dataChangeLastModifiedTime": "2018-07-09T11:13:36.000+0800" }, { "key": "batch", "value": "9000", "comment": "", "dataChangeCreatedBy": "apollo", "dataChangeLastModifiedBy": "apollo", "dataChangeCreatedTime": "2018-07-09T11:20:02.000+0800", "dataChangeLastModifiedTime": "2018-07-09T15:38:02.000+0800" }], "dataChangeCreatedBy": "apollo", "dataChangeLastModifiedBy": "apollo", "dataChangeCreatedTime": "2018-07-04T16:11:00.000+0800", "dataChangeLastModifiedTime": "2018-07-04T16:11:00.000+0800" }
* 結構url的參數規則如下: ![](http://i2.51cto.com/images/blog/201807/13/b33c8b06860ad718981228618a33138f.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) * Api更多文檔參考,參考 https://github.com/ctripcorp/apollo/wiki/Apollo%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0 --- ### Java的接入方式 * 參考 https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97 其實官方的源包下已經包含一個apollo-demo的項目,如果你在看了上一篇的部署apollo項目後,應該記得腳本最後有一個上傳本地架包到maven的步驟,這個就是如果想進行java搭建必須的操作,需要將編譯好的架包上傳到私有源上去. 因為我實在沒調通官方的demo項目,所以根據官方的demo項目自己創建一個新的項目來調試,簡單講述下實現的代碼,後面提供下載 1. 打開 http://start.spring.io/ ,輸入簡單的選項,點擊生成項目後下載到本地 ![](http://i2.51cto.com/images/blog/201807/13/79fe86478a3f2a122ebd541f9d395e0b.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 1. 引入eclipse ![](http://i2.51cto.com/images/blog/201807/13/1e63406fb89585f1625fbfb94bf732d9.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) * 我這裏引入過,所以不能再引入,正常輸入目錄後,eclipse掃描後點擊finish就可以引入 ![](http://i2.51cto.com/images/blog/201807/13/a5c9912039dba831f7684776a6dadae5.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 1. 在pom.xml中添加下列包 ```xml <!-- 引入的包##################### --> <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>0.11.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-core</artifactId> <version>0.11.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>25.1-jre</version> </dependency> <!-- https://mvnrepository.com/artifact/com.google.inject/guice --> <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> <version>4.2.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </dependency>
-
將官方apollo-demo下的 com.ctrip.framework.apollo.demo 拷貝到我們的demo下,這裏僅測試官方推薦的java讀取方式,刪除多余的文件,最後的結構如下
- 添加運行的環境選擇,這裏用DEV環境
#我的是window下測試,所以在
- C:\opt\settings\server.properties 添加內容 : ENV=dev
-
在eclipse 的 META-INF目錄下創建一個 app.properties文件添加內容 : app.id=900001
-
在 pom.xml上右鍵選擇run - maven install ,然後在 AnnotationApplication 右鍵run - spring boot app
-
運行的輸出應該能看到如下輸出
* 在console回車會看到
更新配置,測試是否實時更新配置
- 從portal修改dev環境的timeout值變成3000
-
發布配置
-
可以看到console輸出中,timeout已經變更了值
- 更多的java接入教程,參考https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97
Apollo配置中心-Api方式與Java方式測試