サービスの検出に 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
、イベントが追加されました。しかし、サービスの登録を解除すると、削除されたイベントが発生しません。
サービス イベントを正しくリッスンするにはどうすればよいですか?