From 3d5fa3068cf266e6e748a9807a76fdd86cf2b71a Mon Sep 17 00:00:00 2001 From: KomachiSion <263976490@qq.com> Date: Thu, 16 Jul 2020 17:31:17 +0800 Subject: [PATCH 1/2] Add naming support gRPC for query instance list and service info --- .../nacos/api/naming/pojo/ServiceInfo.java | 16 ++- .../naming/remote/NamingRemoteConstants.java | 2 + .../remote/request/InstanceRequest.java | 5 - .../remote/request/ServiceQueryRequest.java | 69 ++++++++++ .../remote/response/ServiceQueryResponse.java | 52 ++++++++ .../nacos/api/remote/ResponseRegistry.java | 2 + .../naming/net/NamingGrpcClientProxy.java | 62 ++++++--- .../{ => handler}/InstanceRequestHandler.java | 59 +++++---- .../handler/ServiceQueryRequestHandler.java | 120 ++++++++++++++++++ 9 files changed, 335 insertions(+), 52 deletions(-) create mode 100644 api/src/main/java/com/alibaba/nacos/api/naming/remote/request/ServiceQueryRequest.java create mode 100644 api/src/main/java/com/alibaba/nacos/api/naming/remote/response/ServiceQueryResponse.java rename naming/src/main/java/com/alibaba/nacos/naming/remote/{ => handler}/InstanceRequestHandler.java (61%) create mode 100644 naming/src/main/java/com/alibaba/nacos/naming/remote/handler/ServiceQueryRequestHandler.java diff --git a/api/src/main/java/com/alibaba/nacos/api/naming/pojo/ServiceInfo.java b/api/src/main/java/com/alibaba/nacos/api/naming/pojo/ServiceInfo.java index 849a6fdbc3a..b2b96cd66e2 100644 --- a/api/src/main/java/com/alibaba/nacos/api/naming/pojo/ServiceInfo.java +++ b/api/src/main/java/com/alibaba/nacos/api/naming/pojo/ServiceInfo.java @@ -99,6 +99,18 @@ public void setHosts(List hosts) { this.hosts = hosts; } + public void addHost(Instance host) { + hosts.add(host); + } + + public void addAllHosts(List hosts) { + this.hosts.addAll(hosts); + } + + public List getHosts() { + return new ArrayList(hosts); + } + public boolean isValid() { return hosts != null; } @@ -143,10 +155,6 @@ public void setCacheMillis(long cacheMillis) { this.cacheMillis = cacheMillis; } - public List getHosts() { - return new ArrayList(hosts); - } - /** * Judge whether service info is validate. * diff --git a/api/src/main/java/com/alibaba/nacos/api/naming/remote/NamingRemoteConstants.java b/api/src/main/java/com/alibaba/nacos/api/naming/remote/NamingRemoteConstants.java index e6c5a34b841..30d10798dbb 100644 --- a/api/src/main/java/com/alibaba/nacos/api/naming/remote/NamingRemoteConstants.java +++ b/api/src/main/java/com/alibaba/nacos/api/naming/remote/NamingRemoteConstants.java @@ -30,4 +30,6 @@ public class NamingRemoteConstants { public static final String SUBSCRIBE_SERVICE = "subscribeService"; + public static final String QUERY_SERVICE = "queryService"; + } diff --git a/api/src/main/java/com/alibaba/nacos/api/naming/remote/request/InstanceRequest.java b/api/src/main/java/com/alibaba/nacos/api/naming/remote/request/InstanceRequest.java index aea6d993f20..49351181862 100644 --- a/api/src/main/java/com/alibaba/nacos/api/naming/remote/request/InstanceRequest.java +++ b/api/src/main/java/com/alibaba/nacos/api/naming/remote/request/InstanceRequest.java @@ -17,7 +17,6 @@ package com.alibaba.nacos.api.naming.remote.request; import com.alibaba.nacos.api.naming.pojo.Instance; -import com.alibaba.nacos.api.naming.utils.NamingUtils; /** * Nacos instances request. @@ -33,10 +32,6 @@ public class InstanceRequest extends NamingCommonRequest { public InstanceRequest() { } - public InstanceRequest(String namespace, String type, Instance instance) { - this(namespace, instance.getServiceName(), NamingUtils.getGroupName(instance.getServiceName()), type, instance); - } - public InstanceRequest(String namespace, String serviceName, String type, Instance instance) { super(namespace, serviceName, null); this.type = type; diff --git a/api/src/main/java/com/alibaba/nacos/api/naming/remote/request/ServiceQueryRequest.java b/api/src/main/java/com/alibaba/nacos/api/naming/remote/request/ServiceQueryRequest.java new file mode 100644 index 00000000000..148e70d8d28 --- /dev/null +++ b/api/src/main/java/com/alibaba/nacos/api/naming/remote/request/ServiceQueryRequest.java @@ -0,0 +1,69 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.nacos.api.naming.remote.request; + +import com.alibaba.nacos.api.naming.remote.NamingRemoteConstants; + +/** + * Nacos naming query request. + * + * @author xiweng.yy + */ +public class ServiceQueryRequest extends NamingCommonRequest { + + private String cluster; + + private boolean healthyOnly; + + private int udpPort; + + public ServiceQueryRequest() { + } + + public ServiceQueryRequest(String namespace, String serviceName) { + super(namespace, serviceName, null); + } + + @Override + public String getType() { + return NamingRemoteConstants.QUERY_SERVICE; + } + + public String getCluster() { + return cluster; + } + + public void setCluster(String cluster) { + this.cluster = cluster; + } + + public boolean isHealthyOnly() { + return healthyOnly; + } + + public void setHealthyOnly(boolean healthyOnly) { + this.healthyOnly = healthyOnly; + } + + public int getUdpPort() { + return udpPort; + } + + public void setUdpPort(int udpPort) { + this.udpPort = udpPort; + } +} diff --git a/api/src/main/java/com/alibaba/nacos/api/naming/remote/response/ServiceQueryResponse.java b/api/src/main/java/com/alibaba/nacos/api/naming/remote/response/ServiceQueryResponse.java new file mode 100644 index 00000000000..2ac9b96448f --- /dev/null +++ b/api/src/main/java/com/alibaba/nacos/api/naming/remote/response/ServiceQueryResponse.java @@ -0,0 +1,52 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.nacos.api.naming.remote.response; + +import com.alibaba.nacos.api.naming.pojo.ServiceInfo; +import com.alibaba.nacos.api.naming.remote.NamingRemoteConstants; +import com.alibaba.nacos.api.remote.response.Response; + +/** + * Nacos naming query request. + * + * @author xiweng.yy + */ +public class ServiceQueryResponse extends Response { + + private ServiceInfo serviceInfo; + + public ServiceQueryResponse() { + setType(NamingRemoteConstants.QUERY_SERVICE); + } + + public ServiceQueryResponse(ServiceInfo serviceInfo) { + this(200, "success"); + this.serviceInfo = serviceInfo; + } + + public ServiceQueryResponse(int resultCode, String message) { + super(NamingRemoteConstants.QUERY_SERVICE, resultCode, message); + } + + public ServiceInfo getServiceInfo() { + return serviceInfo; + } + + public void setServiceInfo(ServiceInfo serviceInfo) { + this.serviceInfo = serviceInfo; + } +} diff --git a/api/src/main/java/com/alibaba/nacos/api/remote/ResponseRegistry.java b/api/src/main/java/com/alibaba/nacos/api/remote/ResponseRegistry.java index f82c5a40399..491c1b3b9ca 100644 --- a/api/src/main/java/com/alibaba/nacos/api/remote/ResponseRegistry.java +++ b/api/src/main/java/com/alibaba/nacos/api/remote/ResponseRegistry.java @@ -22,6 +22,7 @@ import com.alibaba.nacos.api.config.remote.response.ConfigResponseTypeConstants; import com.alibaba.nacos.api.naming.remote.NamingRemoteConstants; import com.alibaba.nacos.api.naming.remote.response.InstanceResponse; +import com.alibaba.nacos.api.naming.remote.response.ServiceQueryResponse; import com.alibaba.nacos.api.remote.response.ConnectResetResponse; import com.alibaba.nacos.api.remote.response.HeartBeatResponse; import com.alibaba.nacos.api.remote.response.ResponseTypeConstants; @@ -54,6 +55,7 @@ public class ResponseRegistry { //REGISTRY_RESPONSES.put(NamingRequestTypeConstants.SERVICE_INSTANCE_CHANGE, ServiceI.class); REGISTRY_RESPONSES.put(NamingRemoteConstants.REGISTER_INSTANCE, InstanceResponse.class); REGISTRY_RESPONSES.put(NamingRemoteConstants.DE_REGISTER_INSTANCE, InstanceResponse.class); + REGISTRY_RESPONSES.put(NamingRemoteConstants.QUERY_SERVICE, ServiceQueryResponse.class); } public static Class getClassByType(String type) { diff --git a/client/src/main/java/com/alibaba/nacos/client/naming/net/NamingGrpcClientProxy.java b/client/src/main/java/com/alibaba/nacos/client/naming/net/NamingGrpcClientProxy.java index c6b05f019fc..7e333cb2b17 100644 --- a/client/src/main/java/com/alibaba/nacos/client/naming/net/NamingGrpcClientProxy.java +++ b/client/src/main/java/com/alibaba/nacos/client/naming/net/NamingGrpcClientProxy.java @@ -18,8 +18,12 @@ import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.naming.pojo.Instance; +import com.alibaba.nacos.api.naming.pojo.ServiceInfo; import com.alibaba.nacos.api.naming.remote.NamingRemoteConstants; import com.alibaba.nacos.api.naming.remote.request.InstanceRequest; +import com.alibaba.nacos.api.naming.remote.request.ServiceQueryRequest; +import com.alibaba.nacos.api.naming.remote.response.ServiceQueryResponse; +import com.alibaba.nacos.api.remote.request.Request; import com.alibaba.nacos.api.remote.response.Response; import com.alibaba.nacos.client.remote.RpcClient; import com.alibaba.nacos.client.remote.RpcClientFactory; @@ -43,18 +47,8 @@ public NamingGrpcClientProxy(String namespaceId) { rpcClient = RpcClientFactory.getClient("naming"); } - public void start() throws NacosException { - rpcClient.init(new ServerListFactory() { - @Override - public String genNextServer() { - return "localhost:8848"; - } - - @Override - public String getCurrentServer() { - return "localhost:8848"; - } - }); + public void start(ServerListFactory serverListFactory) throws NacosException { + rpcClient.init(serverListFactory); rpcClient.start(); } @@ -72,9 +66,7 @@ public void registerService(String serviceName, String groupName, Instance insta InstanceRequest request = new InstanceRequest(namespaceId, serviceName, groupName, NamingRemoteConstants.REGISTER_INSTANCE, instance); Response response = rpcClient.request(request); - if (200 != response.getResultCode()) { - throw new NacosException(response.getErrorCode(), response.getMessage()); - } + requestToServer(request, Response.class); } /** @@ -90,9 +82,43 @@ public void deregisterService(String serviceName, Instance instance) throws Naco instance); InstanceRequest request = new InstanceRequest(namespaceId, serviceName, NamingRemoteConstants.DE_REGISTER_INSTANCE, instance); - Response response = rpcClient.request(request); - if (200 != response.getResultCode()) { - throw new NacosException(response.getErrorCode(), response.getMessage()); + requestToServer(request, Response.class); + } + + /** + * Query instance list. + * + * @param serviceName service name + * @param clusters clusters + * @param udpPort udp port + * @param healthyOnly healthy only + * @return service info + * @throws NacosException nacos exception + */ + public ServiceInfo queryInstancesOfService(String serviceName, String clusters, int udpPort, boolean healthyOnly) + throws NacosException { + ServiceQueryRequest request = new ServiceQueryRequest(namespaceId, serviceName); + request.setCluster(clusters); + request.setHealthyOnly(healthyOnly); + request.setUdpPort(udpPort); + ServiceQueryResponse response = requestToServer(request, ServiceQueryResponse.class); + return response.getServiceInfo(); + } + + private T requestToServer(Request request, Class responseClass) throws NacosException { + try { + Response response = rpcClient.request(request); + if (200 != response.getResultCode()) { + throw new NacosException(response.getErrorCode(), response.getMessage()); + } + if (responseClass.isAssignableFrom(response.getClass())) { + return (T) response; + } + NAMING_LOGGER.error("Server return unexpected response '{}', expected response should be '{}'", + response.getClass().getName(), responseClass.getName()); + } catch (Exception e) { + throw new NacosException(NacosException.SERVER_ERROR, "Request nacos server failed: ", e); } + throw new NacosException(NacosException.SERVER_ERROR, "Server return invalid response"); } } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/remote/InstanceRequestHandler.java b/naming/src/main/java/com/alibaba/nacos/naming/remote/handler/InstanceRequestHandler.java similarity index 61% rename from naming/src/main/java/com/alibaba/nacos/naming/remote/InstanceRequestHandler.java rename to naming/src/main/java/com/alibaba/nacos/naming/remote/handler/InstanceRequestHandler.java index f58f63706a3..bead55e2115 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/remote/InstanceRequestHandler.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/remote/handler/InstanceRequestHandler.java @@ -14,11 +14,11 @@ * limitations under the License. */ -package com.alibaba.nacos.naming.remote; +package com.alibaba.nacos.naming.remote.handler; import com.alibaba.nacos.api.exception.NacosException; -import com.alibaba.nacos.api.naming.remote.request.InstanceRequest; import com.alibaba.nacos.api.naming.remote.NamingRemoteConstants; +import com.alibaba.nacos.api.naming.remote.request.InstanceRequest; import com.alibaba.nacos.api.naming.remote.response.InstanceResponse; import com.alibaba.nacos.api.remote.request.Request; import com.alibaba.nacos.api.remote.request.RequestMeta; @@ -59,30 +59,40 @@ public Response handle(Request request, RequestMeta meta) throws NacosException String serviceName = instanceRequest.getServiceName(); switch (instanceRequest.getType()) { case NamingRemoteConstants.REGISTER_INSTANCE: - if (!serviceManager.containService(namespace, serviceName)) { - serviceManager.createEmptyService(namespace, serviceName, false); - } - Instance instance = parseInstance(instanceRequest.getInstance()); - instance.setServiceName(serviceName); - instance.setInstanceId(instance.generateInstanceId()); - instance.setLastBeat(System.currentTimeMillis()); - // Register instance by connection, do not need keep alive by beat. - instance.setMarked(true); - instance.validate(); - serviceManager.addInstance(namespace, serviceName, instance.isEphemeral(), instance); - break; + return registerInstance(namespace, serviceName, instanceRequest, meta); case NamingRemoteConstants.DE_REGISTER_INSTANCE: - if (!serviceManager.containService(namespace, serviceName)) { - Loggers.SRV_LOG.warn("remove instance from non-exist service: {}", serviceName); - return new InstanceResponse(200, "success", request.getType()); - } - instance = parseInstance(instanceRequest.getInstance()); - serviceManager.removeInstance(namespace, serviceName, instance.isEphemeral(), instance); - break; + return deregisterInstance(namespace, serviceName, instanceRequest, meta); default: - throw new NacosException(NacosException.INVALID_PARAM, String.format("Unsupported request type %s", instanceRequest.getType())); + throw new NacosException(NacosException.INVALID_PARAM, + String.format("Unsupported request type %s", instanceRequest.getType())); + } + } + + private Response registerInstance(String namespace, String serviceName, InstanceRequest instanceRequest, + RequestMeta meta) throws NacosException { + if (!serviceManager.containService(namespace, serviceName)) { + serviceManager.createEmptyService(namespace, serviceName, false); + } + Instance instance = parseInstance(instanceRequest.getInstance()); + instance.setServiceName(serviceName); + instance.setInstanceId(instance.generateInstanceId()); + instance.setLastBeat(System.currentTimeMillis()); + // Register instance by connection, do not need keep alive by beat. + instance.setMarked(true); + instance.validate(); + serviceManager.addInstance(namespace, serviceName, instance.isEphemeral(), instance); + return new InstanceResponse(200, "success", NamingRemoteConstants.REGISTER_INSTANCE); + } + + private Response deregisterInstance(String namespace, String serviceName, InstanceRequest instanceRequest, + RequestMeta meta) throws NacosException { + if (!serviceManager.containService(namespace, serviceName)) { + Loggers.SRV_LOG.warn("remove instance from non-exist service: {}", serviceName); + return new InstanceResponse(200, "success", NamingRemoteConstants.DE_REGISTER_INSTANCE); } - return new InstanceResponse(200, "success", request.getType()); + Instance instance = parseInstance(instanceRequest.getInstance()); + serviceManager.removeInstance(namespace, serviceName, instance.isEphemeral(), instance); + return new InstanceResponse(200, "success", NamingRemoteConstants.DE_REGISTER_INSTANCE); } private Instance parseInstance(com.alibaba.nacos.api.naming.pojo.Instance instance) { @@ -98,7 +108,6 @@ private Instance parseInstance(com.alibaba.nacos.api.naming.pojo.Instance instan @Override public List getRequestTypes() { - return Lists.newArrayList(NamingRemoteConstants.REGISTER_INSTANCE, - NamingRemoteConstants.DE_REGISTER_INSTANCE); + return Lists.newArrayList(NamingRemoteConstants.REGISTER_INSTANCE, NamingRemoteConstants.DE_REGISTER_INSTANCE); } } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/remote/handler/ServiceQueryRequestHandler.java b/naming/src/main/java/com/alibaba/nacos/naming/remote/handler/ServiceQueryRequestHandler.java new file mode 100644 index 00000000000..0b949daa8fb --- /dev/null +++ b/naming/src/main/java/com/alibaba/nacos/naming/remote/handler/ServiceQueryRequestHandler.java @@ -0,0 +1,120 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.nacos.naming.remote.handler; + +import com.alibaba.nacos.api.exception.NacosException; +import com.alibaba.nacos.api.naming.pojo.ServiceInfo; +import com.alibaba.nacos.api.naming.remote.NamingRemoteConstants; +import com.alibaba.nacos.api.naming.remote.request.ServiceQueryRequest; +import com.alibaba.nacos.api.naming.remote.response.ServiceQueryResponse; +import com.alibaba.nacos.api.remote.request.Request; +import com.alibaba.nacos.api.remote.request.RequestMeta; +import com.alibaba.nacos.api.remote.response.Response; +import com.alibaba.nacos.common.utils.JacksonUtils; +import com.alibaba.nacos.core.remote.RequestHandler; +import com.alibaba.nacos.naming.core.Instance; +import com.alibaba.nacos.naming.core.Service; +import com.alibaba.nacos.naming.core.ServiceManager; +import com.alibaba.nacos.naming.misc.Loggers; +import com.alibaba.nacos.naming.misc.SwitchDomain; +import com.google.common.collect.Lists; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * Nacos query instances request handler. + * + * @author xiweng.yy + */ +@Component +public class ServiceQueryRequestHandler extends RequestHandler { + + @Autowired + private ServiceManager serviceManager; + + @Autowired + private SwitchDomain switchDomain; + + @Override + public ServiceQueryRequest parseBodyString(String bodyString) { + return JacksonUtils.toObj(bodyString, ServiceQueryRequest.class); + } + + @Override + public Response handle(Request request, RequestMeta meta) throws NacosException { + ServiceQueryRequest queryRequest = (ServiceQueryRequest) request; + String namespaceId = queryRequest.getNamespace(); + String serviceName = queryRequest.getServiceName(); + if (!serviceManager.containService(namespaceId, serviceName)) { + return new ServiceQueryResponse(new ServiceInfo(serviceName, queryRequest.getCluster())); + } + Service service = serviceManager.getService(namespaceId, serviceName); + if (!service.getEnabled()) { + throw new NacosException(NacosException.SERVER_ERROR, + String.format("Service %s : %s is disable now", namespaceId, serviceName)); + } + // TODO the origin logic in {@link InstanceController#doSrvIpxt will try to add push. + ServiceInfo result = new ServiceInfo(serviceName, queryRequest.getCluster()); + List instances = getInstanceFromService(service, queryRequest, meta); + result.addAllHosts(instances); + result.setName(serviceName); + result.setCacheMillis(switchDomain.getDefaultCacheMillis()); + result.setLastRefTime(System.currentTimeMillis()); + result.setChecksum(service.getChecksum()); + result.setClusters(queryRequest.getCluster()); + // TODO there are some parameters do not include in service info, but added to return in origin logic + return new ServiceQueryResponse(result); + } + + private List getInstanceFromService(Service service, ServiceQueryRequest queryRequest, RequestMeta meta) { + List result = service.srvIPs(Arrays.asList(StringUtils.split(queryRequest.getCluster(), ","))); + if (service.getSelector() != null && StringUtils.isNotBlank(meta.getClientIp())) { + result = service.getSelector().select(meta.getClientIp(), result); + } + return result.isEmpty() ? result + : queryRequest.isHealthyOnly() ? doProtectThreshold(service, queryRequest, result) : result; + } + + private List doProtectThreshold(Service service, ServiceQueryRequest queryRequest, + List instances) { + Map> healthyInstancesMap = new HashMap<>(); + healthyInstancesMap.put(Boolean.TRUE, new LinkedList<>()); + healthyInstancesMap.put(Boolean.FALSE, new LinkedList<>()); + for (Instance each : instances) { + healthyInstancesMap.get(each.isHealthy()).add(each); + } + if ((float) healthyInstancesMap.get(Boolean.TRUE).size() / instances.size() <= service.getProtectThreshold()) { + Loggers.SRV_LOG.warn("protect threshold reached, return all ips, service: {}", service.getName()); + healthyInstancesMap.get(Boolean.TRUE).addAll(healthyInstancesMap.get(Boolean.FALSE)); + healthyInstancesMap.get(Boolean.FALSE).clear(); + } + return healthyInstancesMap.get(Boolean.TRUE); + } + + @Override + public List getRequestTypes() { + return Lists.newArrayList(NamingRemoteConstants.QUERY_SERVICE); + } +} From f02250b338c442cbd8df40a85ca59a085b778264 Mon Sep 17 00:00:00 2001 From: KomachiSion <263976490@qq.com> Date: Thu, 16 Jul 2020 17:31:46 +0800 Subject: [PATCH 2/2] Update version to 1.4.0-SNAPSHOT --- address/pom.xml | 2 +- api/pom.xml | 2 +- client/pom.xml | 2 +- cmdb/pom.xml | 2 +- common/pom.xml | 2 +- config/pom.xml | 2 +- consistency/pom.xml | 2 +- console/pom.xml | 2 +- core/pom.xml | 2 +- distribution/pom.xml | 2 +- example/pom.xml | 2 +- istio/pom.xml | 2 +- naming/pom.xml | 2 +- pom.xml | 4 ++-- test/pom.xml | 2 +- 15 files changed, 16 insertions(+), 16 deletions(-) diff --git a/address/pom.xml b/address/pom.xml index 4b42bcb3a3c..20b8fb477aa 100644 --- a/address/pom.xml +++ b/address/pom.xml @@ -19,7 +19,7 @@ nacos-all com.alibaba.nacos - 1.3.1 + 1.4.0-SNAPSHOT 4.0.0 diff --git a/api/pom.xml b/api/pom.xml index 36909143d84..b38679bfab2 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -19,7 +19,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT 4.0.0 diff --git a/client/pom.xml b/client/pom.xml index 1ba1234fbe7..67f6f8a0359 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -19,7 +19,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT ../pom.xml diff --git a/cmdb/pom.xml b/cmdb/pom.xml index d75d6eee555..6eb2aedf066 100644 --- a/cmdb/pom.xml +++ b/cmdb/pom.xml @@ -21,7 +21,7 @@ nacos-all com.alibaba.nacos - 1.3.1 + 1.4.0-SNAPSHOT ../pom.xml 4.0.0 diff --git a/common/pom.xml b/common/pom.xml index 6befbf0b325..698b35fce03 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -21,7 +21,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT ../pom.xml 4.0.0 diff --git a/config/pom.xml b/config/pom.xml index 982066956f4..73d42c95587 100644 --- a/config/pom.xml +++ b/config/pom.xml @@ -20,7 +20,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT 4.0.0 diff --git a/consistency/pom.xml b/consistency/pom.xml index df1c9a38d0a..8a08308722b 100644 --- a/consistency/pom.xml +++ b/consistency/pom.xml @@ -85,7 +85,7 @@ com.alibaba.nacos nacos-all ../pom.xml - 1.3.1 + 1.4.0-SNAPSHOT diff --git a/console/pom.xml b/console/pom.xml index d783fe7dff5..571f26691b6 100644 --- a/console/pom.xml +++ b/console/pom.xml @@ -21,7 +21,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT nacos-console jar diff --git a/core/pom.xml b/core/pom.xml index 9ce10976543..2dd3651e806 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -21,7 +21,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT ../pom.xml diff --git a/distribution/pom.xml b/distribution/pom.xml index 5ff3dff9127..fe4df964d7a 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -21,7 +21,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT ../pom.xml diff --git a/example/pom.xml b/example/pom.xml index 497604582eb..db67264d1ed 100644 --- a/example/pom.xml +++ b/example/pom.xml @@ -21,7 +21,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT ../pom.xml diff --git a/istio/pom.xml b/istio/pom.xml index c35b1eb68a6..2faab9f6eb3 100644 --- a/istio/pom.xml +++ b/istio/pom.xml @@ -19,7 +19,7 @@ nacos-all com.alibaba.nacos - 1.3.1 + 1.4.0-SNAPSHOT 4.0.0 diff --git a/naming/pom.xml b/naming/pom.xml index f5dfa8edc9f..236b81dd276 100644 --- a/naming/pom.xml +++ b/naming/pom.xml @@ -21,7 +21,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index ce3da0a8e50..860629431d4 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ 2018 com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT pom Alibaba NACOS ${project.version} @@ -36,7 +36,7 @@ git@github.com:alibaba/nacos.git scm:git@github.com:alibaba/nacos.git scm:git@github.com:alibaba/nacos.git - nacos-all-1.3.1 + nacos-all-1.4.0-SNAPSHOT diff --git a/test/pom.xml b/test/pom.xml index ac609a8261a..3c1e6481c76 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -20,7 +20,7 @@ com.alibaba.nacos nacos-all - 1.3.1 + 1.4.0-SNAPSHOT ../pom.xml 4.0.0