1. 程式人生 > >zookeeper zkClient api 使用

zookeeper zkClient api 使用

create jar 顯示 一個 out current inter public exceptio

操作步驟:

  一、引入zkclient的jar包(maven方式)

  <dependency>

    <groupId>com.101tec</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.10</version>
  </dependency>

  二、調用相關代碼

  

package com.zookeeper.api.zkClientApi;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.I0Itec.zkclient.IZkDataListener;
import org.I0Itec.zkclient.ZkClient;

public class ZkClientApi {
	
	private final static String connectString = "192.168.194.128:2181,192.168.194.129:2181,192.168.194.130:2181";
	
	public static void main(String[] args) throws InterruptedException {
		ZkClient zkClient = new ZkClient(connectString,4000);
		//zkClient一次創建多個節點
		zkClient.createPersistent("/zkclient/zkclient1/zkclient1-1", true);
		System.out.println("創建多層節點成功");
		
		List<String> list = zkClient.getChildren("/zkclient");
		System.out.println("獲取zkclient節點下的子節點:"+list);
		
		//zkClient刪除一個節點,和原生api一樣,只能從最底層節點一個一個刪除
//		zkClient.delete("/zkclient");
		//zkClient遞歸刪除某個節點及其子節點
		zkClient.deleteRecursive("/zkclient");
		System.out.println("刪除zkclient及其下面的子節點成功\n");
		
		//利用watch機制做訂閱,使用異步操作處理節點
		zkClient.subscribeDataChanges("/node", new IZkDataListener(){
			public void handleDataChange(String arg0, Object arg1)
					throws Exception {
				System.out.println("節點名稱:"+arg0+"-->修改後的值:"+arg1);
			}

			public void handleDataDeleted(String arg0) throws Exception {
				System.out.println("刪除節點"+arg0+"成功");
			}
		});
		zkClient.createPersistent("/node","node");
		TimeUnit.SECONDS.sleep(2);
		zkClient.writeData("/node", "node1");
		TimeUnit.SECONDS.sleep(2);
		zkClient.delete("/node");
		TimeUnit.SECONDS.sleep(2);
	}
}

  三、顯示測試結果

創建多層節點成功
獲取zkclient節點下的子節點:[zkclient1]
刪除zkclient及其下面的子節點成功

節點名稱:/node-->修改後的值:node
節點名稱:/node-->修改後的值:node1
刪除節點/node成功

  

zookeeper zkClient api 使用