本篇內(nèi)容主要講解“怎么使用zk-etcd-config”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么使用zk-etcd-config”吧!
我們提供的服務(wù)有:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、撫遠(yuǎn)ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的撫遠(yuǎn)網(wǎng)站制作公司
zk-etcd-config是一款輕量級(jí)的動(dòng)態(tài)屬性配置接口,同時(shí)支持etcd v3和zookeeper兩種中間件
github地址
用zk-etcd-config可以靈活切換使用etcd或者zookeeper作為動(dòng)態(tài)屬性配置中間件,用簡(jiǎn)便的接口來(lái)監(jiān)聽(tīng)屬性值的動(dòng)態(tài)變化。
(1)使用: 假設(shè)我們的系統(tǒng)有兩個(gè)參數(shù)需要?jiǎng)討B(tài)配置,當(dāng)該系統(tǒng)的微服務(wù)集群?jiǎn)?dòng)后,需要?jiǎng)討B(tài)捕捉到這兩個(gè)參數(shù)值的變化,如果我們使用zookeeper作為中間件存儲(chǔ),講所有的參數(shù)組裝成一個(gè)類(lèi)似properties.application的文件內(nèi)容,格式如下:
param1=value1 param2=value2
那么我們可以將上面的配置內(nèi)容寫(xiě)到zookeeper的/config節(jié)點(diǎn)的data中。當(dāng)/config中param1或者param2的值變化時(shí),通過(guò)IWatcher接口實(shí)時(shí)接收變動(dòng)通知。 示例代碼
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是自定義的類(lèi),實(shí)現(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的地址,用","隔開(kāi),ip:port格式。 path表示動(dòng)態(tài)屬性在etcd或zookeeper上存儲(chǔ)的節(jié)點(diǎn)路徑。 IWatcher是監(jiān)聽(tīng)事件接口,其定義為:
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)最后退出時(shí)關(guān)閉config:
config.close();
依賴包除了zk-etcd-config之外,還必須加上etcd和zookeeper的依賴包。
houyijun.dynamic zk-etcd-config 0.2.0 io.etcd jetcd-core 0.4.1 org.apache.curator curator-recipes 4.0.1 org.apache.zookeeper zookeeper 3.4.8
到此,相信大家對(duì)“怎么使用zk-etcd-config”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!