私は 2 つのアプリケーションを持っています。1 つは Zookeeper サービスに登録し、もう 1 つは登録されたサービスを一覧表示しようとしています。
ただし、それらをリストすると、サービスが見つかりません
次のようにサービスを登録しています
private ServiceDiscovery<InstanceDetails> getDiscovery() {
return ServiceDiscoveryBuilder.builder(InstanceDetails.class)
.basePath(Config.basePath)
.client(curatorFramework)
.serializer(jacksonInstanceSerializer)
.build();
}
public void advertiseAvailability() {
try {
ServiceDiscovery<InstanceDetails> discovery = getDiscovery();
discovery.start();
discovery.registerService(getInstance());
discovery.close();
System.out.println("Advertised");
} catch (Exception e) {
throw Throwables.propagate(e);
}
}
サービスを取得しようとすると、次のようになります。
public Collection<ServiceInstance<InstanceDetails>> getWorkers(String serviceName) {
Collection<ServiceInstance<InstanceDetails>> instances;
try {
instances = discovery.queryForInstances(serviceName);
} catch (Exception e) {
throw Throwables.propagate(e);
}
return instances;
}
myと「zookeeper」discovery.queryForNames()
を含む配列を返すことに注意してくださいserviceName