spingboot binder 动态更新apollo配置

338 阅读1分钟

背景

使用spring boot构建的项目,配置放到了apollo去管理,部署使用华为云,每次修改apollo的配置时,需要手动删除华为云上的pod,让新启动的pod去重新读取apollo上的配置,达到变更配置的目的。 使用@ApolloConfigChangeListener每当配置变化时,需要手动将属性更新到依赖此配置的实例上,如果后续有配置变更,还需要改动此处代码。

  1. 关于binder,spring官方文档如下

  2. Spring Boot中的属性绑定

  3. apollo use case

实践

1. 项目中需要支持动态更新的配置,都放入一个类里面(两个类也可以)

apollo2.png

apollo3.png

apollo5.png

2. apollo配置变更监听器

apollo1.png

3. apollo上的配置

apollo4.png

4. 启动项目后,修改apollo上的配置,观察程序是否会感知到