【发布时间】:2015-04-21 18:00:01
【问题描述】:
我使用 Apache Curator 进行服务发现,并使用 PathChildrenCache 在添加/更新/删除服务时监听事件。
PathChildrenCache pathCache = new PathChildrenCache(client, "/directory", true);
pathCache.getListenable().addListener(new PathChildrenCacheListener() {
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
if(event.getType() == PathChildrenCacheEvent.Type.CHILD_ADDED) {
System.out.println("Added");
}else if(event.getType() == PathChildrenCacheEvent.Type.CHILD_UPDATED) {
System.out.println("Updated");
}else if(event.getType() == PathChildrenCacheEvent.Type.CHILD_REMOVED) {
System.out.println("Removed");
}
}
}
pathCache.start();
当我通过org.apache.curator.x.discovery.ServiceDiscovery 注册服务时,我得到了一个附加事件。但是当我取消注册服务时,我没有收到删除的事件。
如何正确监听服务事件?
【问题讨论】:
标签: java listener apache-zookeeper service-discovery apache-curator