diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3d665af04..5d8279670 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
# Change Log
---
-- [fix: fix log feign response stream close bug.](https://github.com/Tencent/spring-cloud-tencent/pull/897)
+- [fix:fix log feign response stream close bug.](https://github.com/Tencent/spring-cloud-tencent/pull/897)
- [fix:remove the secondary report.](https://github.com/Tencent/spring-cloud-tencent/pull/899)
-- [fix:optimize instance circuit beaker.](https://github.com/Tencent/spring-cloud-tencent/pull/909)
\ No newline at end of file
+- [fix:optimize instance circuit beaker.](https://github.com/Tencent/spring-cloud-tencent/pull/909)
+- [fix:optimize multi service registration and discovery.](https://github.com/Tencent/spring-cloud-tencent/pull/912)
\ No newline at end of file
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulConfigModifier.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulConfigModifier.java
index 70a4f703f..e9bed3e61 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulConfigModifier.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulConfigModifier.java
@@ -31,6 +31,8 @@ import com.tencent.polaris.factory.config.global.ServerConnectorConfigImpl;
import com.tencent.polaris.factory.config.provider.RegisterConfigImpl;
import com.tencent.polaris.plugins.connector.common.constant.ConsulConstant;
import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
@@ -38,6 +40,9 @@ import org.springframework.util.CollectionUtils;
* @author lingxiao.wlx
*/
public class ConsulConfigModifier implements PolarisConfigModifier {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ConsulConfigModifier.class);
+
private static final String ID = "consul";
private final ConsulContextProperties consulContextProperties;
@@ -49,6 +54,23 @@ public class ConsulConfigModifier implements PolarisConfigModifier {
@Override
public void modify(ConfigurationImpl configuration) {
if (consulContextProperties != null && consulContextProperties.isEnabled()) {
+ // Check if Consul client Available
+ boolean consulAvailable = false;
+ try {
+ consulAvailable = null != Class.forName("com.ecwid.consul.v1.ConsulClient");
+ }
+ catch (Throwable ignored) {
+
+ }
+ if (!consulAvailable) {
+ LOGGER.error("Please import \"connector-consul\" dependency when enabling consul service registration and discovery.\n"
+ + "Add dependency configuration below to pom.xml:\n"
+ + "\n"
+ + "\tcom.tencent.polaris\n"
+ + "\tconnector-consul\n"
+ + "");
+ throw new RuntimeException("Dependency \"connector-consul\" not found.");
+ }
if (CollectionUtils.isEmpty(configuration.getGlobal().getServerConnectors())) {
configuration.getGlobal().setServerConnectors(new ArrayList<>());
}
diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/nacos/NacosConfigModifier.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/nacos/NacosConfigModifier.java
index 01426a735..4dd1de0af 100644
--- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/nacos/NacosConfigModifier.java
+++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/nacos/NacosConfigModifier.java
@@ -31,6 +31,8 @@ import com.tencent.polaris.factory.config.consumer.DiscoveryConfigImpl;
import com.tencent.polaris.factory.config.global.ServerConnectorConfigImpl;
import com.tencent.polaris.factory.config.provider.RegisterConfigImpl;
import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
@@ -41,7 +43,6 @@ import org.springframework.util.CollectionUtils;
*/
public class NacosConfigModifier implements PolarisConfigModifier {
- private static final String ID = "nacos";
/**
* nacos username.
*/
@@ -54,7 +55,8 @@ public class NacosConfigModifier implements PolarisConfigModifier {
* nacos contextPath.
*/
public static final String CONTEXT_PATH = "contextPath";
-
+ private static final Logger LOGGER = LoggerFactory.getLogger(NacosConfigModifier.class);
+ private static final String ID = "nacos";
private final NacosContextProperties nacosContextProperties;
public NacosConfigModifier(NacosContextProperties nacosContextProperties) {
@@ -63,6 +65,23 @@ public class NacosConfigModifier implements PolarisConfigModifier {
@Override
public void modify(ConfigurationImpl configuration) {
+ // Check if Nacos Available
+ boolean nacosAvailable = false;
+ try {
+ nacosAvailable = null != Class.forName("com.alibaba.nacos.api.naming.NamingService");
+ }
+ catch (Throwable ignored) {
+
+ }
+ if (!nacosAvailable) {
+ LOGGER.error("Please import \"connector-nacos\" dependency when enabling nacos service registration and discovery.\n"
+ + "Add dependency configuration below to pom.xml:\n"
+ + "\n"
+ + "\tcom.tencent.polaris\n"
+ + "\tconnector-nacos\n"
+ + "");
+ throw new RuntimeException("Dependency \"connector-nacos\" not found.");
+ }
if (Objects.isNull(nacosContextProperties) || !nacosContextProperties.isEnabled()) {
return;
}
diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-callee-service/pom.xml b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-callee-service/pom.xml
index f57ab7ac0..9b974df4c 100644
--- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-callee-service/pom.xml
+++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-callee-service/pom.xml
@@ -30,14 +30,14 @@
-
-
+
+
-
-
-
-
+
+
+
+
org.springframework.cloud
diff --git a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/pom.xml b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/pom.xml
index 1d370e7f5..aadcea9ee 100644
--- a/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/pom.xml
+++ b/spring-cloud-tencent-examples/polaris-discovery-example/discovery-caller-service/pom.xml
@@ -28,15 +28,15 @@
spring-cloud-starter-tencent-polaris-discovery
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/spring-cloud-tencent-polaris-context/pom.xml b/spring-cloud-tencent-polaris-context/pom.xml
index d25bf6e04..5b6c5cca2 100644
--- a/spring-cloud-tencent-polaris-context/pom.xml
+++ b/spring-cloud-tencent-polaris-context/pom.xml
@@ -70,16 +70,6 @@
-
- com.tencent.polaris
- connector-consul
-
-
-
- com.tencent.polaris
- connector-nacos
-
-
com.tencent.polaris
connector-composite