zookeeper

java 客户端 zkclient 监听子节点变化

  final ZkClient zkClient = new ZkClient(new ZkConnection("10.6.5.214:2182",3000));

  if (zkClient  != null) {

    zkClient.subscribeChildChanges(zkListenerPath,new IZkChildListener(){

      @Override

      public void handleChildChange(String parentPath, List<String> currentChilds) throws Exception {

        for (String str : currentChilds){

          Objetc object = zkClientread.readData(parentPath + "/" + str)

          ...

        }

      }

    }); 

  }

测试类:

  ZkClient zkClient = new ZkClient(new ZkConnection("10.6.5.214:2182",3000));

  zkClient.createEphemeral(parentPath + "/" + str,data);

  Thread.sleep(Integer.MAX_VALUE);

报错:

  1、invalid stream header  createEphemeral()没有加data

坑:

  zkclient会对数据序列化。。。

  需要自己序列化重写 不能用默认的序列化

  需要开启一个线程来监听。。。

  

原文地址:https://www.cnblogs.com/stanljj/p/6947349.html