1
0
mirror of https://gitee.com/mirrors/Spring-Cloud-Alibaba.git synced 2021-06-26 13:25:11 +08:00

nacos config support custom config dataid and group

This commit is contained in:
pbting
2018-12-04 14:12:54 +08:00
parent 5403fe3165
commit 46570f8ce3
14 changed files with 380 additions and 111 deletions

View File

@@ -16,6 +16,8 @@
package org.springframework.cloud.alibaba.nacos;
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.alibaba.nacos.api.naming.pojo.ListView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,12 +27,10 @@ import org.springframework.cloud.client.discovery.DiscoveryClient;
import java.util.*;
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.alibaba.nacos.api.naming.pojo.ListView;
/**
* @author xiaojing
* @author renhaojun
* @author pbting
*/
public class NacosDiscoveryClient implements DiscoveryClient {
@@ -79,7 +79,7 @@ public class NacosDiscoveryClient implements DiscoveryClient {
metadata.put("instanceId", instance.getInstanceId());
metadata.put("weight", instance.getWeight() + "");
metadata.put("healthy", instance.isHealthy() + "");
metadata.put("cluster", instance.getCluster() + "");
metadata.put("cluster", instance.getClusterName() + "");
metadata.putAll(instance.getMetadata());
nacosServiceInstance.setMetadata(metadata);
return nacosServiceInstance;

View File

@@ -16,6 +16,9 @@
package org.springframework.cloud.alibaba.nacos;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.client.naming.utils.UtilAndComs;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,31 +29,18 @@ import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;
import javax.annotation.PostConstruct;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Properties;
import java.util.*;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.client.naming.utils.UtilAndComs;
import static com.alibaba.nacos.api.PropertyKeyConst.ACCESS_KEY;
import static com.alibaba.nacos.api.PropertyKeyConst.CLUSTER_NAME;
import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT;
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;
import static com.alibaba.nacos.api.PropertyKeyConst.*;
/**
* @author dungu.zpf
* @author xiaojing
* @author pbting
*/
@ConfigurationProperties("spring.cloud.nacos.discovery")
@@ -96,6 +86,11 @@ public class NacosDiscoveryProperties {
*/
private String clusterName = "DEFAULT";
/**
* naming load from local cache at application start. true is load
*/
private String namingLoadCacheAtStart = "false";
/**
* extra metadata to register.
*/
@@ -313,6 +308,14 @@ public class NacosDiscoveryProperties {
this.secretKey = secretKey;
}
public String getNamingLoadCacheAtStart() {
return namingLoadCacheAtStart;
}
public void setNamingLoadCacheAtStart(String namingLoadCacheAtStart) {
this.namingLoadCacheAtStart = namingLoadCacheAtStart;
}
@Override
public String toString() {
return "NacosDiscoveryProperties{" + "serverAddr='" + serverAddr + '\''
@@ -322,7 +325,8 @@ public class NacosDiscoveryProperties {
+ ", metadata=" + metadata + ", registerEnabled=" + registerEnabled
+ ", ip='" + ip + '\'' + ", networkInterface='" + networkInterface + '\''
+ ", port=" + port + ", secure=" + secure + ", accessKey='" + accessKey
+ '\'' + ", secretKey='" + secretKey + '\'' + '}';
+ ", namingLoadCacheAtStart=" + namingLoadCacheAtStart + '\''
+ ", secretKey='" + secretKey + '\'' + '}';
}
public void overrideFromEnv(Environment env) {
@@ -371,6 +375,8 @@ public class NacosDiscoveryProperties {
properties.put(ACCESS_KEY, accessKey);
properties.put(SECRET_KEY, secretKey);
properties.put(CLUSTER_NAME, clusterName);
properties.put(NAMING_LOAD_CACHE_AT_START, namingLoadCacheAtStart);
try {
namingService = NacosFactory.createNamingService(properties);
return namingService;

View File

@@ -16,17 +16,16 @@
package org.springframework.cloud.alibaba.nacos.registry;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.client.serviceregistry.ServiceRegistry;
import org.springframework.util.StringUtils;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Cluster;
import com.alibaba.nacos.api.naming.pojo.Instance;
/**
* @author xiaojing
* @author pbting
*/
public class NacosServiceRegistry implements ServiceRegistry<NacosRegistration> {
@@ -51,7 +50,7 @@ public class NacosServiceRegistry implements ServiceRegistry<NacosRegistration>
instance.setIp(registration.getHost());
instance.setPort(registration.getPort());
instance.setWeight(registration.getRegisterWeight());
instance.setCluster(new Cluster(registration.getCluster()));
instance.setClusterName(registration.getCluster());
instance.setMetadata(registration.getMetadata());
try {

View File

@@ -16,14 +16,14 @@
package org.springframework.cloud.alibaba.nacos.ribbon;
import java.util.Map;
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.netflix.loadbalancer.Server;
import java.util.Map;
/**
* @author xiaojing
* @author pbting
*/
public class NacosServer extends Server {
@@ -37,7 +37,7 @@ public class NacosServer extends Server {
this.metaInfo = new MetaInfo() {
@Override
public String getAppName() {
return instance.serviceName();
return instance.getServiceName();
}
@Override

View File

@@ -1,8 +1,16 @@
{"properties": [
{
"properties": [
{
"name": "spring.cloud.nacos.discovery.service",
"type": "java.lang.String",
"defaultValue": "${spring.application.name}",
"description": "the service name to register, default value is ${spring.application.name}."
},
{
"name": "spring.cloud.nacos.discovery.namingLoadCacheAtStart",
"type": "java.lang.Boolean",
"defaultValue": "false",
"description": "naming load from local cache at application start ."
}
]}
]
}