本篇內(nèi)容主要講解“怎么使用zk-etcd-config”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么使用zk-etcd-config”吧!
我們提供的服務(wù)有:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、撫遠(yuǎn)ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的撫遠(yuǎn)網(wǎng)站制作公司
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”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
文章名稱:怎么使用zk-etcd-config
文章路徑:http://aaarwkj.com/article44/jjjehe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、、靜態(tài)網(wǎng)站、微信小程序、搜索引擎優(yōu)化、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)