curator之事件監聽實現

2021-10-12 17:48:02 字數 1573 閱讀 1698

zookeeper原生支援通過註冊watcher來進行事件監聽,但是每次在使用完後都是需要重新進行註冊,十分繁瑣不方便開發者使用,curator引入了cache實現了對zookeeper服務端事件的鑑定,cache對zookeeper的 事件監聽的包裝,能夠自動實現為開發人員處理反覆註冊監聽,從而簡化了原生api開發的繁瑣過程,cache分為兩分兩類監聽型別:節點監聽和子節點監聽。下面我們就看下分別如何實現監聽。

1、nodecache用於監聽節點本身的變化,下面使用nodecache對節點自身變化監聽實現

static string connectstring = "localhost:***x";

// 建立zk連線

static curatorframework client = curatorframeworkfactory.builder()

.connectstring(connectstring)

.connectiontimeoutms(5000)

.retrypolicy(new exponentialbackoffretry(1000, 3))

.sessiontimeoutms(5000)

.build();

public static void main(string args) throws exception

});string currentdata = new string(nodecache.getcurrentdata().getdata());

system.out.println(currentdata); // 獲取當前節點的內容

thread.sleep(1000);

client.setdata().forpath("/zookper/zk", "itke".getbytes()); // 修改節點內容

thread.sleep(1000);

client.delete().forpath("/zookper/zk"); // 刪除節點

thread.sleep(1000);

}

2、pathchildrencache用於監聽制定的zookeeper資料節點的子節點變化情況。

Spring之事件監聽

spring的監聽事件模型應該是觀察者模式。本人專案裡的應用在process方法按日期同步某個庫的資料,在方法最後publish乙個event事件,這個事件用於後續同步過來的資料處理。事件處理採用了spring的監聽模型.這樣可以做到process方法與event可以非同步分離執行。注 這個事件模型...

javascript之事件監聽

addeventlistener是乙個監聽事件並處理相應的函式。不囉嗦,直接上 如 js部分 body部分 注意 addeventlistener 方法,有3個引數。第乙個引數是說明監聽的事件型別 如 click,注意不要字首on 第二個引數是事件執行的函式或方法,第三個引數則指定事件是否在捕獲或冒...

javascript之事件監聽

addeventlistener是乙個監聽事件並處理相應的函式。不囉嗦,直接上 如 js部分 body部分 注意 addeventlistener 方法,有3個引數。第乙個引數是說明監聽的事件型別 如 click,注意不要字首on 第二個引數是事件執行的函式或方法,第三個引數則指定事件是否在捕獲或冒...