博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java B2B2C 源码多租户电子商城系统-Spring Cloud整合Netflix Archaius介绍
阅读量:6905 次
发布时间:2019-06-27

本文共 2037 字,大约阅读时间需要 6 分钟。

1、概述

Netflix Archaius 是一个功能强大的配置管理库。它是一个可用于从许多不同来源收集配置属性的框架,提供对配置信息的快速及线程安全访问。

需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台源码 一零三八七七四六二六

除此之外,Archaius允许属性在运行时动态更改,使系统无需重新启动应用程序即可获得这些变化。

Netflix Archaius功能

众所周知,Spring Boot已经提供了管理外部化配置的工具,为什么还要设置不同的机制呢?

因为Archaius提供了一些其他任何配置框架都没有考虑过的方便有趣的功能。其中的一些关键点是:

动态和类型属性

在属性改变时调用的回调机制

动态配置源(如URL,JDBC和Amazon DynamoDB)的实现

Spring Boot Actuator或JConsole可以访问的JMX MBean,用于检查和操作属性

动态属性验证

因此,Spring Cloud已经开发了一个库,可以轻松配置“Spring Environment Bridge”,以便Archaius可以从Spring Environment中读取属性。

用法

一旦我们添加了所需的依赖项,我们就能够访问框架管理的属性:

DynamicStringProperty propertyOneWithDynamic = DynamicPropertyFactory.getInstance().getStringProperty("springcloud.archaius.properties.one", "not found!");String propertyCurrentValue = dynamicProperty.get();复制代码

它是如何工作的?

首先,让我们试着理解大局。

Archaius是Apache的Commons Configuration库的扩展,添加了一些很好的功能,如动态源的轮询框架,具有高吞吐量和线程安全的实现。

然后 spring-cloud-netflix-archaius 库进入,合并所有不同的属性源,并使用这些源自动配置Archaius工具。

2、 Netflix Archaius库

它定义了一个复合配置,是可以从不同来源获得的各种配置的集合。

此外,其中一些配置源可以支持在运行时轮询更改。Archaius提供接口和一些预定义的实现来配置这些类型的源。

源集合是分层的,因此如果属性存在于多个配置中,则最终值将是最顶部插槽中的值。

最后, ConfigurationManager处理系统范围的配置和部署上下文。它可以安装最终的复合配置,或检索已安装的复合配置进行修改。

3、 Spring Cloud支持

Spring Cloud Archaius库的主要任务是将所有不同的配置源合并为 ConcurrentCompositeConfiguration,并使用ConfigurationManager进行安装 。

库定义源的优先顺序是:

上下文中定义的任何Apache公共配置AbstractConfiguration bean

Autowired Spring ConfigurableEnvironment中定义的所有源代码

默认的Archaius源,我们在上面的例子中看到过

Apache的SystemConfiguration和EnvironmentConfiguration 源

Spring Cloud库提供的另一个有用功能是定义一个Actuator Endpoint 来监控属性并与之交互。

使用Spring添加其他配置源

我们如何添加一个不同的配置源来由所描述的框架管理?我们如何管理优先级高于Spring环境中定义的动态属性?

为了简单起见,我们将看到一个示例,我们配置一个类似于默认config.properties的属性文件,但其优先级高于Spring环境和应用程序属性的其余部分:

@Configurationpublic class ApplicationPropertiesConfigurations {	@Bean	public AbstractConfiguration addApplicationPropertiesSource() {		PolledConfigurationSource source = new URLConfigurationSource("classpath:other-config.properties");		return new DynamicConfiguration(source, new FixedDelayPollingScheduler());	}}复制代码

转载于:https://juejin.im/post/5c413a70e51d4567680e2633

你可能感兴趣的文章
暴力操作节点
查看>>
java多线程关键字volatile的使用
查看>>
Aptana下Django1.6以后的项目模板结构改造
查看>>
LoaderManager使用具体解释(四)---实例:AppListLoader
查看>>
软件系统的架构设计
查看>>
poj1159--Palindrome(dp:最长公共子序列变形 + 滚动数组)
查看>>
Codeforces #282 div 1 C Helping People 题解
查看>>
Java华氏转摄氏
查看>>
centos6.8服务器配置之编译安装PHP、配置nginx
查看>>
ddddddd
查看>>
Android 开发之 ---- 底层驱动开发(一)
查看>>
分享到朋友圈实现
查看>>
SQL Server 用链接服务器 同步SqlServer与MySQL
查看>>
Android程序的打包和安装
查看>>
Android内存优化6 了解Android是如何管理App内存
查看>>
SpringBoot2 添加应用拦截器
查看>>
es删除文档或者删除索引
查看>>
swift可选值总结
查看>>
深入理解Java虚拟机06--虚拟机字节码执行引擎
查看>>
C# 委托和事件,简单示例说明问题
查看>>