扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
SpringCloud动态配置变化监控的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、虚拟空间、营销软件、网站建设、江达网站维护、网站推广。
配置中心有原生的 SpringCloud Config
、国内开源的 阿里 Nacos
、携程 Apollo
等。 都是配置热加载的基础上增加了其他的功能。
配置中心具有配置热加载,修改配置 -> 推送到程序 -> 执行配置更新。
而获取配置更新的具体内容,这些组件都没有做到(SpringCloud Config
、Nacos
, Apollo待验证
)。如:获取变化的配置 test
更新前为 123
,更新后为 111
。
SpringCloud Config
、Nacos
、 Apollo待验证
配置更新都是将整个配置文件推送给服务进行配置对比结果进行更新。这个阶段用户无法从程序中获取更新的内容。
为了实现这个扩展功能点,更新结果可以让程序感知。 在这个阶段用户通过code可以实现配置监听, 监听到某个配置变化做其他操作等。
示例: 获取到推送配置变化, 感知到 test
发生变化, 做更新同步数据操作等等。
感知结果集如:
{ `被更新的配置key`:{ before: `原来的值`, after: `更新后的值` }, `被更新的配置key`:{ before: `原来的值`, after: `更新后的值` } }
ps:实际version版本请使用最新版
com.purgeteam dynamic-config-spring-boot-starter 0.1.0.RELEASE
当然实际情况要结合添加动态配置依赖包 SpringCloud Config
、 Nacos
、 Apollo
。
dynamic-config-spring-boot-starter
模块不包含以上依赖, 需要自行添加。
简介:开启这个特性注解,具备配置推送更新监听能力。
启动类添加 @EnableDynamicConfigEvent
注解开启配置变化监听功能。
@EnableDynamicConfigEvent @SpringBootApplication public class DynamicConfigSpringBootApplication { public static void main(String[] args) { SpringApplication.run(DynamicConfigSpringBootApplication.class, args); } }
创建 NacosListener
(名称随意) 实现 ApplicationListener
方法
@Slf4j @Component public class NacosListener implements ApplicationListener{ @Override public void onApplicationEvent(ActionConfigEvent event) { log.info("接收事件"); log.info(event.getPropertyMap().toString()); } }
在 NacosListener#onApplicationEvent
方法里获取目标值, 作相应的逻辑处理。
ActionConfigEvent event:
public class ActionConfigEvent extends ApplicationEvent { // 事件说明 private String eventDesc; // 更新变化结果集 private MappropertyMap; ... }
ActionConfigEvent
主要包含 Map
, 从这里可以获取更新变化结果, propertyMap结构如下:
{ `被更新的配置key`:{ before: `原来的值`, after: `更新后的值` }, `被更新的配置key`:{ before: `原来的值`, after: `更新后的值` } }
ps:示例为 Nacos
其它配置中心无差别。
原始配置:
test.age=18 user.name=purgeyao
修改配置:
# test.age 将18更新为19 test.age=19 user.name=purgeyao
在 NacosListener#onApplicationEvent
方法加入端点调试观察 ActionConfigEvent
对象参数。
更新的 test.age
已经被记录在了 ActionConfigEvent.propertyMap
里了, 从 18 更新为 19。
控制台打印:
2019-10-17 10:44:09.221 INFO 54054 --- [-10.1.1.97_8848] c.p.dynamic.config.demo.NacosListener : 接收事件 2019-10-17 10:45:19.752 INFO 54054 --- [-10.1.1.97_8848] c.p.dynamic.config.demo.NacosListener : {test.age={before=18, after=19}}
上述功能基于 Nacos
、 SpringCloud Config
或基于 SpringCloud Config
之上构建的配置中心都可以使用, 其他配置中心待验证。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流