81,122
社区成员




public class DataChange
{
// private static final Log LOGGER = LogFactory.getLog(DataChange.class);
public static void main(String[] args) throws Exception
{
CountDownLatch countDownLatch = new CountDownLatch(1);
ZooKeeper zkeeper = new ZooKeeper("localhost", 1000, new Watcher()
{
@Override
public void process(WatchedEvent event)
{
if (event.getState() == KeeperState.Disconnected)
{
countDownLatch.countDown();
}
}
});
dataChange(zkeeper);
countDownLatch.await();
zkeeper.close();
}
private static void dataChange(ZooKeeper zkeeper) throws KeeperException, InterruptedException
{
if (null != zkeeper.exists("/root/child", true))
{
zkeeper.getData("/root/child", new Watcher()
{
@Override
public void process(WatchedEvent event)
{
System.out.println("data change : " + event);
try
{
dataChange(zkeeper);
} catch (KeeperException e)
{
e.printStackTrace();
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
}, null);
}
}
}