fix:optimize multi service registration and discovery.

pull/912/head
Haotian Zhang 3 years ago
parent eae5f68c4c
commit 8f2996eb7b

@ -4,3 +4,4 @@
- [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: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) - [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)

@ -31,6 +31,8 @@ import com.tencent.polaris.factory.config.global.ServerConnectorConfigImpl;
import com.tencent.polaris.factory.config.provider.RegisterConfigImpl; import com.tencent.polaris.factory.config.provider.RegisterConfigImpl;
import com.tencent.polaris.plugins.connector.common.constant.ConsulConstant; import com.tencent.polaris.plugins.connector.common.constant.ConsulConstant;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -38,6 +40,9 @@ import org.springframework.util.CollectionUtils;
* @author lingxiao.wlx * @author lingxiao.wlx
*/ */
public class ConsulConfigModifier implements PolarisConfigModifier { public class ConsulConfigModifier implements PolarisConfigModifier {
private static final Logger LOGGER = LoggerFactory.getLogger(ConsulConfigModifier.class);
private static final String ID = "consul"; private static final String ID = "consul";
private final ConsulContextProperties consulContextProperties; private final ConsulContextProperties consulContextProperties;
@ -49,6 +54,23 @@ public class ConsulConfigModifier implements PolarisConfigModifier {
@Override @Override
public void modify(ConfigurationImpl configuration) { public void modify(ConfigurationImpl configuration) {
if (consulContextProperties != null && consulContextProperties.isEnabled()) { 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"
+ "<dependency>\n"
+ "\t<groupId>com.tencent.polaris</groupId>\n"
+ "\t<artifactId>connector-consul</artifactId>\n"
+ "</dependency>");
throw new RuntimeException("Dependency \"connector-consul\" not found.");
}
if (CollectionUtils.isEmpty(configuration.getGlobal().getServerConnectors())) { if (CollectionUtils.isEmpty(configuration.getGlobal().getServerConnectors())) {
configuration.getGlobal().setServerConnectors(new ArrayList<>()); configuration.getGlobal().setServerConnectors(new ArrayList<>());
} }

@ -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.global.ServerConnectorConfigImpl;
import com.tencent.polaris.factory.config.provider.RegisterConfigImpl; import com.tencent.polaris.factory.config.provider.RegisterConfigImpl;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@ -41,7 +43,6 @@ import org.springframework.util.CollectionUtils;
*/ */
public class NacosConfigModifier implements PolarisConfigModifier { public class NacosConfigModifier implements PolarisConfigModifier {
private static final String ID = "nacos";
/** /**
* nacos username. * nacos username.
*/ */
@ -54,7 +55,8 @@ public class NacosConfigModifier implements PolarisConfigModifier {
* nacos contextPath. * nacos contextPath.
*/ */
public static final String CONTEXT_PATH = "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; private final NacosContextProperties nacosContextProperties;
public NacosConfigModifier(NacosContextProperties nacosContextProperties) { public NacosConfigModifier(NacosContextProperties nacosContextProperties) {
@ -63,6 +65,23 @@ public class NacosConfigModifier implements PolarisConfigModifier {
@Override @Override
public void modify(ConfigurationImpl configuration) { 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"
+ "<dependency>\n"
+ "\t<groupId>com.tencent.polaris</groupId>\n"
+ "\t<artifactId>connector-nacos</artifactId>\n"
+ "</dependency>");
throw new RuntimeException("Dependency \"connector-nacos\" not found.");
}
if (Objects.isNull(nacosContextProperties) || !nacosContextProperties.isEnabled()) { if (Objects.isNull(nacosContextProperties) || !nacosContextProperties.isEnabled()) {
return; return;
} }

@ -30,13 +30,13 @@
</dependency> </dependency>
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>--> <!-- <groupId>com.tencent.polaris</groupId>-->
<!-- <artifactId>spring-cloud-starter-consul-discovery</artifactId>--> <!-- <artifactId>connector-consul</artifactId>-->
<!-- </dependency>--> <!-- </dependency>-->
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>--> <!-- <groupId>com.tencent.polaris</groupId>-->
<!-- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>--> <!-- <artifactId>connector-nacos</artifactId>-->
<!-- </dependency>--> <!-- </dependency>-->
<dependency> <dependency>

@ -29,13 +29,13 @@
</dependency> </dependency>
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>--> <!-- <groupId>com.tencent.polaris</groupId>-->
<!-- <artifactId>spring-cloud-starter-consul-discovery</artifactId>--> <!-- <artifactId>connector-consul</artifactId>-->
<!-- </dependency>--> <!-- </dependency>-->
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>--> <!-- <groupId>com.tencent.polaris</groupId>-->
<!-- <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>--> <!-- <artifactId>connector-nacos</artifactId>-->
<!-- </dependency>--> <!-- </dependency>-->
</dependencies> </dependencies>

@ -70,16 +70,6 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>connector-consul</artifactId>
</dependency>
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>connector-nacos</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.tencent.polaris</groupId> <groupId>com.tencent.polaris</groupId>
<artifactId>connector-composite</artifactId> <artifactId>connector-composite</artifactId>

Loading…
Cancel
Save