事務日誌 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 順序一致性 從同乙個客戶端...