@Override
    public Flux<ServiceInstance> getInstances(String serviceId) {
        return Flux.defer(() -> {
            final List<MicroServiceInstance> serverList = getRegisterCenterService().getServerList(serviceId);
            final List<ServiceInstance> result = new ArrayList<>(serverList.size());
            serverList.forEach(server -> result.add(new ServiceCombServiceInstance(server)));
            return Flux.fromIterable(result);
        }).onErrorResume(ex -> {
            LOGGER.error("Can not acquire service {} instances", serviceId, ex);
            return Flux.empty();
        }).subscribeOn(Schedulers.boundedElastic());
    }
@Test
    public void getInstances() {
        final Flux<ServiceInstance> test = client.getInstances(SERVICE_NAME);
        final List<ServiceInstance> block = test.collectList().block();
        Assert.assertNotNull(block);
        Assert.assertEquals(block.size(), INSTANCES.size());
        Assert.assertEquals(block.get(0).getServiceId(), SERVICE_NAME);
    }