public static ServiceInstances transferServersToServiceInstances(Flux<List<ServiceInstance>> servers, InstanceTransformer instanceTransformer) {
		List<Instance> instanceList = Collections.synchronizedList(new ArrayList<>());
		servers.flatMap((Function<List<ServiceInstance>, Publisher<?>>) serviceInstances ->
				Flux.fromIterable(serviceInstances.stream()
						.map(instanceTransformer::transform)
						.collect(Collectors.toList()))).subscribe(instance -> instanceList.add((Instance) instance));

		String serviceName = "";
		Map<String, String> serviceMetadata = new HashMap<>();
		if (!CollectionUtils.isEmpty(instanceList)) {
			serviceName = instanceList.get(0).getService();
			serviceMetadata = instanceList.get(0).getServiceMetadata();
		}

		ServiceKey serviceKey = new ServiceKey(MetadataContext.LOCAL_NAMESPACE, serviceName);

		return new DefaultServiceInstances(serviceKey, instanceList, serviceMetadata);
	}
@Test
	public void testTransferEmptyInstances() {
		ServiceInstances serviceInstances = RouterUtils.transferServersToServiceInstances(Flux.empty(), new PolarisInstanceTransformer());
		assertThat(serviceInstances.getInstances()).isNotNull();
		assertThat(serviceInstances.getInstances()).isEmpty();
	}