Fix bug in the programmatic service registration
This commit is contained in:
@@ -19,12 +19,14 @@ package we.api.pairing;
|
||||
|
||||
import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext;
|
||||
import org.springframework.cloud.client.ConditionalOnDiscoveryEnabled;
|
||||
import org.springframework.cloud.client.serviceregistry.Registration;
|
||||
import org.springframework.cloud.client.serviceregistry.ServiceRegistry;
|
||||
import org.springframework.cloud.commons.util.InetUtils;
|
||||
import org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -63,6 +65,7 @@ public class ApiPairingServiceRegistration implements ApplicationListener<FizzAp
|
||||
String prefix = SystemConfig.FIZZ_API_PAIRING_CLIENT_PREFIX + ".service-registration";
|
||||
String type = env.getProperty(prefix + ".type");
|
||||
|
||||
if (StringUtils.isNotBlank(type)) {
|
||||
if ("eureka".equals(type)) {
|
||||
String application = env.getProperty(prefix + ".application");
|
||||
String ipAddress = env.getProperty(prefix + ".ip-address");
|
||||
@@ -95,7 +98,7 @@ public class ApiPairingServiceRegistration implements ApplicationListener<FizzAp
|
||||
fizzNacosProperties.setApplicationContext(applicationContext);
|
||||
fizzNacosProperties.setId(application + ':' + serviceUrl);
|
||||
fizzNacosProperties.setService(application);
|
||||
fizzNacosProperties.setIp(ipAddress);
|
||||
fizzNacosProperties.setIp(ipAddress == null ? applicationContext.getBean(InetUtils.class).findFirstNonLoopbackAddress().getHostAddress() : ipAddress);
|
||||
fizzNacosProperties.setPort(Integer.parseInt(port));
|
||||
fizzNacosProperties.setNamespace(namespace.equals("") ? null : namespace);
|
||||
fizzNacosProperties.setGroup(group);
|
||||
@@ -117,9 +120,12 @@ public class ApiPairingServiceRegistration implements ApplicationListener<FizzAp
|
||||
|
||||
serviceRegistry.register(registration);
|
||||
}
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
public void stop() {
|
||||
if (serviceRegistry != null) {
|
||||
serviceRegistry.deregister(registration);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,9 +45,20 @@ public abstract class FizzEurekaHelper {
|
||||
EurekaInstanceConfigBean eurekaInstanceConfig = new EurekaInstanceConfigBean(inetUtils);
|
||||
eurekaInstanceConfig.setAppname(fizzEurekaProperties.appName);
|
||||
eurekaInstanceConfig.setVirtualHostName(fizzEurekaProperties.getVirtualHostName());
|
||||
eurekaInstanceConfig.setIpAddress(fizzEurekaProperties.ipAddress);
|
||||
eurekaInstanceConfig.setNonSecurePort(fizzEurekaProperties.nonSecurePort);
|
||||
eurekaInstanceConfig.setInstanceId(fizzEurekaProperties.getInstanceId());
|
||||
|
||||
String ip = fizzEurekaProperties.ipAddress;
|
||||
String instanceId;
|
||||
if (ip == null) {
|
||||
ip = inetUtils.findFirstNonLoopbackAddress().getHostAddress();
|
||||
instanceId = ip + ':' + fizzEurekaProperties.appName + ':' + fizzEurekaProperties.nonSecurePort;
|
||||
} else {
|
||||
instanceId = ip + ':' + fizzEurekaProperties.appName + ':' + fizzEurekaProperties.nonSecurePort;
|
||||
fizzEurekaProperties.instanceId(instanceId);
|
||||
}
|
||||
eurekaInstanceConfig.setIpAddress(ip);
|
||||
|
||||
eurekaInstanceConfig.setInstanceId(instanceId);
|
||||
eurekaInstanceConfig.setPreferIpAddress(fizzEurekaProperties.preferIpAddress);
|
||||
eurekaInstanceConfig.setSecurePortEnabled(fizzEurekaProperties.securePortEnabled);
|
||||
String healthCheckUrl = fizzEurekaProperties.getHealthCheckUrl();
|
||||
|
||||
@@ -109,9 +109,9 @@ public class FizzEurekaProperties {
|
||||
}
|
||||
|
||||
public String getInstanceId() {
|
||||
if (instanceId == null) {
|
||||
/*if (instanceId == null) {
|
||||
instanceId = ipAddress + ':' + appName + ':' + nonSecurePort;
|
||||
}
|
||||
}*/
|
||||
return instanceId;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ import com.alibaba.nacos.client.naming.utils.UtilAndComs;
|
||||
import org.springframework.cloud.commons.util.InetUtils;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.util.StringUtils;
|
||||
import we.util.JacksonUtils;
|
||||
|
||||
import java.net.Inet4Address;
|
||||
import java.net.InetAddress;
|
||||
@@ -407,7 +406,18 @@ public class FizzNacosProperties extends NacosDiscoveryProperties {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return JacksonUtils.writeValueAsString(this);
|
||||
return "FizzNacosProperties{" + "serverAddr='" + serverAddr + '\''
|
||||
+ ", endpoint='" + endpoint + '\'' + ", namespace='" + namespace + '\''
|
||||
+ ", watchDelay=" + watchDelay + ", logName='" + logName + '\''
|
||||
+ ", service='" + service + '\'' + ", weight=" + weight
|
||||
+ ", clusterName='" + clusterName + '\'' + ", group='" + group + '\''
|
||||
+ ", namingLoadCacheAtStart='" + namingLoadCacheAtStart + '\''
|
||||
+ ", metadata=" + metadata + ", registerEnabled=" + registerEnabled
|
||||
+ ", ip='" + ip + '\'' + ", networkInterface='" + networkInterface + '\''
|
||||
+ ", port=" + port + ", secure=" + secure + ", accessKey='" + accessKey
|
||||
+ '\'' + ", secretKey='" + secretKey + '\'' + ", heartBeatInterval="
|
||||
+ heartBeatInterval + ", heartBeatTimeout=" + heartBeatTimeout
|
||||
+ ", ipDeleteTimeout=" + ipDeleteTimeout + ", failFast=" + failFast + '}';
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user