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