首先来看看Archaius解决了什么问题,在大型分布式系统中,在大型分布式系统中常常会存在下面的几类问题:java
1.需用从配置中新获取配置,加载到本地内存。apache
2.配置中心的配置发生变化,须要动态更新本地内存中的配置。安全
3.配置中心的配置发生变换,须要接收通知。分布式
archaius如何解决上面的问题:spa
其实archaius解决方法很简单,就是定时从配置中心去读取数据,而且更新内存中相关配置,而且通知监听的监听器更新内容。.net
经过archaius咱们就能够实现动态配置了。下面是archaius使用的一个例子:线程
1、引入archaius包code
<dependency> <groupId>com.netflix.archaius</groupId> <artifactId>archaius-core</artifactId> <version>0.6.0</version> </dependency>
2、archaius默认会去读取类路径下的config.properties配置文件,在类路径下建立配置文件。blog
myname=zwh
3、使用DynamicPropertyFactory来获取属性,并获取值。内存
public class RibbonMain { public static void main(String[] args) throws IOException { DynamicStringProperty timeToWait = DynamicPropertyFactory.getInstance().getStringProperty("myname", "default"); System.out.println(timeToWait.get()); } }
用于管理java配置。主要功能是对apache common configuration类库进行扩展。提供如下特性:
- 动态获取属性
- 高效和线程安全的配置操做
- 配置改变时提供回调机制
- 能够经过jmx操做配置
- 复合配置
第一个Archaius实例
复合配置例子
Archaius的核心是复合配置。复合配置内部能够包含多个配置,每一个配置读取不一样的配置源而且会定时拉取和更新数据。若是多个配置源中存在同一个配置,会使用最顶层的那个配置。