首先來看看Archaius解決了什么問題,在大型分布式系統中,在大型分布式系統中經常會存在下面的幾類問題:
1.需用從配置中新獲取配置,加載到本地內存。
2.配置中心的配置發生變化,需要動態更新本地內存中的配置。
3.配置中心的配置發生變換,需要接收通知。
archaius如何解決上面的問題:
其實archaius解決方法很簡單,就是定時從配置中心去讀取數據,並且更新內存中相關配置,並且通知監聽的監聽器更新內容。
通過archaius我們就可以實現動態配置了。下面是archaius使用的一個例子:
一、引入archaius包
<dependency> <groupId>com.netflix.archaius</groupId> <artifactId>archaius-core</artifactId> <version>0.6.0</version> </dependency>
二、archaius默認會去讀取類路徑下的config.properties配置文件,在類路徑下創建配置文件。
myname=zwh
三、使用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的核心是復合配置。復合配置內部可以包含多個配置,每個配置讀取不同的配置源並且會定時拉取和更新數據。如果多個配置源中存在同一個配置,會使用最頂層的那個配置。