首先來看看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的核心是複合配置。複合配置內部能夠包含多個配置,每一個配置讀取不一樣的配置源而且會定時拉取和更新數據。若是多個配置源中存在同一個配置,會使用最頂層的那個配置。