pull/498/head
flystar32 6 years ago
parent 97a77d5c2b
commit c932e03e36

@ -36,6 +36,7 @@ import static com.alibaba.nacos.api.PropertyKeyConst.CLUSTER_NAME;
import static com.alibaba.nacos.api.PropertyKeyConst.CONTEXT_PATH;
import static com.alibaba.nacos.api.PropertyKeyConst.ENCODE;
import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT;
import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT_PORT;
import static com.alibaba.nacos.api.PropertyKeyConst.NAMESPACE;
import static com.alibaba.nacos.api.PropertyKeyConst.SECRET_KEY;
import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;
@ -90,6 +91,12 @@ public class NacosConfigProperties {
*/
private String endpoint;
/**
* endpoint port for Nacos, the domain port of a service, through which the server
* address can be dynamically obtained.
*/
private String endpointPort;
/**
* namespace, separation configuration of different environments.
*/
@ -265,6 +272,14 @@ public class NacosConfigProperties {
this.name = name;
}
public String getEndpointPort() {
return endpointPort;
}
public void setEndpointPort(String endpointPort) {
this.endpointPort = endpointPort;
}
public static class Config {
/**
* the data id of extended configuration
@ -310,11 +325,12 @@ public class NacosConfigProperties {
+ ", encode='" + encode + '\'' + ", group='" + group + '\'' + ", prefix='"
+ prefix + '\'' + ", fileExtension='" + fileExtension + '\''
+ ", timeout=" + timeout + ", endpoint='" + endpoint + '\''
+ ", namespace='" + namespace + '\'' + ", accessKey='" + accessKey + '\''
+ ", secretKey='" + secretKey + '\'' + ", contextPath='" + contextPath
+ '\'' + ", clusterName='" + clusterName + '\'' + ", name='" + name + '\''
+ ", sharedDataids='" + sharedDataids + '\'' + ", refreshableDataids='"
+ refreshableDataids + '\'' + ", extConfig=" + extConfig + '}';
+ ", endpointPort='" + endpointPort + '\'' + ", namespace='" + namespace
+ '\'' + ", accessKey='" + accessKey + '\'' + ", secretKey='" + secretKey
+ '\'' + ", contextPath='" + contextPath + '\'' + ", clusterName='"
+ clusterName + '\'' + ", name='" + name + '\'' + ", sharedDataids='"
+ sharedDataids + '\'' + ", refreshableDataids='" + refreshableDataids
+ '\'' + ", extConfig=" + extConfig + '}';
}
public ConfigService configServiceInstance() {
@ -332,6 +348,7 @@ public class NacosConfigProperties {
properties.put(CONTEXT_PATH, Objects.toString(this.contextPath, ""));
properties.put(CLUSTER_NAME, Objects.toString(this.clusterName, ""));
properties.put(ENDPOINT, Objects.toString(this.endpoint, ""));
properties.put(ENDPOINT_PORT, Objects.toString(this.endpointPort, ""));
try {
configService = NacosFactory.createConfigService(properties);
return configService;

@ -60,6 +60,7 @@ import org.springframework.test.context.junit4.SpringRunner;
"spring.application.name=myTestService1", "spring.profiles.active=dev,test",
"spring.cloud.nacos.config.server-addr=127.0.0.1:8848",
"spring.cloud.nacos.config.endpoint=test-endpoint",
"spring.cloud.nacos.config.endpoint-port=8081",
"spring.cloud.nacos.config.namespace=test-namespace",
"spring.cloud.nacos.config.encode=utf-8",
"spring.cloud.nacos.config.timeout=1000",
@ -153,6 +154,7 @@ public class NacosConfigurationTests {
checkoutNacosConfigServerAddr();
checkoutNacosConfigEndpoint();
checkoutNacosConfigEndpointPort();
checkoutNacosConfigNamespace();
checkoutNacosConfigClusterName();
checkoutNacosConfigAccessKey();
@ -181,6 +183,12 @@ public class NacosConfigurationTests {
}
private void checkoutNacosConfigEndpointPort() {
assertEquals("NacosConfigProperties endpoint port is wrong", "8081",
properties.getEndpointPort());
}
private void checkoutNacosConfigNamespace() {
assertEquals("NacosConfigProperties namespace is wrong", "test-namespace",
properties.getNamespace());

@ -59,6 +59,12 @@ public class NacosDiscoveryProperties {
*/
private String endpoint;
/**
* the domain port of a service, through which the server address can be dynamically
* obtained.
*/
private String endpointPort;
/**
* namespace, separation registry of different environments.
*/
@ -335,18 +341,26 @@ public class NacosDiscoveryProperties {
this.watchDelay = watchDelay;
}
public String getEndpointPort() {
return endpointPort;
}
public void setEndpointPort(String endpointPort) {
this.endpointPort = endpointPort;
}
@Override
public String toString() {
return "NacosDiscoveryProperties{" + "serverAddr='" + serverAddr + '\''
+ ", endpoint='" + endpoint + '\'' + ", namespace='" + namespace + '\''
+ ", watchDelay=" + watchDelay + ", logName='" + logName + '\''
+ ", service='" + service + '\'' + ", weight=" + weight
+ ", clusterName='" + clusterName + '\'' + ", namingLoadCacheAtStart='"
+ namingLoadCacheAtStart + '\'' + ", metadata=" + metadata
+ ", registerEnabled=" + registerEnabled + ", ip='" + ip + '\''
+ ", networkInterface='" + networkInterface + '\'' + ", port=" + port
+ ", secure=" + secure + ", accessKey='" + accessKey + '\''
+ ", secretKey='" + secretKey + '\'' + '}';
+ ", endpoint='" + endpoint + '\'' + ", endpointPort='" + endpointPort
+ '\'' + ", namespace='" + namespace + '\'' + ", watchDelay=" + watchDelay
+ ", logName='" + logName + '\'' + ", service='" + service + '\''
+ ", weight=" + weight + ", clusterName='" + clusterName + '\''
+ ", namingLoadCacheAtStart='" + namingLoadCacheAtStart + '\''
+ ", metadata=" + metadata + ", registerEnabled=" + registerEnabled
+ ", ip='" + ip + '\'' + ", networkInterface='" + networkInterface + '\''
+ ", port=" + port + ", secure=" + secure + ", accessKey='" + accessKey
+ '\'' + ", secretKey='" + secretKey + '\'' + '}';
}
public void overrideFromEnv(Environment env) {
@ -379,6 +393,10 @@ public class NacosDiscoveryProperties {
this.setEndpoint(
env.resolvePlaceholders("${spring.cloud.nacos.discovery.endpoint:}"));
}
if (StringUtils.isEmpty(this.getEndpointPort())) {
this.setEndpointPort(env.resolvePlaceholders(
"${spring.cloud.nacos.discovery.endpoint-port:}"));
}
}
public NamingService namingServiceInstance() {
@ -392,6 +410,7 @@ public class NacosDiscoveryProperties {
properties.put(NAMESPACE, namespace);
properties.put(UtilAndComs.NACOS_NAMING_LOG_NAME, logName);
properties.put(ENDPOINT, endpoint);
properties.put(ENDPOINT_PORT, endpointPort);
properties.put(ACCESS_KEY, accessKey);
properties.put(SECRET_KEY, secretKey);
properties.put(CLUSTER_NAME, clusterName);

@ -18,6 +18,8 @@ package org.springframework.cloud.alibaba.nacos.discovery;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.alibaba.nacos.ConditionalOnNacosDiscoveryEnabled;
import org.springframework.cloud.alibaba.nacos.NacosDiscoveryProperties;
@ -45,6 +47,7 @@ public class NacosDiscoveryClientAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@ConditionalOnProperty(value = "spring.cloud.nacos.discovery.watch.enabled", matchIfMissing = true)
public NacosWatch nacosWatch(NacosDiscoveryProperties nacosDiscoveryProperties) {
return new NacosWatch(nacosDiscoveryProperties);
}

@ -16,5 +16,11 @@
"type": "java.lang.Boolean",
"defaultValue": "false",
"description": "naming load from local cache at application start ."
},
{
"name": "spring.cloud.nacos.discovery.watch.enabled",
"type": "java.lang.Boolean",
"defaultValue": "true",
"description": "enable nacos discovery watch or not ."
}
]}

@ -48,6 +48,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
"spring.application.name=myTestService1",
"spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848",
"spring.cloud.nacos.discovery.endpoint=test-endpoint",
"spring.cloud.nacos.discovery.endpoint-port=8081",
"spring.cloud.nacos.discovery.namespace=test-namespace",
"spring.cloud.nacos.discovery.log-name=test-logName",
"spring.cloud.nacos.discovery.weight=2",
@ -83,6 +84,7 @@ public class NacosAutoServiceRegistrationTests {
checkoutNacosDiscoveryServerAddr();
checkoutNacosDiscoveryEndpoint();
checkoutNacosDiscoveryEndpointPort();
checkoutNacosDiscoveryNamespace();
checkoutNacosDiscoveryLogName();
checkoutNacosDiscoveryWeight();
@ -119,6 +121,12 @@ public class NacosAutoServiceRegistrationTests {
}
private void checkoutNacosDiscoveryEndpointPort() {
assertEquals("NacosDiscoveryProperties endpoint port was wrong", "8081",
properties.getEndpointPort());
}
private void checkoutNacosDiscoveryNamespace() {
assertEquals("NacosDiscoveryProperties namespace was wrong", "test-namespace",
properties.getNamespace());

Loading…
Cancel
Save