協調服務 Zookeeper實踐

2021-09-19 01:36:09 字數 2466 閱讀 2617

事務日誌  zoo.cfg檔案中,datadir

快照日誌

執行時日誌   bin/zookeeper.out

public class connectiondemo 

}});

countdownlatch.await();

system.out.println(zookeeper.getstate());

zookeeper.close();

} catch (ioexception e) catch (interruptedexception e) }}

public static void main(string args) throws ioexception, keeperexception, interruptedexception 

});zookeeper.create("/zk-persis-king", "0".getbytes(), zoodefs.ids.open_acl_unsafe, createmode.persistent);

thread.sleep(1000);

stat stat = new stat();

//得到當前節點的值

byte bytes = zookeeper.getdata("/zk-persis-king", null, stat);

system.out.println(new string(bytes));

//修改節點值

zookeeper.setdata("/zk-persis-king", "1".getbytes(), stat.getversion());

//得到當前節點的值

byte bytes1 = zookeeper.getdata("/zk-persis-king", null, stat);

system.out.println(new string(bytes1));

//刪除當前節點

zookeeper.delete("/zk-persis-king", stat.getversion());

zookeeper.close();

system.in.read();

}

watcher監聽機制是zookeeper中非常重要的特性,我們基於zookeeper上建立的節點,可以對這個節點繫結監聽時間,比如可以監聽節點資料變更、節點刪除、子節點狀態變更等事件,通過這個事件機制,可以基於zookeeper實現分布式鎖、集群管理等功能

watcher特性:當資料發生變化的時候,zookeeper會產生乙個watcher事件,並且會傳送到客戶端。但是客戶端只會收到依次通知。如果後續這個節點再次發生變化,那麼之前設定watcher的客戶端不會再次收到訊息。(watcher是一次性的操作)。可以通過迴圈監聽去達到永久監聽效果。

通過這三個操作來繫結事件:getdata、exists、getchildren

如何觸發事件?凡是事務型別的操作,都會出發監聽事件。create/delete/setdata

none (-1),//客戶端連線狀態發生變化的時候,會受到none事件

nodecreated (1),//建立節點的事件

nodedeleted (2),//刪除節點的事件

nodedatachanged (3),//節點資料發生變更

nodechildrenchanged (4);//子節點被建立、被刪除、會發生事件觸發

zk-persis-king(監聽事件)

zk-persis-king/child(監聽事件)

create(zk-persis-king)

nodecreated(exists/getdata)

無delete(zk-persis-king)

nodedeleted(exists/getdata)

無setdata(zk-persis-king)

nodedatachanged(exists/getdata)

無create(zk-persis-king/children)

分布式應用協調服務ZooKeeper

zookeeper是乙個開源的分布式的,為分布式應用提供協調服務的apache專案 zookeeper 檔案系統 通知機制 1 znode zookeeper資料模型的結構與linux檔案系統很像,整體上可以看作是一棵樹,樹的每個節點稱做乙個znode。每乙個znode預設能夠儲存1mb的資料,每個...

分布式協調服務Zookeeper使用教程

zookeeper 概述 zookeeper是一種分布式協調服務,用於管理大型主機。在分布式環境中協調和管理服務是乙個複雜的過程。zookeeper通過其簡單的架構和api解決了這個問題。zookeeper允許開發人員專注於核心應用程式邏輯,而不必擔心應用程式的分布式特性。zookeeper框架最初...

分布式應用程式協調服務 zookeeper

一 zookeeper簡介 zookeeper是乙個分布式服務框架,是apache hadoop 的乙個子專案,它主要是用來解決分布式應用中經常遇到的一些資料管理問題,如 統一命名服務 狀態同步服務 集群管理 分布式應用配置項的管理等。二 zookeeper的特性 2.1 順序一致性 從同乙個客戶端...