[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的参数规则如下:
Java的接入方式
其实官方的源包下已经包含一个apollo-demo的项目,如果你在看了上一篇的部署apollo项目后,应该记得脚本最后有一个上传本地架包到maven的步骤,这个就是如果想进行java搭建必须的操作,需要将编译好的架包上传到私有源上去. 因为我实在没调通官方的demo项目,所以根据官方的demo项目自己创建一个新的项目来调试,简单讲述下实现的代码,后面提供下载
打开 http://start.spring.io/ ,输入简单的选项,点击生成项目后下载到本地
引入eclipse
我这里引入过,所以不能再引入,正常输入目录后,eclipse扫描后点击finish就可以引入
在pom.xml中添加下列包
com.ctrip.framework.apollo
apollo-client
0.11.0-SNAPSHOT
com.ctrip.framework.apollo
apollo-core
0.11.0-SNAPSHOT
com.google.guava
guava
25.1-jre
com.google.inject
guice
4.2.0
org.springframework.boot
spring-boot-configuration-processor
true
com.google.code.gson
gson
将官方apollo-demo下的 com.ctrip.framework.apollo.demo 拷贝到我们的demo下,这里仅测试官方推荐的java读取方式,删除多余的文件,最后的结构如下
添加运行的环境选择,这里用DEV环境
#我的是window下测试,所以在
1. C:\opt\settings\server.properties 添加内容 : ENV=dev
2. 在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