2019年5月15日记
需求:从apollo配置中心读取配置文件【若不存在则从本地加载】,加载到内存中,如果配置文件发生更改,内存中的数据也要同时更改,时刻保持同步。
启动apollo
1、下载工程apollo-build-scripts-master,
码云地址:https://gitee.com/tcyj/apollo-build-scripts-master
2、下载之后的目录如下:
3、打开上图中的sql目录,将2个sql脚本导入到mysql数据库中。
注意:JDK1,8版本以上,mysql5.7版本以上。以防出现错误
4、使用Editplus打开上图中的demo.sh文件,填写自己数据库的用户+密码,如下
#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=用户名
apollo_config_db_password=密码(如果没有密码,留空即可)
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=用户名
apollo_portal_db_password=密码(如果没有密码,留空即可)
注意:不要修改demo.sh的其它部分
5、回到 apollo-build-scripts-master/ 下面的目录,鼠标右键点击git bash here。
执行脚本
./demo.sh start
注意:,8080端口不能被占用,负责会报错,如果出现错误查看service/apollo-service.log日志信息。多尝试几次
6、浏览器中打开http://localhost:8070
7、输入用户名apollo,密码admin后登录
8、点击SampleApp,进入
9、点击添加Namespace按钮,选择创建Namespace
10、根据自己的需求去创建对应的文件(properties,xml,json,yml,yaml),如下
我创建了2个配置文件如下
案例以第二个json文件为蓝本,和内存进行同步操作。首先空状态下,先要发布一次之后,点击编辑按钮,然后输入内容,点击保存,最后发布真实的内容。
我的chip_model.json文件
{
"whiteList":["mt6763","mt6771","mt6750","mt6755","hi6250","hi3650","hi3660","msm8953","msm8952","msm8937","sdm710","msm8996","msm8998","sdm660","sdm845","kirin980","kirin970"],
"uablackList":["huawei","vivo"],
"switch":["true"]
}
以上就是我们对apollo配置中心,配置文件的处理。
java代码去操作
1、用代码去读取apollo上的配置文件
下载如下2个工程
工程 | 地址 |
---|---|
apollo-test | https://gitee.com/tcyj/apollo-test.git |
eureka-demo | https://gitee.com/tcyj/eureka-demo |
先启动eureka-demo,后启动apollo-test
注意:和apollo配置中心的项目【SampleApp】名保持一致。
2、请求
功能 | 请求url |
---|---|
读取json文件 | http://localhost:18088/apollo/getJson |
同步json数据 | http://localhost:18088/apollo/toSynApolloFile |
另外附上2个强力链接供大家参考
https://www.cnblogs.com/xiaxiaolu/p/10025597.html
https://blog.csdn.net/pilihaotian/article/details/82958386
欢迎和大家探讨