diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6fe38dc15..41f979111 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,3 +3,5 @@
- [Feature: Support custom rate limit reject response info](https://github.com/Tencent/spring-cloud-tencent/pull/128)
- [Feature: Optimize config server address](https://github.com/Tencent/spring-cloud-tencent/pull/130)
+- [Feature: Remove spring-javaformat-maven-plugin](https://github.com/Tencent/spring-cloud-tencent/pull/131)
+- [feat:refactor loadbalancer module as a basic module for router and circuit breaker.](https://github.com/Tencent/spring-cloud-tencent/pull/136)
diff --git a/README-zh.md b/README-zh.md
index 540bb9ef9..ff760c7d5 100644
--- a/README-zh.md
+++ b/README-zh.md
@@ -2,6 +2,9 @@
[![Build Status](https://github.com/Tencent/spring-cloud-tencent/actions/workflows/junit_test.yml/badge.svg)](https://github.com/Tencent/spring-cloud-tencent/actions/workflows/junit_test.yml)
[![Maven Central](https://img.shields.io/maven-central/v/com.tencent.cloud/spring-cloud-tencent?label=Maven%20Central)](https://search.maven.org/search?q=g:com.tencent.cloud%20AND%20a:spring-cloud-tencent)
+[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
+[![Percentage of issues still open](http://isitmaintained.com/badge/open/Tencent/spring-cloud-tencent.svg)](https://github.com/Tencent/spring-cloud-tencent/issues)
+[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Tencent/spring-cloud-tencent/wiki/Contributing)
[English](./README.md) | 简体中文
@@ -18,13 +21,13 @@ Spring Cloud Tencent 的核心依托腾讯开源的一站式服务发现与治
- [Polaris Github home page](https://github.com/polarismesh/polaris)
- [Polaris official website](https://polarismesh.cn/)
-Spring Cloud 腾讯提供的能力包括但不限于:
+Spring Cloud Tencent提供的能力包括但不限于:
- 服务注册和发现
- 动态配置管理
- 服务治理
- - 服务电流限制
- - 服务断路器
+ - 服务限流
+ - 服务熔断
- 服务路由
- ...
- 标签透传
@@ -79,3 +82,10 @@ Spring Cloud Tencent 所有组件都已上传到 Maven 中央仓库,只需要
## License
The spring-cloud-tencent is licensed under the BSD 3-Clause License. Copyright and license information can be found in the file [LICENSE](LICENSE)
+
+## Stargazers over time
+
+如果您对 Spring Cloud Tencent 有兴趣,请关注我们的项目~
+
+[![Stargazers over time](https://starchart.cc/Tencent/spring-cloud-tencent.svg)](https://starchart.cc/Tencent/spring-cloud-tencent)
+
diff --git a/README.md b/README.md
index 2a1490990..e7b735c3a 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,9 @@
[![Build Status](https://github.com/Tencent/spring-cloud-tencent/actions/workflows/junit_test.yml/badge.svg)](https://github.com/Tencent/spring-cloud-tencent/actions/workflows/junit_test.yml)
[![Maven Central](https://img.shields.io/maven-central/v/com.tencent.cloud/spring-cloud-tencent?label=Maven%20Central)](https://search.maven.org/search?q=g:com.tencent.cloud%20AND%20a:spring-cloud-tencent)
+[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
+[![Percentage of issues still open](http://isitmaintained.com/badge/open/Tencent/spring-cloud-tencent.svg)](https://github.com/Tencent/spring-cloud-tencent/issues)
+[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Tencent/spring-cloud-tencent/wiki/Contributing)
English | [简体中文](./README-zh.md)
@@ -77,3 +80,10 @@ For example:
## License
The spring-cloud-tencent is licensed under the BSD 3-Clause License. Copyright and license information can be found in the file [LICENSE](LICENSE)
+
+
+## Stargazers over time
+
+If you are interested in Spring Cloud Tencent, please follow our project, thank you very much.
+
+[![Stargazers over time](https://starchart.cc/Tencent/spring-cloud-tencent.svg)](https://starchart.cc/Tencent/spring-cloud-tencent)
diff --git a/pom.xml b/pom.xml
index 92b0fb7b4..e3346026b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,6 +49,7 @@
spring-cloud-tencent-examples
spring-cloud-tencent-coverage
spring-cloud-starter-tencent-polaris-config
+ spring-cloud-tencent-polaris-loadbalancer
@@ -97,6 +98,7 @@
0.8.3
3.2.0
1.2.7
+ 3.0.1
true
@@ -144,10 +146,6 @@
-
- io.spring.javaformat
- spring-javaformat-maven-plugin
-
org.apache.maven.plugins
maven-checkstyle-plugin
diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml
index a76c72d0d..c55bb3d78 100644
--- a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml
+++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml
@@ -16,7 +16,7 @@
com.tencent.cloud
- spring-cloud-tencent-polaris-context
+ spring-cloud-tencent-polaris-loadbalancer
diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerBootstrapConfiguration.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerBootstrapConfiguration.java
index 2dc681389..d0b276059 100644
--- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerBootstrapConfiguration.java
+++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerBootstrapConfiguration.java
@@ -20,7 +20,9 @@ package com.tencent.cloud.polaris.circuitbreaker;
import com.tencent.cloud.common.constant.ContextConstant;
import com.tencent.cloud.polaris.context.ConditionalOnPolarisEnabled;
import com.tencent.cloud.polaris.context.PolarisConfigModifier;
+import com.tencent.polaris.api.config.consumer.ServiceRouterConfig;
import com.tencent.polaris.factory.config.ConfigurationImpl;
+import com.tencent.polaris.plugins.router.healthy.RecoverRouterConfig;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
@@ -48,6 +50,16 @@ public class PolarisCircuitBreakerBootstrapConfiguration {
public void modify(ConfigurationImpl configuration) {
// Turn on circuitbreaker configuration
configuration.getConsumer().getCircuitBreaker().setEnable(true);
+
+ // Set excludeCircuitBreakInstances to false
+ RecoverRouterConfig recoverRouterConfig = configuration.getConsumer().getServiceRouter()
+ .getPluginConfig(ServiceRouterConfig.DEFAULT_ROUTER_RECOVER, RecoverRouterConfig.class);
+
+ recoverRouterConfig.setExcludeCircuitBreakInstances(true);
+
+ // Update modified config to source properties
+ configuration.getConsumer().getServiceRouter()
+ .setPluginConfig(ServiceRouterConfig.DEFAULT_ROUTER_RECOVER, recoverRouterConfig);
}
@Override
diff --git a/spring-cloud-starter-tencent-polaris-discovery/pom.xml b/spring-cloud-starter-tencent-polaris-discovery/pom.xml
index 71ae069b1..56095e975 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/pom.xml
+++ b/spring-cloud-starter-tencent-polaris-discovery/pom.xml
@@ -17,7 +17,7 @@
com.tencent.cloud
- spring-cloud-tencent-polaris-context
+ spring-cloud-tencent-polaris-loadbalancer
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryConfigModifier.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryConfigModifier.java
new file mode 100644
index 000000000..a52a6dd4b
--- /dev/null
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryConfigModifier.java
@@ -0,0 +1,50 @@
+/*
+ * Tencent is pleased to support the open source community by making Spring Cloud Tencent available.
+ *
+ * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
+ *
+ * Licensed under the BSD 3-Clause License (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://opensource.org/licenses/BSD-3-Clause
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed
+ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+ * CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ *
+ */
+
+package com.tencent.cloud.polaris;
+
+import com.tencent.cloud.common.constant.ContextConstant;
+import com.tencent.cloud.polaris.context.PolarisConfigModifier;
+import com.tencent.polaris.api.config.consumer.ServiceRouterConfig;
+import com.tencent.polaris.factory.config.ConfigurationImpl;
+import com.tencent.polaris.plugins.router.healthy.RecoverRouterConfig;
+
+/**
+ * Spring Cloud Tencent config Override polaris config.
+ *
+ *@author lepdou 2022-04-24
+ */
+public class DiscoveryConfigModifier implements PolarisConfigModifier {
+
+ @Override
+ public void modify(ConfigurationImpl configuration) {
+ // Set excludeCircuitBreakInstances to false
+ RecoverRouterConfig recoverRouterConfig = configuration.getConsumer().getServiceRouter()
+ .getPluginConfig(ServiceRouterConfig.DEFAULT_ROUTER_RECOVER, RecoverRouterConfig.class);
+ recoverRouterConfig.setExcludeCircuitBreakInstances(false);
+
+ // Update modified config to source properties
+ configuration.getConsumer().getServiceRouter()
+ .setPluginConfig(ServiceRouterConfig.DEFAULT_ROUTER_RECOVER, recoverRouterConfig);
+ }
+
+ @Override
+ public int getOrder() {
+ return ContextConstant.ModifierOrder.DISCOVERY_ORDER;
+ }
+}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java
index 805a7f47d..21ad954c1 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/DiscoveryPropertiesAutoConfiguration.java
@@ -74,6 +74,11 @@ public class DiscoveryPropertiesAutoConfiguration {
return new PolarisDiscoveryHandler();
}
+ @Bean
+ public DiscoveryConfigModifier discoveryConfigModifier() {
+ return new DiscoveryConfigModifier();
+ }
+
@PostConstruct
public void init() {
if (null != polarisDiscoveryProperties) {
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryHandler.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryHandler.java
index fd8b878e2..951c99f76 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryHandler.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisDiscoveryHandler.java
@@ -28,6 +28,7 @@ import com.tencent.polaris.api.core.ConsumerAPI;
import com.tencent.polaris.api.core.ProviderAPI;
import com.tencent.polaris.api.pojo.ServiceInfo;
import com.tencent.polaris.api.rpc.GetAllInstancesRequest;
+import com.tencent.polaris.api.rpc.GetHealthyInstancesRequest;
import com.tencent.polaris.api.rpc.GetInstancesRequest;
import com.tencent.polaris.api.rpc.GetServicesRequest;
import com.tencent.polaris.api.rpc.InstancesResponse;
@@ -59,6 +60,7 @@ public class PolarisDiscoveryHandler {
* @param service service name
* @return list of instances
*/
+ @Deprecated
public InstancesResponse getFilteredInstances(String service) {
String namespace = polarisDiscoveryProperties.getNamespace();
GetInstancesRequest getInstancesRequest = new GetInstancesRequest();
@@ -82,6 +84,19 @@ public class PolarisDiscoveryHandler {
return polarisConsumer.getInstances(getInstancesRequest);
}
+ /**
+ * Get a list of healthy instances.
+ * @param service service name
+ * @return list of healthy instances
+ */
+ public InstancesResponse getHealthyInstances(String service) {
+ String namespace = polarisDiscoveryProperties.getNamespace();
+ GetHealthyInstancesRequest getHealthyInstancesRequest = new GetHealthyInstancesRequest();
+ getHealthyInstancesRequest.setNamespace(namespace);
+ getHealthyInstancesRequest.setService(service);
+ return polarisConsumer.getHealthyInstancesInstance(getHealthyInstancesRequest);
+ }
+
/**
* Return all instances for the given service.
* @param service serviceName
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscovery.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscovery.java
index 6f85be6c3..95387ae5c 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscovery.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/discovery/PolarisServiceDiscovery.java
@@ -50,7 +50,7 @@ public class PolarisServiceDiscovery {
public List getInstances(String serviceId) throws PolarisException {
List instances = new ArrayList<>();
InstancesResponse filteredInstances = polarisDiscoveryHandler
- .getFilteredInstances(serviceId);
+ .getHealthyInstances(serviceId);
ServiceInstances serviceInstances = filteredInstances.toServiceInstances();
for (Instance instance : serviceInstances.getInstances()) {
instances.add(new PolarisServiceInstance(instance));
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisServerList.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisServerList.java
index 866cdcf1d..71833fde9 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisServerList.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/ribbon/PolarisServerList.java
@@ -57,7 +57,7 @@ public class PolarisServerList extends AbstractServerList {
private List getServers() {
InstancesResponse allInstances = polarisDiscoveryHandler
- .getFilteredInstances(serviceId);
+ .getHealthyInstances(serviceId);
ServiceInstances serviceInstances = allInstances.toServiceInstances();
List polarisServers = new ArrayList<>();
for (Instance instance : serviceInstances.getInstances()) {
diff --git a/spring-cloud-starter-tencent-polaris-router/pom.xml b/spring-cloud-starter-tencent-polaris-router/pom.xml
index 0bf38eec6..d623da7b1 100644
--- a/spring-cloud-starter-tencent-polaris-router/pom.xml
+++ b/spring-cloud-starter-tencent-polaris-router/pom.xml
@@ -17,79 +17,16 @@
com.tencent.cloud
- spring-cloud-tencent-polaris-context
+ spring-cloud-tencent-polaris-loadbalancer
-
- com.tencent.polaris
- polaris-router-factory
-
-
- com.tencent.polaris
- router-rule
-
-
- com.tencent.polaris
- router-nearby
-
-
- com.tencent.polaris
- router-metadata
-
-
- com.tencent.polaris
- router-canary
-
-
- com.tencent.polaris
- router-set
-
-
- com.tencent.polaris
- router-isolated
-
-
- com.tencent.polaris
- router-healthy
-
-
-
-
-
com.tencent.polaris
router-rule
-
-
- com.tencent.polaris
- router-nearby
-
-
-
- com.tencent.polaris
- router-metadata
-
-
-
- com.tencent.polaris
- polaris-test-common
- test
-
-
-
-
- org.springframework.cloud
- spring-cloud-starter-netflix-ribbon
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
+
+
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/package-info.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/package-info.java
new file mode 100644
index 000000000..3eb18e376
--- /dev/null
+++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/package-info.java
@@ -0,0 +1,23 @@
+/*
+ * Tencent is pleased to support the open source community by making Spring Cloud Tencent available.
+ *
+ * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
+ *
+ * Licensed under the BSD 3-Clause License (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://opensource.org/licenses/BSD-3-Clause
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed
+ * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+ * CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+
+/**
+ * Package info of router.
+ *
+ * @author Haotian Zhang
+ */
+package com.tencent.cloud.polaris.router;
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/resources/META-INF/spring.factories b/spring-cloud-starter-tencent-polaris-router/src/main/resources/META-INF/spring.factories
deleted file mode 100644
index 75c191046..000000000
--- a/spring-cloud-starter-tencent-polaris-router/src/main/resources/META-INF/spring.factories
+++ /dev/null
@@ -1,2 +0,0 @@
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- com.tencent.cloud.polaris.router.config.PolarisRibbonAutoConfiguration
diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/ContextConstant.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/ContextConstant.java
index 54f203878..71ce1e886 100644
--- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/ContextConstant.java
+++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/constant/ContextConstant.java
@@ -24,6 +24,14 @@ package com.tencent.cloud.common.constant;
*/
public final class ContextConstant {
+ /**
+ * Name of Polaris.
+ */
+ public static final String POLARIS = "POLARIS";
+
+ private ContextConstant() {
+ }
+
/**
* Order of configuration modifier.
*/
@@ -44,6 +52,11 @@ public final class ContextConstant {
*/
public static Integer CIRCUIT_BREAKER_ORDER = 1;
+ /**
+ * Order of discovery configuration modifier.
+ */
+ public static Integer DISCOVERY_ORDER = 0;
+
/**
* Order of configuration modifier.
*/
diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml
index 5f727c168..f9da2e8e0 100644
--- a/spring-cloud-tencent-dependencies/pom.xml
+++ b/spring-cloud-tencent-dependencies/pom.xml
@@ -71,14 +71,13 @@
1.4.0-Hoxton.SR9-SNAPSHOT
- 1.4.0
+ 1.5.0-SNAPSHOT
2.0.0
3.2.0
- 3.1.1
1.2.7
- 1.6
+ 3.0.1
@@ -103,6 +102,12 @@
${revision}
+
+ com.tencent.cloud
+ spring-cloud-tencent-polaris-loadbalancer
+ ${revision}
+
+
com.tencent.cloud
spring-cloud-starter-tencent-metadata-transfer
diff --git a/spring-cloud-tencent-polaris-context/pom.xml b/spring-cloud-tencent-polaris-context/pom.xml
index c3f9e2adb..6d7fda248 100644
--- a/spring-cloud-tencent-polaris-context/pom.xml
+++ b/spring-cloud-tencent-polaris-context/pom.xml
@@ -18,44 +18,44 @@
com.tencent.cloud
spring-cloud-tencent-commons
-
-
+
+
-
-
- com.tencent.polaris
- polaris-client
-
+
+
+ com.tencent.polaris
+ polaris-client
+
-
- com.tencent.polaris
- polaris-plugin-api
-
+
+ com.tencent.polaris
+ polaris-plugin-api
+
-
- com.tencent.polaris
- connector-polaris-grpc
-
+
+ com.tencent.polaris
+ connector-polaris-grpc
+
-
- com.tencent.polaris
- connector-consul
-
+
+ com.tencent.polaris
+ connector-consul
+
-
- com.tencent.polaris
- connector-composite
-
+
+ com.tencent.polaris
+ connector-composite
+
-
- com.tencent.polaris
- registry-memory
-
+
+ com.tencent.polaris
+ registry-memory
+
-
- com.tencent.polaris
- flow-cache-expired
-
+
+ com.tencent.polaris
+ flow-cache-expired
+
@@ -67,23 +67,23 @@
com.tencent.polaris
router-healthy
-
-
- com.tencent.polaris
- loadbalancer-random
-
-
- com.tencent.polaris
- loadbalancer-ringhash
-
-
+
+ com.tencent.polaris
+ loadbalancer-random
+
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
+
+ com.tencent.polaris
+ loadbalancer-ringhash
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java
index 9c69a4129..95c1c2672 100644
--- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java
+++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisContextProperties.java
@@ -74,11 +74,14 @@ public class PolarisContextProperties {
private List modifierList;
protected Configuration configuration() {
+ // 1. Read user-defined polaris.yml configuration
ConfigurationImpl configuration = (ConfigurationImpl) ConfigAPIFactory
.defaultConfig(ConfigProvider.DEFAULT_CONFIG);
- configuration.setDefault();
+
+ // 2. Override user-defined polaris.yml configuration with SCT configuration
String defaultHost = getHost();
configuration.getGlobal().getAPI().setBindIP(defaultHost);
+
Collection modifiers = modifierList;
modifiers = modifiers.stream()
.sorted(Comparator.comparingInt(PolarisConfigModifier::getOrder))
@@ -88,6 +91,7 @@ public class PolarisContextProperties {
modifier.modify(configuration);
}
}
+
return configuration;
}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/pom.xml b/spring-cloud-tencent-polaris-loadbalancer/pom.xml
new file mode 100644
index 000000000..dc64bf192
--- /dev/null
+++ b/spring-cloud-tencent-polaris-loadbalancer/pom.xml
@@ -0,0 +1,54 @@
+
+
+
+ spring-cloud-tencent
+ com.tencent.cloud
+ ${revision}
+ ../pom.xml
+
+ 4.0.0
+
+ spring-cloud-tencent-polaris-loadbalancer
+ Spring Cloud Tencent Polaris LoadBalancer
+
+
+
+
+ com.tencent.cloud
+ spring-cloud-tencent-polaris-context
+
+
+
+
+
+ com.tencent.polaris
+ polaris-router-factory
+
+
+
+ com.tencent.polaris
+ polaris-discovery-api
+
+
+
+ com.tencent.polaris
+ polaris-test-common
+ test
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-netflix-ribbon
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
\ No newline at end of file
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/PolarisRoutingLoadBalancer.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
similarity index 50%
rename from spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/PolarisRoutingLoadBalancer.java
rename to spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
index 513557c07..37ae60526 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/PolarisRoutingLoadBalancer.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/PolarisLoadBalancer.java
@@ -15,9 +15,10 @@
* specific language governing permissions and limitations under the License.
*/
-package com.tencent.cloud.polaris.router;
+package com.tencent.cloud.polaris.loadbalancer;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -28,79 +29,59 @@ import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.PollingServerListUpdater;
import com.netflix.loadbalancer.Server;
import com.netflix.loadbalancer.ServerList;
+import com.tencent.cloud.common.constant.ContextConstant;
import com.tencent.cloud.common.constant.MetadataConstant.SystemMetadataKey;
import com.tencent.cloud.common.metadata.MetadataContext;
import com.tencent.cloud.common.metadata.MetadataContextHolder;
import com.tencent.cloud.common.pojo.PolarisServer;
+import com.tencent.cloud.polaris.loadbalancer.config.PolarisLoadBalancerProperties;
+import com.tencent.polaris.api.core.ConsumerAPI;
import com.tencent.polaris.api.pojo.DefaultInstance;
import com.tencent.polaris.api.pojo.DefaultServiceInstances;
import com.tencent.polaris.api.pojo.Instance;
import com.tencent.polaris.api.pojo.ServiceInfo;
import com.tencent.polaris.api.pojo.ServiceInstances;
import com.tencent.polaris.api.pojo.ServiceKey;
+import com.tencent.polaris.api.rpc.GetAllInstancesRequest;
+import com.tencent.polaris.api.rpc.InstancesResponse;
import com.tencent.polaris.router.api.core.RouterAPI;
import com.tencent.polaris.router.api.rpc.ProcessRoutersRequest;
import com.tencent.polaris.router.api.rpc.ProcessRoutersResponse;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
-import org.springframework.util.CollectionUtils;
-
/**
* Routing load balancer of polaris.
*
* @author Haotian Zhang
*/
-public class PolarisRoutingLoadBalancer extends DynamicServerListLoadBalancer {
+public class PolarisLoadBalancer extends DynamicServerListLoadBalancer {
private final RouterAPI routerAPI;
- public PolarisRoutingLoadBalancer(IClientConfig config, IRule rule, IPing ping,
- ServerList serverList, RouterAPI routerAPI) {
+ private ConsumerAPI consumerAPI;
+
+ private PolarisLoadBalancerProperties polarisLoadBalancerProperties;
+
+ public PolarisLoadBalancer(IClientConfig config, IRule rule, IPing ping, ServerList serverList,
+ RouterAPI routerAPI, ConsumerAPI consumerAPI, PolarisLoadBalancerProperties properties) {
super(config, rule, ping, serverList, null, new PollingServerListUpdater());
this.routerAPI = routerAPI;
+ this.consumerAPI = consumerAPI;
+ this.polarisLoadBalancerProperties = properties;
}
@Override
public List getReachableServers() {
- List allServers = super.getAllServers();
- if (CollectionUtils.isEmpty(allServers)) {
- return allServers;
- }
- ServiceInstances serviceInstances = null;
- if (allServers.get(0) instanceof PolarisServer) {
- serviceInstances = ((PolarisServer) allServers.get(0)).getServiceInstances();
+ ServiceInstances serviceInstances;
+ if (polarisLoadBalancerProperties.getDiscoveryType().equals(ContextConstant.POLARIS)) {
+ serviceInstances = getPolarisDiscoveryServiceInstances();
}
else {
- String serviceName;
- // notice the difference between different service registries
- if (StringUtils.isNotBlank(
- allServers.get(0).getMetaInfo().getServiceIdForDiscovery())) {
- serviceName = allServers.get(0).getMetaInfo().getServiceIdForDiscovery();
- }
- else {
- serviceName = allServers.get(0).getMetaInfo().getAppName();
- }
- if (StringUtils.isBlank(serviceName)) {
- throw new IllegalStateException(
- "PolarisRoutingLoadBalancer only Server with AppName or ServiceIdForDiscovery attribute");
- }
- ServiceKey serviceKey = new ServiceKey(MetadataContext.LOCAL_NAMESPACE,
- serviceName);
- List instances = new ArrayList<>(8);
- for (Server server : allServers) {
- DefaultInstance instance = new DefaultInstance();
- instance.setNamespace(MetadataContext.LOCAL_NAMESPACE);
- instance.setService(serviceName);
- instance.setHealthy(server.isAlive());
- instance.setProtocol(server.getScheme());
- instance.setId(server.getId());
- instance.setHost(server.getHost());
- instance.setPort(server.getPort());
- instance.setZone(server.getZone());
- instance.setWeight(100);
- instances.add(instance);
- }
- serviceInstances = new DefaultServiceInstances(serviceKey, instances);
+ serviceInstances = getExtendDiscoveryServiceInstances();
+ }
+ if (serviceInstances == null || CollectionUtils.isEmpty(serviceInstances.getInstances())) {
+ return Collections.emptyList();
}
ProcessRoutersRequest processRoutersRequest = new ProcessRoutersRequest();
processRoutersRequest.setDstInstances(serviceInstances);
@@ -129,9 +110,73 @@ public class PolarisRoutingLoadBalancer extends DynamicServerListLoadBalancer allServers = super.getAllServers();
+ if (CollectionUtils.isEmpty(allServers)) {
+ return null;
+ }
+ serviceName = ((PolarisServer) super.getAllServers().get(0)).getServiceInstances().getService();
+ }
+ return getAllInstances(MetadataContext.LOCAL_NAMESPACE, serviceName).toServiceInstances();
+ }
+
+ private ServiceInstances getExtendDiscoveryServiceInstances() {
+ List allServers = super.getAllServers();
+ if (CollectionUtils.isEmpty(allServers)) {
+ return null;
+ }
+ ServiceInstances serviceInstances;
+ String serviceName;
+ // notice the difference between different service registries
+ if (StringUtils.isNotBlank(
+ allServers.get(0).getMetaInfo().getServiceIdForDiscovery())) {
+ serviceName = allServers.get(0).getMetaInfo().getServiceIdForDiscovery();
+ }
+ else {
+ serviceName = allServers.get(0).getMetaInfo().getAppName();
+ }
+ if (StringUtils.isBlank(serviceName)) {
+ throw new IllegalStateException(
+ "PolarisLoadBalancer only Server with AppName or ServiceIdForDiscovery attribute");
+ }
+ ServiceKey serviceKey = new ServiceKey(MetadataContext.LOCAL_NAMESPACE,
+ serviceName);
+ List instances = new ArrayList<>(8);
+ for (Server server : allServers) {
+ DefaultInstance instance = new DefaultInstance();
+ instance.setNamespace(MetadataContext.LOCAL_NAMESPACE);
+ instance.setService(serviceName);
+ instance.setHealthy(server.isAlive());
+ instance.setProtocol(server.getScheme());
+ instance.setId(server.getId());
+ instance.setHost(server.getHost());
+ instance.setPort(server.getPort());
+ instance.setZone(server.getZone());
+ instance.setWeight(100);
+ instances.add(instance);
+ }
+ serviceInstances = new DefaultServiceInstances(serviceKey, instances);
+ return serviceInstances;
+ }
+
@Override
public List getAllServers() {
return getReachableServers();
}
+ /**
+ * Get a list of instances.
+ * @param namespace namespace
+ * @param serviceName service name
+ * @return list of instances
+ */
+ public InstancesResponse getAllInstances(String namespace, String serviceName) {
+ GetAllInstancesRequest request = new GetAllInstancesRequest();
+ request.setNamespace(namespace);
+ request.setService(serviceName);
+ return consumerAPI.getAllInstance(request);
+ }
+
}
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java
similarity index 89%
rename from spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java
rename to spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java
index 3edfa7df3..0b8b0583c 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfiguration.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfiguration.java
@@ -15,7 +15,7 @@
* specific language governing permissions and limitations under the License.
*/
-package com.tencent.cloud.polaris.router.config;
+package com.tencent.cloud.polaris.loadbalancer.config;
import com.tencent.cloud.polaris.context.ConditionalOnPolarisEnabled;
import com.tencent.polaris.api.exception.PolarisException;
@@ -40,16 +40,15 @@ import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties
@ConditionalOnPolarisEnabled
-@ConditionalOnProperty(value = "spring.cloud.polaris.loadbalancer.enabled",
- matchIfMissing = true)
+@ConditionalOnProperty(value = "spring.cloud.polaris.loadbalancer.enabled", matchIfMissing = true)
@AutoConfigureAfter(RibbonAutoConfiguration.class)
@RibbonClients(defaultConfiguration = PolarisRibbonClientConfiguration.class)
-public class PolarisRibbonAutoConfiguration {
+public class PolarisLoadBalancerAutoConfiguration {
@Bean
@ConditionalOnMissingBean
- public PolarisRibbonProperties polarisRibbonProperties() {
- return new PolarisRibbonProperties();
+ public PolarisLoadBalancerProperties polarisLoadBalancerProperties() {
+ return new PolarisLoadBalancerProperties();
}
@Bean(name = "polarisRoute")
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonProperties.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java
similarity index 59%
rename from spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonProperties.java
rename to spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java
index db5e14fdd..22760e463 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonProperties.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerProperties.java
@@ -15,30 +15,34 @@
* specific language governing permissions and limitations under the License.
*/
-package com.tencent.cloud.polaris.router.config;
+package com.tencent.cloud.polaris.loadbalancer.config;
+
+import com.tencent.cloud.common.constant.ContextConstant;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
- * Properties of Ribbon.
+ * Properties of Polaris loadbalancer.
*
* @author Haotian Zhang
*/
-@ConfigurationProperties("spring.cloud.polaris.ribbon")
-public class PolarisRibbonProperties {
+@ConfigurationProperties("spring.cloud.polaris.loadbalancer")
+public class PolarisLoadBalancerProperties {
/**
* If load-balance enabled.
*/
- @Value("${spring.cloud.polaris.discovery.loadbalancer.enabled:#{true}}")
- private Boolean loadbalancerEnabled;
+ private Boolean enabled = true;
/**
* Load balance strategy.
*/
- @Value("${spring.cloud.polaris.loadbalancer.strategy:#{'weightedRandom'}}")
- private String strategy;
+ private String strategy = "weightedRandom";
+
+ /**
+ * Type of discovery server.
+ */
+ private String discoveryType = ContextConstant.POLARIS;
public String getStrategy() {
return strategy;
@@ -48,17 +52,25 @@ public class PolarisRibbonProperties {
this.strategy = strategy;
}
- public Boolean getLoadbalancerEnabled() {
- return loadbalancerEnabled;
+ public Boolean getEnabled() {
+ return enabled;
+ }
+
+ public void setEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ public String getDiscoveryType() {
+ return discoveryType;
}
- public void setLoadbalancerEnabled(Boolean loadbalancerEnabled) {
- this.loadbalancerEnabled = loadbalancerEnabled;
+ public void setDiscoveryType(String discoveryType) {
+ this.discoveryType = discoveryType;
}
@Override
public String toString() {
- return "PolarisRibbonProperties{" + "loadbalancerEnabled=" + loadbalancerEnabled
+ return "PolarisLoadBalancerProperties{" + "loadbalancerEnabled=" + enabled
+ ", strategy='" + strategy + '\'' + '}';
}
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonClientConfiguration.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRibbonClientConfiguration.java
similarity index 64%
rename from spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonClientConfiguration.java
rename to spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRibbonClientConfiguration.java
index 6fa1dc51b..3e84ed57f 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/PolarisRibbonClientConfiguration.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisRibbonClientConfiguration.java
@@ -15,7 +15,7 @@
* specific language governing permissions and limitations under the License.
*/
-package com.tencent.cloud.polaris.router.config;
+package com.tencent.cloud.polaris.loadbalancer.config;
import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.ILoadBalancer;
@@ -23,9 +23,10 @@ import com.netflix.loadbalancer.IPing;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.Server;
import com.netflix.loadbalancer.ServerList;
-import com.tencent.cloud.polaris.router.PolarisRoutingLoadBalancer;
-import com.tencent.cloud.polaris.router.rule.PolarisLoadBalanceRule;
-import com.tencent.cloud.polaris.router.rule.PolarisWeightedRandomRule;
+import com.tencent.cloud.polaris.loadbalancer.PolarisLoadBalancer;
+import com.tencent.cloud.polaris.loadbalancer.rule.PolarisLoadBalanceRule;
+import com.tencent.cloud.polaris.loadbalancer.rule.PolarisWeightedRandomRule;
+import com.tencent.polaris.api.core.ConsumerAPI;
import com.tencent.polaris.router.api.core.RouterAPI;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -42,9 +43,10 @@ public class PolarisRibbonClientConfiguration {
@Bean
@ConditionalOnMissingBean
- public IRule polarisRibbonRule(PolarisRibbonProperties polarisRibbonProperties) {
+ public IRule polarisRibbonRule(
+ PolarisLoadBalancerProperties polarisLoadBalancerProperties) {
switch (PolarisLoadBalanceRule
- .fromStrategy(polarisRibbonProperties.getStrategy())) {
+ .fromStrategy(polarisLoadBalancerProperties.getStrategy())) {
case WEIGHTED_RANDOM_RULE:
default:
return new PolarisWeightedRandomRule();
@@ -53,11 +55,11 @@ public class PolarisRibbonClientConfiguration {
@Bean
@ConditionalOnMissingBean
- public ILoadBalancer polarisRoutingLoadBalancer(IClientConfig iClientConfig,
- IRule iRule, IPing iPing, ServerList serverList,
- RouterAPI polarisRouter) {
- return new PolarisRoutingLoadBalancer(iClientConfig, iRule, iPing, serverList,
- polarisRouter);
+ public ILoadBalancer polarisLoadBalancer(IClientConfig iClientConfig, IRule iRule,
+ IPing iPing, ServerList serverList, RouterAPI polarisRouter,
+ ConsumerAPI consumerAPI, PolarisLoadBalancerProperties polarisLoadBalancerProperties) {
+ return new PolarisLoadBalancer(iClientConfig, iRule, iPing, serverList,
+ polarisRouter, consumerAPI, polarisLoadBalancerProperties);
}
}
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/rule/PolarisLoadBalanceRule.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/rule/PolarisLoadBalanceRule.java
similarity index 96%
rename from spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/rule/PolarisLoadBalanceRule.java
rename to spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/rule/PolarisLoadBalanceRule.java
index b95f35197..4831e76e6 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/rule/PolarisLoadBalanceRule.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/rule/PolarisLoadBalanceRule.java
@@ -15,7 +15,7 @@
* specific language governing permissions and limitations under the License.
*/
-package com.tencent.cloud.polaris.router.rule;
+package com.tencent.cloud.polaris.loadbalancer.rule;
import java.util.Arrays;
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/rule/PolarisWeightedRandomRule.java b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/rule/PolarisWeightedRandomRule.java
similarity index 98%
rename from spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/rule/PolarisWeightedRandomRule.java
rename to spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/rule/PolarisWeightedRandomRule.java
index e65b0a2ea..055f4bab3 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/rule/PolarisWeightedRandomRule.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/java/com/tencent/cloud/polaris/loadbalancer/rule/PolarisWeightedRandomRule.java
@@ -16,7 +16,7 @@
*
*/
-package com.tencent.cloud.polaris.router.rule;
+package com.tencent.cloud.polaris.loadbalancer.rule;
import java.util.ArrayList;
import java.util.List;
diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
similarity index 61%
rename from spring-cloud-starter-tencent-polaris-router/src/main/resources/META-INF/additional-spring-configuration-metadata.json
rename to spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index c94ac4e0f..5ecb156bc 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -4,13 +4,19 @@
"name": "spring.cloud.polaris.loadbalancer.enabled",
"type": "java.lang.Boolean",
"defaultValue": "true",
- "description": "polaris loadbalancer"
+ "description": "polaris loadbalancer."
+ },
+ {
+ "name": "spring.cloud.polaris.loadbalancer.discoveryType",
+ "type": "java.lang.String",
+ "defaultValue": "POLARIS",
+ "description": "Type of discovery server."
},
{
"name": "spring.cloud.polaris.loadbalancer.strategy",
"type": "java.lang.String",
"defaultValue": "random",
- "description": "retry,best_available,availability_filtering,round_robin,weighted_response_time,zone_avoidance,random,consistent_hash,weighted_random"
+ "description": "retry,best_available,availability_filtering,round_robin,weighted_response_time,zone_avoidance,random,consistent_hash,weighted_random."
}
]
}
diff --git a/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/spring.factories b/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..a13924bac
--- /dev/null
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ com.tencent.cloud.polaris.loadbalancer.config.PolarisLoadBalancerAutoConfiguration
diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfigurationTest.java b/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java
similarity index 87%
rename from spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfigurationTest.java
rename to spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java
index 4a3ab3384..3e87d5fdd 100644
--- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/config/PolarisRibbonAutoConfigurationTest.java
+++ b/spring-cloud-tencent-polaris-loadbalancer/src/test/java/com/tencent/cloud/polaris/loadbalancer/config/PolarisLoadBalancerAutoConfigurationTest.java
@@ -15,7 +15,7 @@
* specific language governing permissions and limitations under the License.
*/
-package com.tencent.cloud.polaris.router.config;
+package com.tencent.cloud.polaris.loadbalancer.config;
import com.tencent.cloud.polaris.context.PolarisContextAutoConfiguration;
import com.tencent.polaris.router.api.core.RouterAPI;
@@ -31,15 +31,15 @@ import static com.tencent.polaris.test.common.Consts.SERVICE_PROVIDER;
import static org.assertj.core.api.Assertions.assertThat;
/**
- * Test for {@link PolarisRibbonAutoConfiguration}
+ * Test for {@link PolarisLoadBalancerAutoConfiguration}
*
* @author Haotian Zhang
*/
-public class PolarisRibbonAutoConfigurationTest {
+public class PolarisLoadBalancerAutoConfigurationTest {
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(PolarisRibbonTest.class,
- PolarisRibbonAutoConfiguration.class,
+ PolarisLoadBalancerAutoConfiguration.class,
PolarisContextAutoConfiguration.class))
.withPropertyValues("spring.application.name=" + SERVICE_PROVIDER)
.withPropertyValues("server.port=" + PORT)
@@ -49,7 +49,7 @@ public class PolarisRibbonAutoConfigurationTest {
public void testDefaultInitialization() {
this.contextRunner.run(context -> {
assertThat(context).hasSingleBean(RouterAPI.class);
- assertThat(context).hasSingleBean(PolarisRibbonProperties.class);
+ assertThat(context).hasSingleBean(PolarisLoadBalancerProperties.class);
});
}