1 Create a Demo Class and run
import java.io.IOException;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.EventType;
import org.apache.zookeeper.ZooKeeper;
public class ZoomkeepTest2 {
// 創建一個與服務器的連接
ZooKeeper zk = null;
public ZoomkeepTest2() {
try {
zk = new ZooKeeper("127.0.0.1:2181", 500000, new WatcherImpl());
// zk.getData("/zk-demo/watch-this", true, null);
while (true) {
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 關閉連接
if (null != zk) {
try {
zk.close();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class WatcherImpl implements Watcher {
public void process(WatchedEvent event) {
System.out.println("已經觸發了" + event.getType() + "事件!");
if (event.getType().equals(EventType.NodeDataChanged)) {
try {
System.out.println(new String(zk.getData("/zk-demo/watch-this", false, null)));
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
zk.register(new WatcherImpl());
try {
zk.getData("/zk-demo/watch-this", true, null);
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
ZoomkeepTest2 zt = new ZoomkeepTest2();
}
}
2 Run “zkCli.cmd” and set node date:
set /zk-demo/watch-this data3333\\dsafsa
set /zk-demo/watch-this data3333\\dsafsa12
3 The Console will output:
已經觸發了NodeDataChanged事件!
data3333\\dsafsa
已經觸發了NodeDataChanged事件!
data3333\\dsafsa12
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>zookeeperTest</groupId>
<artifactId>com.tommy.zookeeper</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>
</dependencies>
</project>