From a15e2ceaa49af626b4cd23a8ec20c7260c2d46a9 Mon Sep 17 00:00:00 2001 From: lepdou Date: Fri, 6 Jan 2023 18:00:08 +0800 Subject: [PATCH] fix instance's weight hard code to 100 bug (#801) --- CHANGELOG.md | 1 + .../polaris/loadbalancer/LoadBalancerUtils.java | 3 +-- .../loadbalancer/LoadBalancerUtilsTest.java | 15 +++++++++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20ff1fd6c..5a4bf4a74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,3 +22,4 @@ - [Fix issue: prompt no registration if web dependence was not imported.](https://github.com/Tencent/spring-cloud-tencent/pull/777) - [set reporter.enabled default to true](https://github.com/Tencent/spring-cloud-tencent/pull/786) - [fix:fix nacos enabled condition bugs.](https://github.com/Tencent/spring-cloud-tencent/pull/794) +- [fix:fix instance's weight hard code to 100 bug.](https://github.com/Tencent/spring-cloud-tencent/pull/801) diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java index 820c7a0b3..e185de784 100644 --- a/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java +++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtils.java @@ -47,7 +47,6 @@ import org.springframework.util.CollectionUtils; public final class LoadBalancerUtils { private static final Logger LOGGER = LoggerFactory.getLogger(LoadBalancerUtils.class); - private static final int DEFAULT_WEIGHT = 100; private static final int WAIT_TIME = 3; private LoadBalancerUtils() { @@ -104,7 +103,6 @@ public final class LoadBalancerUtils { instance.setId(serviceInstance.getInstanceId()); instance.setHost(serviceInstance.getHost()); instance.setPort(serviceInstance.getPort()); - instance.setWeight(DEFAULT_WEIGHT); instance.setMetadata(serviceInstance.getMetadata()); if (serviceInstance instanceof PolarisServiceInstance) { @@ -112,6 +110,7 @@ public final class LoadBalancerUtils { instance.setRegion(polarisServiceInstance.getPolarisInstance().getRegion()); instance.setZone(polarisServiceInstance.getPolarisInstance().getZone()); instance.setCampus(polarisServiceInstance.getPolarisInstance().getCampus()); + instance.setWeight(polarisServiceInstance.getPolarisInstance().getWeight()); } return instance; diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtilsTest.java b/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtilsTest.java index d4a894de3..130eec813 100644 --- a/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtilsTest.java +++ b/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/LoadBalancerUtilsTest.java @@ -23,7 +23,9 @@ import java.util.List; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; +import com.tencent.cloud.common.pojo.PolarisServiceInstance; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; +import com.tencent.polaris.api.pojo.DefaultInstance; import com.tencent.polaris.api.pojo.Instance; import com.tencent.polaris.api.pojo.ServiceInstances; import org.junit.AfterClass; @@ -36,7 +38,6 @@ import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import reactor.core.publisher.Flux; -import org.springframework.cloud.client.DefaultServiceInstance; import org.springframework.cloud.client.ServiceInstance; import static org.mockito.ArgumentMatchers.anyString; @@ -80,11 +81,17 @@ public class LoadBalancerUtilsTest { @Test public void testTransferNotEmptyInstances() { int instanceSize = 100; + int weight = 50; List instances = new ArrayList<>(); for (int i = 0; i < instanceSize; i++) { - instances.add(new DefaultServiceInstance("ins" + i, testNamespaceAndService, "127.0.0." + i, - 8080, false)); + DefaultInstance instance = new DefaultInstance(); + instance.setService(testNamespaceAndService); + instance.setId("ins" + i); + instance.setPort(8080); + instance.setHost("127.0.0." + i); + instance.setWeight(weight); + instances.add(new PolarisServiceInstance(instance)); } ServiceInstances serviceInstances = LoadBalancerUtils.transferServersToServiceInstances(Flux.just(instances)); @@ -100,7 +107,7 @@ public class LoadBalancerUtilsTest { Assert.assertEquals("ins" + i, instance.getId()); Assert.assertEquals("127.0.0." + i, instance.getHost()); Assert.assertEquals(8080, instance.getPort()); - Assert.assertEquals(100, instance.getWeight()); + Assert.assertEquals(weight, instance.getWeight()); } } }