2

私は 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

4

1 に答える 1