package com.snowcattle.game.common.zookeeper.zkclient; import java.util.List; import org.I0Itec.zkclient.IZkChildListener; import org.I0Itec.zkclient.IZkDataListener; import org.I0Itec.zkclient.IZkStateListener; import org.I0Itec.zkclient.ZkClient; import org.apache.zookeeper.Watcher.Event.KeeperState; public class Listener implements Runnable{ private String path; private ZkClient zkClient = new ZkClient("192.168.0.158:2181");; public Listener(String path, org.I0Itec.zkclient.ZkClient z) { super(); this.path = path; //zkClient = z; } @Override public void run() { while (true) { try { new Thread().sleep(3000l); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } zkClient.subscribeChildChanges(path, new IZkChildListener(){ @Override public void handleChildChange(String path,List<String> list){ System.err.println("child change......1111111111"); } }); //节点数据变化 zkClient.subscribeDataChanges(path, new IZkDataListener() { @Override public void handleDataDeleted(String dataPath) throws Exception { System.err.println("data deleted......2222222222"); } @Override public void handleDataChange(String dataPath, Object data) throws Exception { System.err.println("data changed......3333333333333"); } }); //节点状态变化 zkClient.subscribeStateChanges(new IZkStateListener() { @Override public void handleStateChanged(KeeperState state) throws Exception { System.err.println("state changed......44444444"); } @Override public void handleSessionEstablishmentError(Throwable error)throws Exception { System.err.println("state chanege:"+error); } @Override public void handleNewSession() throws Exception { System.err.println("recreate data path......5555555555"); } }); } } }