apollo修改配置刷新bean_分布式配置中心Apollo踩坑日记之Spring Cloud

0a332600b46b13b6fc654f831dbd4eec.png

Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端。

 在SpringCloud 项目使用apollo时,当使用到@ConfigurationProperties相关的配置时,有两种动态刷新的方案:EnvironmentChangeEvent或RefreshScope(注意是类而非注解)ranrefreshScope.refresh方案对eureka、zuul等第三方框架不兼容的问题

refreshScope.refresh方案对eureka、zuul等第三方框架不兼容的问题

官方给出的方案是通过refresh指定name的bean的方式来刷新该配置类。

57bf57de573bcdecda886aa67421dc61.png
bf23db59749e3bd40d3a99e1c77cf4ad.png

该方法会抛出含有指定bean名称的RefreshScopeRefreshedEvent的Spring事件。

然而由于eureka也有对该事件的监听,并且eureka并没有判断bean的名称,直接下线再上线服务。

8cebb489040774fd66bc78cdc6b59da5.png

这样就导致,标注了@ConfigurationProperties的apollo相关配置,在运行时如果想动态更新,势必会引起如Eureka之类的第三方框架的“刷新”动作。

使用EnvironmentChangeEvent方案【推荐】

在springcloud的context中,EnvironmentChangeEvent被定义为环境变更的事件,适用于环境配置的重新绑定。而一般第三方框架也很少会对该事件做出“功能性”的刷新动作。

6811ca807689bf2ae9901bf5a53c5b28.png

接入方式:

64985bd5b66b63729f1eec716e21de21.png
5164169057a9f58080b432c0dfc555bc.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值