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)

相关推荐

  • WPF设置列内容居左、中、右

    技术WPF设置列内容居左、中、右 WPF设置列内容居左、中、右Style内容Style x:Key="contentLeftStyle" TargetType="{x:Type TextBlock}"S

    礼包 2021年12月18日
  • 汉字数字大写,中国数字一至十 大写怎么写

    技术汉字数字大写,中国数字一至十 大写怎么写一至十的大写为:壹、贰、叁、肆、伍、陆、柒、捌、玖、拾汉字数字大写。 大写数字的使用始于明朝。朱元璋发布法令明确要求记账的数字必须由“一、二、三、四、五、六、七、八、九、十、百

    生活 2021年10月28日
  • C#的二次开发及应用举例分析

    技术C#的二次开发及应用举例分析本篇内容主要讲解“C#的二次开发及应用举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#的二次开发及应用举例分析”吧!二次开发及应用

    攻略 2021年11月26日
  • nodejs是一门语言吗

    技术nodejs是一门语言吗这篇文章主要讲解了“nodejs是一门语言吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nodejs是一门语言吗”吧!

    攻略 2021年11月19日
  • 24Django装饰器整体缓存的一种玩法

    技术24Django装饰器整体缓存的一种玩法 24Django装饰器整体缓存的一种玩法一,Django设置缓存的三种类型:#将数据缓存到表里
    CACHE={'default':{'BACKEND':'d

    礼包 2021年12月6日
  • 七日年化和年化哪个好,执行利率和七日年化收益的区别

    技术七日年化和年化哪个好,执行利率和七日年化收益的区别①七天年化收益一般用于货币基金七日年化和年化哪个好,而年利率的应用范围比较广泛②年利率是获得一年的利率,七天年化收益率就是前面七天每天的收益率取一个平均值③年利率指的

    生活 2021年10月21日