@Override
	public Flux<String> getServices() {
		return Flux.defer(() -> {
			try {
				return Flux.fromIterable(polarisServiceDiscovery.getServices());
			}
			catch (Exception e) {
				LOGGER.error("get services from polaris server fail,", e);
				return Flux.empty();
			}
		}).subscribeOn(Schedulers.boundedElastic());
	}
@Test
	public void testGetServices() throws PolarisException {

		when(serviceDiscovery.getServices()).thenAnswer(invocation -> {
			if (count == 0) {
				count++;
				return Arrays.asList(SERVICE_PROVIDER + 1, SERVICE_PROVIDER + 2);
			}
			else {
				throw new PolarisException(ErrorCode.UNKNOWN_SERVER_ERROR);
			}
		});

		// Normal
		Flux<String> services = this.client.getServices();
		StepVerifier.create(services).expectNext(SERVICE_PROVIDER + 1, SERVICE_PROVIDER + 2).expectComplete().verify();

		// PolarisException
		services = this.client.getServices();
		StepVerifier.create(services).expectNextCount(0).expectComplete().verify();
	}