Apollo配置中心遇到的坑

文章讲述了在项目中从Spring配置中心切换到Apollo配置中心的过程中遇到的问题,包括@ConfigurationProperties注解的配置类无法实时更新。作者发现Apollo的实时同步功能默认不开启,并需要配合EnvironmentChangeEvent或RefreshScope使用。在解决这个问题后,提醒其他开发者注意从Spring到Apollo迁移时的配置更新行为。此外,还提到了JRebel热加载导致Apollo事件监听器列表增长的问题。

前言

项目用的springboot,连带着配置中心也一直用的spring的配置中心,但是一直以来都有各种问题:

  1. 每次变更配置要重启配置中心和应用;
  2. 各个环境集群的配置文件在不同分支,每个环境要分别手动同步,容易遗漏;
  3. 无法确定当前应用是否重启过,读取的是最新配置。

当然,个人觉得最重要的就是需要重启应用这个,简直就是浪费时间,浪费时间就是浪费生命啊。虽然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
apollo.cacheDir=/opt/data/apollo-config

项目 resource 目录下增加 application.properties 文件, 文件中增加

apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=application,dev.common

"application", "dev.common" 为 应用配置 的n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值