polaris load balancer: 提取负载均衡器公共抽象基类,实现加权轮训负载均衡

优化 code style

--issue=968
pull/1062/head
veteranchen 2 years ago
parent dc9129c518
commit 658276e14c

@ -17,6 +17,9 @@
package com.tencent.cloud.polaris.loadbalancer;
import java.util.List;
import java.util.stream.Collectors;
import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.pojo.PolarisServiceInstance;
import com.tencent.polaris.api.pojo.DefaultServiceInstances;
@ -28,6 +31,8 @@ import com.tencent.polaris.router.api.rpc.ProcessLoadBalanceRequest;
import com.tencent.polaris.router.api.rpc.ProcessLoadBalanceResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import reactor.core.publisher.Mono;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.DefaultResponse;
@ -37,10 +42,6 @@ import org.springframework.cloud.client.loadbalancer.Response;
import org.springframework.cloud.loadbalancer.core.NoopServiceInstanceListSupplier;
import org.springframework.cloud.loadbalancer.core.ReactorServiceInstanceLoadBalancer;
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import reactor.core.publisher.Mono;
import java.util.List;
import java.util.stream.Collectors;
/**
* Abstract Loadbalancer of Polaris.
@ -88,7 +89,8 @@ public abstract class PolarisAbstractLoadBalancer implements ReactorServiceInsta
try {
ProcessLoadBalanceResponse response = routerAPI.processLoadBalance(req);
return new DefaultResponse(new PolarisServiceInstance(response.getTargetInstance()));
} catch (Exception e) {
}
catch (Exception e) {
log.warn("PolarisRoutingLoadbalancer error", e);
return new EmptyResponse();
}

@ -17,15 +17,16 @@
package com.tencent.cloud.polaris.loadbalancer;
import java.util.Optional;
import com.tencent.polaris.api.config.consumer.LoadBalanceConfig;
import com.tencent.polaris.api.rpc.Criteria;
import com.tencent.polaris.router.api.core.RouterAPI;
import com.tencent.polaris.router.api.rpc.ProcessLoadBalanceRequest;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import java.util.Optional;
/**
* PolarisRingHashLoadBalancer.
*
@ -38,7 +39,6 @@ public class PolarisRingHashLoadBalancer extends PolarisAbstractLoadBalancer {
ObjectProvider<ServiceInstanceListSupplier> supplierObjectProvider,
RouterAPI routerAPI) {
super(serviceId, supplierObjectProvider, routerAPI);
}
@Override
@ -50,5 +50,4 @@ public class PolarisRingHashLoadBalancer extends PolarisAbstractLoadBalancer {
req.setCriteria(criteria);
return req;
}
}

@ -21,6 +21,7 @@ import com.tencent.polaris.api.config.consumer.LoadBalanceConfig;
import com.tencent.polaris.api.rpc.Criteria;
import com.tencent.polaris.router.api.core.RouterAPI;
import com.tencent.polaris.router.api.rpc.ProcessLoadBalanceRequest;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;

@ -21,6 +21,7 @@ import com.tencent.polaris.api.config.consumer.LoadBalanceConfig;
import com.tencent.polaris.api.rpc.Criteria;
import com.tencent.polaris.router.api.core.RouterAPI;
import com.tencent.polaris.router.api.rpc.ProcessLoadBalanceRequest;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
@ -33,7 +34,6 @@ public class PolarisWeightedRoundRobinLoadBalancer extends PolarisAbstractLoadBa
public PolarisWeightedRoundRobinLoadBalancer(String serviceId, ObjectProvider<ServiceInstanceListSupplier> supplierObjectProvider, RouterAPI routerAPI) {
super(serviceId, supplierObjectProvider, routerAPI);
}
@Override
@ -42,5 +42,4 @@ public class PolarisWeightedRoundRobinLoadBalancer extends PolarisAbstractLoadBa
req.setCriteria(new Criteria());
return req;
}
}

@ -18,6 +18,9 @@
package com.tencent.cloud.polaris.loadbalancer;
import java.util.ArrayList;
import java.util.List;
import com.tencent.cloud.common.pojo.PolarisServiceInstance;
import com.tencent.cloud.common.util.ApplicationContextAwareUtils;
import com.tencent.polaris.api.pojo.Instance;
@ -32,16 +35,14 @@ import org.mockito.Mock;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.Request;
import org.springframework.cloud.client.loadbalancer.Response;
import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.util.ArrayList;
import java.util.List;
import static com.tencent.cloud.common.metadata.MetadataContext.LOCAL_NAMESPACE;
import static com.tencent.cloud.common.metadata.MetadataContext.LOCAL_SERVICE;

Loading…
Cancel
Save