简介
Apollo项目共分三个工程,portal,adminservice,configservice
Apollo的部署,文档挺详细的:
部署前的系统需求:
https://github.com/ctripcorp/apollo/wiki/分布式部署指南
部署流程:
https://github.com/ctripcorp/apollo/wiki/分布式部署指南#二部署步骤
说一下部署完成调整的东西:
将文档中的配置名称复制到key框中,然后根据自己的需要修改,就是增加用户,增加环境等一些操作。
注:上图为添加可支持的环境列表,就是增加一种环境。
Apollo发布配置的执行流程为:
用户在portal界面修改,发布配置等请求,对应admin的接口,admin将配置保存到configDB数据库中,然后通知configservice,configservice通知client,也就是你整合apollo的项目,
然后你的应用从configservice获取配置。
整合项目的流程
(springboot项目迁移配置文件至apollo)
注意:确保apollo的portal界面可以正常访问,自己的项目没有整合apollo之前可以正常跑起来。
1.在项目的resources下创建META-INF文件夹,新建app.properties文件,新增配置:
app.id=项目id。 //String格式,对应apollo中创建项目输入的id值
apollo.meta=http://ip+port //此为apollo的configservice的访问路径
2.pom文件引入apollo的依赖:
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.0</version>
</dependency>
注:version和部署的apollo项目版本一致,就是从git上面下载的工程的版本
3.在springboot的启动类上面添加注解:
@EnableApolloConfig
打开apollo的界面:
点击创建项目:
部门可先使用默认的,需要自定义的名称可以到apollo的数据库中修改,或者在上文的apollo的界面,参数配置,输入部门的key,进行修改。
应用id填入项目中app.properties文件配置的appid。
应用名自定义
负责人可先用apollo默认的管理员
点击提交
转到项目的界面后
点击文本,再点击修改配置
将项目中的application.properties文件内容复制到文本框中,保存。
或者application.yml格式的转换成preperties格式。
然后页面显示配置未发布,点击发布后项目才可以从apollo读取配置。
新增配置也可以通过表格,使用K、V格式填入新增的配置。
然后发布配置,将本地项目的配置文件删除,启动项目。 //提前备份配置文件!
然后发现端口号,数据库等配置都是从apollo读取到的。
测试:可以通过修改配置中心设置的端口号,然后重启项目可以发现端口号已经修改。
或者写一个controller,通过@Value(“${somekey}”),返回对应key的value。打印到页面查看。
访问项目显示:
以上是将springboot的配置文件迁移到apollo,此配置除了系统配置,如端口号不支持配置的热部署,其他配置更新后不需要重启项目。这只是最简单的整合,后期包括不同环境应用不同配置,通过集群管理多个微服务的配置,等后续再讲。
另外,apollo的优点还在于会在项目所在的机器上面缓存一份配置文件,如果apollo任一服务关闭或者异常,应用还是可以读取本地配置文件从而不影响运行。