3

サービスの検出に 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、イベントが追加されました。しかし、サービスの登録を解除すると、削除されたイベントが発生しません。

サービス イベントを正しくリッスンするにはどうすればよいですか?

4

1 に答える 1