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?

Reply via email to