package tju.zk;
import java.util.concurrent.CountDownLatch;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.Watcher.Event.EventType;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.data.Stat;
public class ZookeeperProSync implements Watcher {
private static CountDownLatch connectedSemaphore=new CountDownLatch(1);
private static ZooKeeper zk=null;
private static Stat stat=new Stat();
public static void main(String[] args) throws Exception
{
String path="/test/halu";
zk=new ZooKeeper("127.0.0.1:2181",5000,new ZookeeperProSync());
connectedSemaphore.await();
System.out.println(new String(zk.getData(path, true, stat)));
Thread.sleep(Integer.MAX_VALUE);
}
public void process(WatchedEvent event) {
if (event.getState() == KeeperState.SyncConnected)
{
if(EventType.None==event.getType()&&null==event.getPath())
{
System.out.println("connected");
connectedSemaphore.countDown();
}
if(event.getType()==EventType.NodeDataChanged)
{
System.out.println("value changed!");
try {
System.out.println(new String(zk.getData(event.getPath(), true,stat)));
} catch (Exception e)
{
e.printStackTrace();
}
}
}
}
}
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.12</version>
</dependency>
ZooKeeper: 监听通知机制
最新推荐文章于 2024-01-28 14:30:01 发布