1.啟動zookeeper叢集
2.建立maven項目 pom.xml導入依賴
<!-- zookeeper依賴-->
<dependencies>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
</dependencies>
3.ZkTest
一:zookeeper節點添加、删除練習:
public class ZkTest {
public static void main(String[] args) {
// 參數:(IP位址 任意IP,端口号預設2181)
ZkClient zkClient=new ZkClient("192.168.43.112");
// 持久化節點隻能建立一次 path不能重複,可以使用其他節點
zkClient.create("/test","hello,zookeeper",CreateMode.PERSISTENT );
// 添加節點 zkClient.delete("/test");
System.out.println("建立:"+zkClient.readData("/test"));
//删除節點
// System.out.println("輸出:"+zkClient.getCreationTime("/test"));
}
}
添加節點和删除節點的運作結果如下:
注意!端口号預設存在,可以寫,可以不寫,但是添加端口号容易出現一下錯誤
public class ZkTest {
public static void main(String[] args) {
ZkClient zkClient=new ZkClient("192.168.43.112",1281);//端口号
zkClient.create("/test","hello,zookeeper",CreateMode.PERSISTENT );
System.out.println("建立:"+zkClient.readData("/test"));
}
}
二:zookeeper監聽機制:
public class ZkTest {
public static void main(String[] args) throws InterruptedException {
// 參數:(IP位址,端口号預設2181)
ZkClient zkClient=new ZkClient("192.168.43.111");
zkClient.create("/test4","hello,zookeeper",CreateMode.PERSISTENT);
//監聽 (節點,監聽器)
zkClient.subscribeDataChanges("/test4", new IZkDataListener() {
//處理資料變化 參數:節點路徑,節點對應的資料
public void handleDataChange(String s, Object o) throws Exception {
System.out.println("監聽到"+s+"資料修改,新值是:"+o.toString());
}
//處理資料删除
public void handleDataDeleted(String s) throws Exception {
System.out.println("監聽到資料被删除,新值是:"+s);
}
});
Thread.sleep(100000000);
}
}
public class ZkTest2 {
public static void main(String[] args) {
ZkClient zkClient=new ZkClient("192.168.43.111");
//修改節點資訊
// zkClient.writeData("/test4","/新值test3");
zkClient.writeData("/test4","/新值test4");
//删除節點
zkClient.delete("/test4");
}
}
zookeeper提供了監聽和通知的機制,保證了資料的實時同步