|
|
@ -39,8 +39,36 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public class LoadBalancerUtils {
|
|
|
|
public class LoadBalancerUtils {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static final int DEFAULT_WEIGHT = 100;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* transfer servers to ServiceInstances
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param servers servers
|
|
|
|
|
|
|
|
* @return ServiceInstances
|
|
|
|
|
|
|
|
*/
|
|
|
|
public static ServiceInstances transferServersToServiceInstances(Flux<List<ServiceInstance>> servers) {
|
|
|
|
public static ServiceInstances transferServersToServiceInstances(Flux<List<ServiceInstance>> servers) {
|
|
|
|
List<Instance> instances = servers.toStream().flatMap(List::stream).map(serviceInstance -> {
|
|
|
|
List<Instance> instances = servers.toStream()
|
|
|
|
|
|
|
|
.flatMap(List::stream)
|
|
|
|
|
|
|
|
.map(LoadBalancerUtils::transferServerToServiceInstance)
|
|
|
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
String serviceName = null;
|
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(instances)) {
|
|
|
|
|
|
|
|
serviceName = instances.get(0).getService();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ServiceKey serviceKey = new ServiceKey(MetadataContext.LOCAL_NAMESPACE, serviceName);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new DefaultServiceInstances(serviceKey, instances);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* transfer ServiceInstance to DefaultInstance
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param serviceInstance serviceInstance
|
|
|
|
|
|
|
|
* @return defaultInstance
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static DefaultInstance transferServerToServiceInstance(ServiceInstance serviceInstance) {
|
|
|
|
DefaultInstance instance = new DefaultInstance();
|
|
|
|
DefaultInstance instance = new DefaultInstance();
|
|
|
|
instance.setNamespace(MetadataContext.LOCAL_NAMESPACE);
|
|
|
|
instance.setNamespace(MetadataContext.LOCAL_NAMESPACE);
|
|
|
|
instance.setService(serviceInstance.getServiceId());
|
|
|
|
instance.setService(serviceInstance.getServiceId());
|
|
|
@ -48,18 +76,9 @@ public class LoadBalancerUtils {
|
|
|
|
instance.setId(serviceInstance.getInstanceId());
|
|
|
|
instance.setId(serviceInstance.getInstanceId());
|
|
|
|
instance.setHost(serviceInstance.getHost());
|
|
|
|
instance.setHost(serviceInstance.getHost());
|
|
|
|
instance.setPort(serviceInstance.getPort());
|
|
|
|
instance.setPort(serviceInstance.getPort());
|
|
|
|
instance.setWeight(100);
|
|
|
|
instance.setWeight(DEFAULT_WEIGHT);
|
|
|
|
instance.setMetadata(serviceInstance.getMetadata());
|
|
|
|
instance.setMetadata(serviceInstance.getMetadata());
|
|
|
|
return instance;
|
|
|
|
return instance;
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String serviceName = null;
|
|
|
|
|
|
|
|
if (!CollectionUtils.isEmpty(instances)) {
|
|
|
|
|
|
|
|
serviceName = instances.get(0).getService();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ServiceKey serviceKey = new ServiceKey(MetadataContext.LOCAL_NAMESPACE, serviceName);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new DefaultServiceInstances(serviceKey, instances);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|