fix instance's weight hard code to 100 bug (#802)

pull/814/head
lepdou 2 years ago committed by GitHub
parent b9b057dcef
commit 4512dc5dcf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -25,3 +25,4 @@
- [Standardize the name of method to create bean.](https://github.com/Tencent/spring-cloud-tencent/pull/779) - [Standardize the name of method to create bean.](https://github.com/Tencent/spring-cloud-tencent/pull/779)
- [set reporter.enabled default to true](https://github.com/Tencent/spring-cloud-tencent/pull/784) - [set reporter.enabled default to true](https://github.com/Tencent/spring-cloud-tencent/pull/784)
- [fix:fix nacos enabled condition bugs.](https://github.com/Tencent/spring-cloud-tencent/pull/793) - [fix:fix nacos enabled condition bugs.](https://github.com/Tencent/spring-cloud-tencent/pull/793)
- [fix:fix instance's weight hard code to 100 bug.](https://github.com/Tencent/spring-cloud-tencent/pull/802)

@ -47,7 +47,6 @@ import org.springframework.util.CollectionUtils;
public final class LoadBalancerUtils { public final class LoadBalancerUtils {
private static final Logger LOGGER = LoggerFactory.getLogger(LoadBalancerUtils.class); private static final Logger LOGGER = LoggerFactory.getLogger(LoadBalancerUtils.class);
private static final int DEFAULT_WEIGHT = 100;
private static final int WAIT_TIME = 3; private static final int WAIT_TIME = 3;
private LoadBalancerUtils() { private LoadBalancerUtils() {
@ -104,7 +103,6 @@ public final 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(DEFAULT_WEIGHT);
instance.setMetadata(serviceInstance.getMetadata()); instance.setMetadata(serviceInstance.getMetadata());
if (serviceInstance instanceof PolarisServiceInstance) { if (serviceInstance instanceof PolarisServiceInstance) {
@ -112,6 +110,8 @@ public final class LoadBalancerUtils {
instance.setRegion(polarisServiceInstance.getPolarisInstance().getRegion()); instance.setRegion(polarisServiceInstance.getPolarisInstance().getRegion());
instance.setZone(polarisServiceInstance.getPolarisInstance().getZone()); instance.setZone(polarisServiceInstance.getPolarisInstance().getZone());
instance.setCampus(polarisServiceInstance.getPolarisInstance().getCampus()); instance.setCampus(polarisServiceInstance.getPolarisInstance().getCampus());
instance.setWeight(polarisServiceInstance.getPolarisInstance().getWeight());
} }
return instance; return instance;

@ -23,7 +23,9 @@ import java.util.List;
import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.metadata.MetadataContextHolder; import com.tencent.cloud.common.metadata.MetadataContextHolder;
import com.tencent.cloud.common.pojo.PolarisServiceInstance;
import com.tencent.cloud.common.util.ApplicationContextAwareUtils; 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.Instance;
import com.tencent.polaris.api.pojo.ServiceInstances; import com.tencent.polaris.api.pojo.ServiceInstances;
import org.junit.AfterClass; import org.junit.AfterClass;
@ -36,7 +38,6 @@ import org.mockito.Mockito;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import org.springframework.cloud.client.DefaultServiceInstance;
import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.ServiceInstance;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
@ -49,7 +50,7 @@ import static org.mockito.ArgumentMatchers.anyString;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
public class LoadBalancerUtilsTest { public class LoadBalancerUtilsTest {
private static final String TEST_NAMESPACE_AND_SERVICE = "testNamespaceAndService"; private static final String testNamespaceAndService = "testNamespaceAndService";
private static MockedStatic<ApplicationContextAwareUtils> mockedApplicationContextAwareUtils; private static MockedStatic<ApplicationContextAwareUtils> mockedApplicationContextAwareUtils;
private static MockedStatic<MetadataContextHolder> mockedMetadataContextHolder; private static MockedStatic<MetadataContextHolder> mockedMetadataContextHolder;
@ -57,7 +58,7 @@ public class LoadBalancerUtilsTest {
public static void beforeClass() { public static void beforeClass() {
mockedApplicationContextAwareUtils = Mockito.mockStatic(ApplicationContextAwareUtils.class); mockedApplicationContextAwareUtils = Mockito.mockStatic(ApplicationContextAwareUtils.class);
mockedApplicationContextAwareUtils.when(() -> ApplicationContextAwareUtils.getProperties(anyString())) mockedApplicationContextAwareUtils.when(() -> ApplicationContextAwareUtils.getProperties(anyString()))
.thenReturn(TEST_NAMESPACE_AND_SERVICE); .thenReturn(testNamespaceAndService);
MetadataContext metadataContext = Mockito.mock(MetadataContext.class); MetadataContext metadataContext = Mockito.mock(MetadataContext.class);
mockedMetadataContextHolder = Mockito.mockStatic(MetadataContextHolder.class); mockedMetadataContextHolder = Mockito.mockStatic(MetadataContextHolder.class);
@ -80,11 +81,17 @@ public class LoadBalancerUtilsTest {
@Test @Test
public void testTransferNotEmptyInstances() { public void testTransferNotEmptyInstances() {
int instanceSize = 100; int instanceSize = 100;
int weight = 50;
List<ServiceInstance> instances = new ArrayList<>(); List<ServiceInstance> instances = new ArrayList<>();
for (int i = 0; i < instanceSize; i++) { for (int i = 0; i < instanceSize; i++) {
instances.add(new DefaultServiceInstance("ins" + i, TEST_NAMESPACE_AND_SERVICE, "127.0.0." + i, DefaultInstance instance = new DefaultInstance();
8080, false)); 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)); ServiceInstances serviceInstances = LoadBalancerUtils.transferServersToServiceInstances(Flux.just(instances));
@ -95,12 +102,12 @@ public class LoadBalancerUtilsTest {
List<Instance> polarisInstances = serviceInstances.getInstances(); List<Instance> polarisInstances = serviceInstances.getInstances();
for (int i = 0; i < instanceSize; i++) { for (int i = 0; i < instanceSize; i++) {
Instance instance = polarisInstances.get(i); Instance instance = polarisInstances.get(i);
Assert.assertEquals(TEST_NAMESPACE_AND_SERVICE, instance.getNamespace()); Assert.assertEquals(testNamespaceAndService, instance.getNamespace());
Assert.assertEquals(TEST_NAMESPACE_AND_SERVICE, instance.getService()); Assert.assertEquals(testNamespaceAndService, instance.getService());
Assert.assertEquals("ins" + i, instance.getId()); Assert.assertEquals("ins" + i, instance.getId());
Assert.assertEquals("127.0.0." + i, instance.getHost()); Assert.assertEquals("127.0.0." + i, instance.getHost());
Assert.assertEquals(8080, instance.getPort()); Assert.assertEquals(8080, instance.getPort());
Assert.assertEquals(100, instance.getWeight()); Assert.assertEquals(weight, instance.getWeight());
} }
} }
} }

Loading…
Cancel
Save