I'm using Apache Curator for service discovery, and PathChildrenCache
to listen for events when a service is added/updated/deleted.
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();
When I register a service through org.apache.curator.x.discovery.ServiceDiscovery
, I got an added event. But when I un-register a service I don't get the removed event.
How I could properly listen to service events?