SpringCloud动态配置变化监控的实例分析

技术SpringCloud动态配置变化监控的实例分析SpringCloud动态配置变化监控的实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所

很多新手对SpringCloud动态配置变更监控的案例分析不是很清楚。为了帮助大家解决这个问题,下面小编就为大家详细讲解一下。有这种需求的人可以从中学习,希望你能有所收获。

00-1010配置中心包括原SpringCloud Config、国内开源阿里Nacos、携程Apollo等。其他功能是在配置热加载的基础上增加的。

配置中心具有热加载配置、修改配置-推送至程序-执行配置更新的功能。

但这些组件未能得到配置更新的具体内容(SpringCloud Config、Nacos、Apollo有待验证)。例如,获取已更改的配置测试,更新前为123,更新后为111。

SpringCloud Config、Nacos和Apollo都是通过将整个配置文件推送到服务进行配置比较来更新的。在这个阶段,用户无法从程序中获得更新的内容。

为了实现这个扩展的功能点,程序可以感知更新结果。在这个阶段,用户可以通过代码监控配置,监控配置更改并执行其他操作。

示例:获得推送配置更改,感知测试更改,并更新和同步数据。

感知结果集如:

{

`更新的配置密钥` :{。

在:“原始值”之前,

在:“更新值”之后

},

`更新的配置密钥` :{。

在:“原始值”之前,

在:“更新值”之后

}

}

简介

功能使用

ps:.的实际版本请使用最新版本

属国

groupIdcom.purgeteam/groupId

artifactIddynamic-config-spring-boot-starter/artifactId

version0.1.0.RELEASE/version

/dependency当然,实际情况要结合添加SpringCloud Config、Nacos、Apollo等动态配置依赖包。

dynamic-config-spring-boot-starter模块不包含上述依赖项,需要自己添加。

00-1010简介:打开此功能注释,并能够配置推送更新监控。

启动该类并添加@ enableddynamicconfigevent注释以打开配置更改监控功能。

@EnableDynamicConfigEvent

@回弹应用

public classdynamicconfigspringbootapplication {

publicationstativitmain(String[]args){ 0

springapplication . run(dynamicconfigspringbootpapplication . class,args);

}

}

添加依赖

创建NacosListener(名称是可选的)并实现applicationlistener actionconfigevent # on application entevent方法。

@Slf4j

@组件

公共图书馆

ic class NacosListener implements ApplicationListener<ActionConfigEvent> {
  @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 Map<String, HashMap> propertyMap;
    ...
}

ActionConfigEvent 主要包含 Map<String, HashMap> propertyMap;, 从这里可以获取更新变化结果, 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 对象参数。

SpringCloud动态配置变化监控的实例分析

更新的 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}}

上述功能基于 NacosSpringCloud Config 或基于 SpringCloud Config 之上构建的配置中心都可以使用, 其他配置中心待验证。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/51146.html

(0)

相关推荐

  • 如何利用Winrm.vbs绕过白名单限制执行任意代码

    技术如何利用Winrm.vbs绕过白名单限制执行任意代码这篇文章主要为大家展示了“如何利用Winrm.vbs绕过白名单限制执行任意代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习

    攻略 2021年11月1日
  • 局域网怎么建立,怎么才能组建小型局域网呢

    技术局域网怎么建立,怎么才能组建小型局域网呢“网络极客”,全新视角、全新思路,伴你遨游神奇的科技世界局域网怎么建立。不同的单位对局域网的需求略有不同,设计上也会有所差异。并没有提出具体的要求,我就尽可能详细的谈谈组建小型

    生活 2021年10月21日
  • 香橙派Orange Pi 4开发板在Ubuntu系统下怎样使用python控制GPIO

    技术香橙派Orange Pi 4开发板在Ubuntu系统下怎样使用python控制GPIO这篇文章给大家分享的是有关香橙派Orange Pi 4开发板在Ubuntu系统下怎样使用python控制GPIO的内容。小编觉得挺

    攻略 2021年11月12日
  • 如何分析python的map、reduce函数

    技术如何分析python的map、reduce函数这篇文章给大家介绍如何分析python的map、reduce函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。小编讲的是Python的map、red

    攻略 2021年12月4日
  • node.js是什么意思

    技术node.js是什么意思这篇文章主要介绍了node.js是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Node

    攻略 2021年12月13日
  • 通过爬虫代理IP快速增加博客阅读量的示例分析

    技术通过爬虫代理IP快速增加博客阅读量的示例分析通过爬虫代理IP快速增加博客阅读量的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先题目所说的

    攻略 2021年10月28日