import java.util.List;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
public class SpiderWatcher implements Watcher {
CuratorFramework client = null;
List<String> list1 = null;
public SpiderWatcher() {
String connectString = "192.168.14.139:2181";
int sessionTimeoutMs = 30000;
int connectionTimeoutMs = 30000;
RetryPolicy retryPolicy = new ExponentialBackoffRetry(5000, 3);
client = CuratorFrameworkFactory.newClient(connectString, sessionTimeoutMs, connectionTimeoutMs, retryPolicy);
client.start();
try {
list1 = client.getChildren().usingWatcher(this).forPath("/dddd");
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void process(WatchedEvent arg0) {
try {
List<String> list2 = client.getChildren().usingWatcher(this).forPath("/dddd");
for (String znode : list1) {
if (!list2.contains(znode)) {
System.out.println("删除");
}
}
for (String znode : list2) {
if (!list1.contains(znode)) {
System.out.println("新增");
}
}
list1 = list2;
} catch (Exception e) {
e.printStackTrace();
}
}
public void stayAlive() {
for (;;) {
}
}
public static void main(String[] args) throws Exception {
SpiderWatcher spiderWatcher = new SpiderWatcher();
spiderWatcher.stayAlive();
}
}