前言
项目用的springboot,连带着配置中心也一直用的spring的配置中心,但是一直以来都有各种问题:
每次变更配置要重启配置中心和应用;
各个环境集群的配置文件在不同分支,每个环境要分别手动同步,容易遗漏;
无法确定当前应用是否重启过,读取的是最新配置。
当然,个人觉得最重要的就是需要重启应用这个,简直就是浪费时间,浪费时间就是浪费生命啊。虽然spring也提供@RefreshScope这个注解来动态更新配置,但是用起来不是很方便,而且不能对散落在代码各处的配置统一处理,对老代码也无能为力,头大。
可能大家忍受够了,运维推了一个apollo配置中心来替换spring的配置中心,主打配置实时同步,真是直击程序员最深处心灵,皆大欢喜。正好以前也看过某位大神的分析,相比较他也是推荐apollo的,所以这边马上就红红火火的切换起来了。
过程
导client的jar包,做一些基本的配置,线上环境的启动参数运维会处理,这边方便本地启动会在配置文件中加一些配置:
项目resource 目录下增加 META-INF/app.properties 文件,文件中增加如下内容
app.id=web-admin
# 这里填上用于本地,线上运维会覆盖
apollo.meta=http://172.16.101.11:8080
# 配置的本地缓存目录,这行也可不配置,不配Apollo有默认值target/classes/config-cache