Spring Cloud Archaius 多配置源收集 原理简介(一)

简介: 功能强大的配置管理库 可用于从许多不同来源收集配置属性的框架,提供对配置信息的快速及线程安全访问Archaius可以从多个动态源中检索属性、允许属性在运行时动态更改,使系统无需重新启动应用程序即可获得这些变化(异构的属性源,运行时更改等)

Archaius支持的配置属性

Archaius考虑类似于config.properties的其他配置文件 ,我们可以定义 archaius.configurationSource.additionalUrls系统属性。

该值被解析为由逗号分隔的URL列表,因此,例如,我们可以在启动应用程序时添加此系统属性:

-Darchaius.configurationSource.additionalUrls="classpath:other-dir/extra.properties,file:///home/user/other-extra.properties"

Archaius将首先读取config.properties文件,然后按指定的顺序读取其他文件。因此,后面文件中定义的属性将优先于先前的属性。

我们可以使用几个其他系统属性来配置Archaius默认配置的各个方面:

  • archaius.configurationSource.defaultFileName:类路径中的默认配置文件名
  • archaius.fixedDelayPollingScheduler.initialDelayMills:读取配置源之前的初始延迟
  • archaius.fixedDelayPollingScheduler.delayMills:两次读取源之间的延迟; 默认值为1分钟

使用spring 添加其他的数据源

  • Spring定义的Composite Configuration中的最高配置是在上下文中定义的 AbstractConfiguration bean。
  • 因此,我们需要做的就是使用Archaius提供的一些功能将这个Apache的抽象类的实现添加到我们的Spring Context中,Spring的自动配置会自动将它添加到托管配置属性中。
  • 为了简单起见,我们将看到一个示例,我们配置一个类似于默认config.properties的属性文件,但其优先级高于Spring环境和应用程序属性的其余部分:

微信图片_20220421225654.png

  • 若是jdbc数据源 使用 JDBCConfigurationSource

微信图片_20220421225658.png

使用Archaius已经提供的JDBCConfigurationSource,然后我们注册使用新的配置 ConfigurationManager。

执行此操作后,我们可以从数据库中获取任何属性,就像我们对属性文件所做的那样(即使用 DynamicPropertyFactory)。

1⃣️ 测试

微信图片_20220421225702.png

2⃣️ 通过JMX将配置注册为MBean

  • Archaius提供的另一个非常酷的功能是可以通过JMX 将我们的配置注册为 MBean。

微信图片_20220421225706.png

  • 我们可以默认设置系统属性 archaius.dynamicPropertyFactory.registerConfigWithJMX = true或使用ConfigJMXManager.registerConfigMbean(config)进行编程。

微信图片_20220421225710.png

  • 执行此操作后,我们可以通过JConsole连接,不仅可以获取所有属性的值,还可以更新它们并查看它们在Archaius中反映的新值。例如,这将允许我们在运行时更改属性文件中静态定义的属性值,而无需服务器推送。我们可以稍微修改一下ApplicationConfig类来添加一个main方法,该方法将持续运行打印不同属性的值,这样将允许我们在JConsole中使用。

微信图片_20220421225714.png

源码地址:

https://gitee.com/pingfanrenbiji/java-samples.githttps://gitee.com/pingfanrenbiji/spring-cloud-examples/tree/master/spring-cloud-archaius/simple_config

参考文章

https://www.jianshu.com/p/1e340e931730https://www.jianshu.com/p/f9d7500920a9

相关文章
|
1天前
|
安全 Java 开发者
深入理解Spring Boot配置绑定及其实战应用
【4月更文挑战第10天】本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
13 1
|
1天前
|
XML Java 数据格式
Spring高手之路18——从XML配置角度理解Spring AOP
本文是全面解析面向切面编程的实践指南。通过深入讲解切面、连接点、通知等关键概念,以及通过XML配置实现Spring AOP的步骤。
22 6
Spring高手之路18——从XML配置角度理解Spring AOP
|
1天前
|
消息中间件 开发框架 Java
什么是Spring Boot 自动配置?
Spring Boot 是一个流行的 Java 开发框架,它提供了许多便利的功能和工具,帮助开发者快速构建应用程序。其中一个最引人注目的特性是其强大的自动配置功能。
9 0
|
1天前
|
监控 安全 Java
Spring cloud原理详解
Spring cloud原理详解
17 0
|
1天前
|
XML SQL Java
SpringCloud 基础配置
SpringCloud 基础配置
12 0
|
1天前
|
Java Spring
Spring文件配置以及获取
Spring文件配置以及获取
13 0
|
1天前
|
消息中间件 负载均衡 Java
【Spring Cloud 初探幽】
【Spring Cloud 初探幽】
16 1
|
1天前
|
安全 Java Docker
|
1天前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
254 0
|
1天前
|
Java API Nacos
第十二章 Spring Cloud Alibaba Sentinel
第十二章 Spring Cloud Alibaba Sentinel
28 0

热门文章

最新文章