您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么使用zk-etcd-config”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么使用zk-etcd-config”吧!
zk-etcd-config是一款輕量級的動態屬性配置接口,同時支持etcd v3和zookeeper兩種中間件
github地址
用zk-etcd-config可以靈活切換使用etcd或者zookeeper作為動態屬性配置中間件,用簡便的接口來監聽屬性值的動態變化。
(1)使用: 假設我們的系統有兩個參數需要動態配置,當該系統的微服務集群啟動后,需要動態捕捉到這兩個參數值的變化,如果我們使用zookeeper作為中間件存儲,講所有的參數組裝成一個類似properties.application的文件內容,格式如下:
param1=value1 param2=value2
那么我們可以將上面的配置內容寫到zookeeper的/config節點的data中。當/config中param1或者param2的值變化時,通過IWatcher接口實時接收變動通知。 示例代碼
String kind="zookeeper"; String hosts="localhost:2181,localhost:2183"; String path="/config"; IConfiger config = ConfigerFactory.createFactory(kind, hosts, path); config.start(); String value = config.get("param1"); LOG.error("###key={},value={}", "param1", value); IWatcher w = new TestWatcher(); config.addWatcher("param1", w);
TestWatcher是自定義的類,實現IWatcher接口:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import houyijun.dynamic.config.IWatcher; public class TestWatcher implements IWatcher{ private static final Logger LOG = LoggerFactory.getLogger(TestWatcher.class); public void onChanged(String key, String oldValue, String newValue) { LOG.error("###changed,old={},new={}",oldValue,newValue); } }
kind表示用哪種中間件,目前支持的值為: "etcd-v3" 表示用etcd的V3版本接口。 "zookeeper"表示用zookeeper的接口。 hosts表示etcd或zookeeper的地址,用","隔開,ip:port格式。 path表示動態屬性在etcd或zookeeper上存儲的節點路徑。 IWatcher是監聽事件接口,其定義為:
public interface IWatcher { /** * watcher event happened * @param key * node path * @param oldValue * old value * @param newValue * new value */ void onChanged(String key,String oldValue,String newValue); }
(2)最后退出時關閉config:
config.close();
依賴包除了zk-etcd-config之外,還必須加上etcd和zookeeper的依賴包。
<dependency> <groupId>houyijun.dynamic</groupId> <artifactId>zk-etcd-config</artifactId> <version>0.2.0</version> </dependency> <!-- etcd V3 --> <dependency> <groupId>io.etcd</groupId> <artifactId>jetcd-core</artifactId> <version>0.4.1</version> </dependency> <!-- zookeeper client --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.8</version> </dependency>
到此,相信大家對“怎么使用zk-etcd-config”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。