apollo作为应用配置管理中心框架,可以将应用中的配置信息集中管理,且在apollo中修改配置值之后应用中可以动态更新。
动态刷新的原理:应用中配置了apollo后,在spring容器启动过程中,apollo将属性中含有@Value注解与${}的bean注册到apollo框架定义的注册表中。然后通过http长轮询不停地去获取apollo服务端的配置信息,一旦配置发生变化,apollo会根据配置的key找到注册的bean,然后修改bean的属性,从而实现了配置动态生效。
配置值动态刷新的情况有下面几种:1 通过@Value注解读取配置值;2 通过@ConfigurationProperties注解读取配置。
(一) @Value 可以添加在method(比如setxxx())、field(属性)、parameter。apollo中的配置修改后,应用中会动态刷新。
1)读取简单类型:java基本类型、string等。@Value("${xxx:defaultvalue}")
2)读取list、map、set等,或将一定格式的string转为collection:
apollo配置如下
(二)@ConfigurationProperties 读取配置生成bean。
apollo中的配置修改后,应用中不会动态刷新,需要手动编写程序实现动态刷新。因为spring启动时,已读取配置值且生成了对象。之后再修改配置值后,对象中的属性值并不会改变。
(三)数据库连接配置更改后,对已创建连接不会刷新,只对新生成连接对象生效。
(四)针对bean属性值无法动态刷新的问题,有以下几种方法可以实现动态刷新。
1)基于RefreshScope结合@ApolloConfigChangeListener实现
2)基于EnvironmentChangeEvent结合@ApolloConfigChangeListener实现
3)示例代码如下
properties配置
listener方式一
listener方式二
到此这篇Apollo配置中心修改数据库配置生效(apollo配置中心动态更新)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/14090.html