您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“怎么使用zk-etcd-config”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“怎么使用zk-etcd-config”吧!
zk-etcd-config是一款輕量級的動態(tài)屬性配置接口,同時支持etcd v3和zookeeper兩種中間件
github地址
用zk-etcd-config可以靈活切換使用etcd或者zookeeper作為動態(tài)屬性配置中間件,用簡便的接口來監(jiān)聽屬性值的動態(tài)變化。
(1)使用: 假設(shè)我們的系統(tǒng)有兩個參數(shù)需要動態(tài)配置,當(dāng)該系統(tǒng)的微服務(wù)集群啟動后,需要動態(tài)捕捉到這兩個參數(shù)值的變化,如果我們使用zookeeper作為中間件存儲,講所有的參數(shù)組裝成一個類似properties.application的文件內(nèi)容,格式如下:
param1=value1 param2=value2
那么我們可以將上面的配置內(nèi)容寫到zookeeper的/config節(jié)點的data中。當(dāng)/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是自定義的類,實現(xiàn)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表示動態(tài)屬性在etcd或zookeeper上存儲的節(jié)點路徑。 IWatcher是監(jiān)聽事件接口,其定義為:
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)最后退出時關(guān)閉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”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。