refactor(client): Fix the issues raised in the comments
This commit is contained in:
parent
f8ec782080
commit
4817b26bc9
@ -103,7 +103,7 @@ public class Constants {
|
|||||||
|
|
||||||
public static final int FLOW_CONTROL_INTERVAL = 1000;
|
public static final int FLOW_CONTROL_INTERVAL = 1000;
|
||||||
|
|
||||||
public static final float PROTECT_THRESHOLD = 0.0F;
|
public static final float DEFAULT_PROTECT_THRESHOLD = 0.0F;
|
||||||
|
|
||||||
public static final String LINE_SEPARATOR = Character.toString((char)1);
|
public static final String LINE_SEPARATOR = Character.toString((char)1);
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ import java.util.Properties;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @author liaochuntao
|
* @author liaochuntao
|
||||||
* @since 1.0.0
|
* @since 1.0.1
|
||||||
*/
|
*/
|
||||||
public class MaintainFactory {
|
public class MaintainFactory {
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
package com.alibaba.nacos.api.naming;
|
package com.alibaba.nacos.api.naming;
|
||||||
|
|
||||||
import com.alibaba.nacos.api.exception.NacosException;
|
import com.alibaba.nacos.api.exception.NacosException;
|
||||||
|
import com.alibaba.nacos.api.naming.pojo.Instance;
|
||||||
import com.alibaba.nacos.api.naming.pojo.Service;
|
import com.alibaba.nacos.api.naming.pojo.Service;
|
||||||
import com.alibaba.nacos.api.selector.AbstractSelector;
|
import com.alibaba.nacos.api.selector.AbstractSelector;
|
||||||
|
|
||||||
@ -26,10 +27,29 @@ import java.util.Map;
|
|||||||
* Operations related to Nacos
|
* Operations related to Nacos
|
||||||
*
|
*
|
||||||
* @author liaochuntao
|
* @author liaochuntao
|
||||||
* @since 1.0.0
|
* @since 1.0.1
|
||||||
*/
|
*/
|
||||||
public interface MaintainService {
|
public interface MaintainService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* update instance info
|
||||||
|
*
|
||||||
|
* @param serviceName
|
||||||
|
* @param instance
|
||||||
|
* @throws NacosException
|
||||||
|
*/
|
||||||
|
void updateInstance(String serviceName, Instance instance) throws NacosException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* update instance info
|
||||||
|
*
|
||||||
|
* @param serviceName
|
||||||
|
* @param groupName
|
||||||
|
* @param instance
|
||||||
|
* @throws NacosException
|
||||||
|
*/
|
||||||
|
void updateInstance(String serviceName, String groupName, Instance instance) throws NacosException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* query service
|
* query service
|
||||||
*
|
*
|
||||||
@ -37,7 +57,7 @@ public interface MaintainService {
|
|||||||
* @return
|
* @return
|
||||||
* @throws NacosException
|
* @throws NacosException
|
||||||
*/
|
*/
|
||||||
Service selectOneService(String serviceName) throws NacosException;
|
Service queryService(String serviceName) throws NacosException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* query service
|
* query service
|
||||||
@ -47,7 +67,7 @@ public interface MaintainService {
|
|||||||
* @return
|
* @return
|
||||||
* @throws NacosException
|
* @throws NacosException
|
||||||
*/
|
*/
|
||||||
Service selectOneService(String serviceName, String groupName) throws NacosException;
|
Service queryService(String serviceName, String groupName) throws NacosException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* create service to Nacos
|
* create service to Nacos
|
||||||
@ -123,7 +143,7 @@ public interface MaintainService {
|
|||||||
* @param protectThreshold protectThreshold of service
|
* @param protectThreshold protectThreshold of service
|
||||||
* @throws NacosException
|
* @throws NacosException
|
||||||
*/
|
*/
|
||||||
void updateService(String serviceName, String groupName, Float protectThreshold) throws NacosException;
|
void updateService(String serviceName, String groupName, float protectThreshold) throws NacosException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* update service to Nacos
|
* update service to Nacos
|
||||||
@ -134,7 +154,7 @@ public interface MaintainService {
|
|||||||
* @param metadata metadata of service
|
* @param metadata metadata of service
|
||||||
* @throws NacosException
|
* @throws NacosException
|
||||||
*/
|
*/
|
||||||
void updateService(String serviceName, String groupName, Float protectThreshold, Map<String, String> metadata) throws NacosException;
|
void updateService(String serviceName, String groupName, float protectThreshold, Map<String, String> metadata) throws NacosException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* update service to Nacos with selector
|
* update service to Nacos with selector
|
||||||
|
@ -101,4 +101,15 @@ public class Service {
|
|||||||
public void addMetadata(String key, String value) {
|
public void addMetadata(String key, String value) {
|
||||||
this.metadata.put(key, value);
|
this.metadata.put(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Service{" +
|
||||||
|
"name='" + name + '\'' +
|
||||||
|
", protectThreshold=" + protectThreshold +
|
||||||
|
", appName='" + appName + '\'' +
|
||||||
|
", groupName='" + groupName + '\'' +
|
||||||
|
", metadata=" + metadata +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,12 +20,13 @@ import com.alibaba.nacos.api.PropertyKeyConst;
|
|||||||
import com.alibaba.nacos.api.common.Constants;
|
import com.alibaba.nacos.api.common.Constants;
|
||||||
import com.alibaba.nacos.api.exception.NacosException;
|
import com.alibaba.nacos.api.exception.NacosException;
|
||||||
import com.alibaba.nacos.api.naming.MaintainService;
|
import com.alibaba.nacos.api.naming.MaintainService;
|
||||||
|
import com.alibaba.nacos.api.naming.pojo.Instance;
|
||||||
import com.alibaba.nacos.api.naming.pojo.Service;
|
import com.alibaba.nacos.api.naming.pojo.Service;
|
||||||
import com.alibaba.nacos.api.selector.AbstractSelector;
|
import com.alibaba.nacos.api.selector.AbstractSelector;
|
||||||
import com.alibaba.nacos.api.selector.ExpressionSelector;
|
import com.alibaba.nacos.api.selector.ExpressionSelector;
|
||||||
import com.alibaba.nacos.api.selector.NoneSelector;
|
import com.alibaba.nacos.api.selector.NoneSelector;
|
||||||
import com.alibaba.nacos.client.naming.net.NamingProxy;
|
import com.alibaba.nacos.client.naming.net.NamingProxy;
|
||||||
import com.alibaba.nacos.client.naming.utils.NamingUtils;
|
import com.alibaba.nacos.client.naming.utils.InitUtils;
|
||||||
import com.alibaba.nacos.client.utils.StringUtils;
|
import com.alibaba.nacos.client.utils.StringUtils;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -33,7 +34,7 @@ import java.util.Properties;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @author liaochuntao
|
* @author liaochuntao
|
||||||
* @since 1.0.0
|
* @since 1.0.1
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("PMD.ServiceOrDaoClassShouldEndWithImplRule")
|
@SuppressWarnings("PMD.ServiceOrDaoClassShouldEndWithImplRule")
|
||||||
public class NacosMaintainService implements MaintainService {
|
public class NacosMaintainService implements MaintainService {
|
||||||
@ -59,9 +60,9 @@ public class NacosMaintainService implements MaintainService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void init(Properties properties) {
|
private void init(Properties properties) {
|
||||||
namespace = NamingUtils.initNamespace(properties);
|
namespace = InitUtils.initNamespace(properties);
|
||||||
initServerAddr(properties);
|
initServerAddr(properties);
|
||||||
NamingUtils.initWebRootContext();
|
InitUtils.initWebRootContext();
|
||||||
|
|
||||||
serverProxy = new NamingProxy(namespace, endpoint, serverList);
|
serverProxy = new NamingProxy(namespace, endpoint, serverList);
|
||||||
serverProxy.setProperties(properties);
|
serverProxy.setProperties(properties);
|
||||||
@ -69,19 +70,29 @@ public class NacosMaintainService implements MaintainService {
|
|||||||
|
|
||||||
private void initServerAddr(Properties properties) {
|
private void initServerAddr(Properties properties) {
|
||||||
serverList = properties.getProperty(PropertyKeyConst.SERVER_ADDR);
|
serverList = properties.getProperty(PropertyKeyConst.SERVER_ADDR);
|
||||||
endpoint = NamingUtils.initEndpoint(properties);
|
endpoint = InitUtils.initEndpoint(properties);
|
||||||
if (StringUtils.isNotEmpty(endpoint)) {
|
if (StringUtils.isNotEmpty(endpoint)) {
|
||||||
serverList = "";
|
serverList = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Service selectOneService(String serviceName) throws NacosException {
|
public void updateInstance(String serviceName, Instance instance) throws NacosException {
|
||||||
return selectOneService(serviceName, Constants.DEFAULT_GROUP);
|
updateInstance(serviceName, Constants.DEFAULT_GROUP, instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Service selectOneService(String serviceName, String groupName) throws NacosException {
|
public void updateInstance(String serviceName, String groupName, Instance instance) throws NacosException {
|
||||||
|
serverProxy.updateInstance(serviceName, groupName, instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Service queryService(String serviceName) throws NacosException {
|
||||||
|
return queryService(serviceName, Constants.DEFAULT_GROUP);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Service queryService(String serviceName, String groupName) throws NacosException {
|
||||||
return serverProxy.queryService(serviceName, groupName);
|
return serverProxy.queryService(serviceName, groupName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,7 +103,7 @@ public class NacosMaintainService implements MaintainService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createService(String serviceName, String groupName) throws NacosException {
|
public void createService(String serviceName, String groupName) throws NacosException {
|
||||||
createService(serviceName, groupName, Constants.PROTECT_THRESHOLD);
|
createService(serviceName, groupName, Constants.DEFAULT_PROTECT_THRESHOLD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -135,7 +146,7 @@ public class NacosMaintainService implements MaintainService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateService(String serviceName, String groupName, Float protectThreshold) throws NacosException {
|
public void updateService(String serviceName, String groupName, float protectThreshold) throws NacosException {
|
||||||
Service service = new Service();
|
Service service = new Service();
|
||||||
service.setName(serviceName);
|
service.setName(serviceName);
|
||||||
service.setGroupName(groupName);
|
service.setGroupName(groupName);
|
||||||
@ -145,7 +156,7 @@ public class NacosMaintainService implements MaintainService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateService(String serviceName, String groupName, Float protectThreshold, Map<String, String> metadata) throws NacosException {
|
public void updateService(String serviceName, String groupName, float protectThreshold, Map<String, String> metadata) throws NacosException {
|
||||||
Service service = new Service();
|
Service service = new Service();
|
||||||
service.setName(serviceName);
|
service.setName(serviceName);
|
||||||
service.setGroupName(groupName);
|
service.setGroupName(groupName);
|
||||||
|
@ -23,6 +23,7 @@ import com.alibaba.nacos.api.naming.listener.EventListener;
|
|||||||
import com.alibaba.nacos.api.naming.pojo.Instance;
|
import com.alibaba.nacos.api.naming.pojo.Instance;
|
||||||
import com.alibaba.nacos.api.naming.pojo.ListView;
|
import com.alibaba.nacos.api.naming.pojo.ListView;
|
||||||
import com.alibaba.nacos.api.naming.pojo.ServiceInfo;
|
import com.alibaba.nacos.api.naming.pojo.ServiceInfo;
|
||||||
|
import com.alibaba.nacos.api.naming.utils.NamingUtils;
|
||||||
import com.alibaba.nacos.api.selector.AbstractSelector;
|
import com.alibaba.nacos.api.selector.AbstractSelector;
|
||||||
import com.alibaba.nacos.client.naming.beat.BeatInfo;
|
import com.alibaba.nacos.client.naming.beat.BeatInfo;
|
||||||
import com.alibaba.nacos.client.naming.beat.BeatReactor;
|
import com.alibaba.nacos.client.naming.beat.BeatReactor;
|
||||||
@ -31,7 +32,7 @@ import com.alibaba.nacos.client.naming.core.EventDispatcher;
|
|||||||
import com.alibaba.nacos.client.naming.core.HostReactor;
|
import com.alibaba.nacos.client.naming.core.HostReactor;
|
||||||
import com.alibaba.nacos.client.naming.net.NamingProxy;
|
import com.alibaba.nacos.client.naming.net.NamingProxy;
|
||||||
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
|
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
|
||||||
import com.alibaba.nacos.client.naming.utils.NamingUtils;
|
import com.alibaba.nacos.client.naming.utils.InitUtils;
|
||||||
import com.alibaba.nacos.client.naming.utils.UtilAndComs;
|
import com.alibaba.nacos.client.naming.utils.UtilAndComs;
|
||||||
import com.alibaba.nacos.client.utils.*;
|
import com.alibaba.nacos.client.utils.*;
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
@ -78,9 +79,9 @@ public class NacosNamingService implements NamingService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void init(Properties properties) {
|
private void init(Properties properties) {
|
||||||
namespace = NamingUtils.initNamespace(properties);
|
namespace = InitUtils.initNamespace(properties);
|
||||||
initServerAddr(properties);
|
initServerAddr(properties);
|
||||||
NamingUtils.initWebRootContext();
|
InitUtils.initWebRootContext();
|
||||||
initCacheDir();
|
initCacheDir();
|
||||||
initLogName(properties);
|
initLogName(properties);
|
||||||
|
|
||||||
@ -122,7 +123,7 @@ public class NacosNamingService implements NamingService {
|
|||||||
|
|
||||||
private void initServerAddr(Properties properties) {
|
private void initServerAddr(Properties properties) {
|
||||||
serverList = properties.getProperty(PropertyKeyConst.SERVER_ADDR);
|
serverList = properties.getProperty(PropertyKeyConst.SERVER_ADDR);
|
||||||
endpoint = NamingUtils.initEndpoint(properties);
|
endpoint = InitUtils.initEndpoint(properties);
|
||||||
if (StringUtils.isNotEmpty(endpoint)) {
|
if (StringUtils.isNotEmpty(endpoint)) {
|
||||||
serverList = "";
|
serverList = "";
|
||||||
}
|
}
|
||||||
@ -184,7 +185,7 @@ public class NacosNamingService implements NamingService {
|
|||||||
|
|
||||||
if (instance.isEphemeral()) {
|
if (instance.isEphemeral()) {
|
||||||
BeatInfo beatInfo = new BeatInfo();
|
BeatInfo beatInfo = new BeatInfo();
|
||||||
beatInfo.setServiceName(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName));
|
beatInfo.setServiceName(NamingUtils.getGroupedName(serviceName, groupName));
|
||||||
beatInfo.setIp(instance.getIp());
|
beatInfo.setIp(instance.getIp());
|
||||||
beatInfo.setPort(instance.getPort());
|
beatInfo.setPort(instance.getPort());
|
||||||
beatInfo.setCluster(instance.getClusterName());
|
beatInfo.setCluster(instance.getClusterName());
|
||||||
@ -192,10 +193,10 @@ public class NacosNamingService implements NamingService {
|
|||||||
beatInfo.setMetadata(instance.getMetadata());
|
beatInfo.setMetadata(instance.getMetadata());
|
||||||
beatInfo.setScheduled(false);
|
beatInfo.setScheduled(false);
|
||||||
|
|
||||||
beatReactor.addBeatInfo(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), beatInfo);
|
beatReactor.addBeatInfo(NamingUtils.getGroupedName(serviceName, groupName), beatInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
serverProxy.registerService(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), groupName, instance);
|
serverProxy.registerService(NamingUtils.getGroupedName(serviceName, groupName), groupName, instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -225,8 +226,8 @@ public class NacosNamingService implements NamingService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deregisterInstance(String serviceName, String groupName, Instance instance) throws NacosException {
|
public void deregisterInstance(String serviceName, String groupName, Instance instance) throws NacosException {
|
||||||
beatReactor.removeBeatInfo(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), instance.getIp(), instance.getPort());
|
beatReactor.removeBeatInfo(NamingUtils.getGroupedName(serviceName, groupName), instance.getIp(), instance.getPort());
|
||||||
serverProxy.deregisterService(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), instance);
|
serverProxy.deregisterService(NamingUtils.getGroupedName(serviceName, groupName), instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -270,9 +271,9 @@ public class NacosNamingService implements NamingService {
|
|||||||
|
|
||||||
ServiceInfo serviceInfo;
|
ServiceInfo serviceInfo;
|
||||||
if (subscribe) {
|
if (subscribe) {
|
||||||
serviceInfo = hostReactor.getServiceInfo(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","));
|
serviceInfo = hostReactor.getServiceInfo(NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","));
|
||||||
} else {
|
} else {
|
||||||
serviceInfo = hostReactor.getServiceInfoDirectlyFromServer(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","));
|
serviceInfo = hostReactor.getServiceInfoDirectlyFromServer(NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","));
|
||||||
}
|
}
|
||||||
List<Instance> list;
|
List<Instance> list;
|
||||||
if (serviceInfo == null || CollectionUtils.isEmpty(list = serviceInfo.getHosts())) {
|
if (serviceInfo == null || CollectionUtils.isEmpty(list = serviceInfo.getHosts())) {
|
||||||
@ -324,9 +325,9 @@ public class NacosNamingService implements NamingService {
|
|||||||
|
|
||||||
ServiceInfo serviceInfo;
|
ServiceInfo serviceInfo;
|
||||||
if (subscribe) {
|
if (subscribe) {
|
||||||
serviceInfo = hostReactor.getServiceInfo(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","));
|
serviceInfo = hostReactor.getServiceInfo(NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","));
|
||||||
} else {
|
} else {
|
||||||
serviceInfo = hostReactor.getServiceInfoDirectlyFromServer(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","));
|
serviceInfo = hostReactor.getServiceInfoDirectlyFromServer(NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","));
|
||||||
}
|
}
|
||||||
return selectInstances(serviceInfo, healthy);
|
return selectInstances(serviceInfo, healthy);
|
||||||
}
|
}
|
||||||
@ -372,10 +373,10 @@ public class NacosNamingService implements NamingService {
|
|||||||
|
|
||||||
if (subscribe) {
|
if (subscribe) {
|
||||||
return Balancer.RandomByWeight.selectHost(
|
return Balancer.RandomByWeight.selectHost(
|
||||||
hostReactor.getServiceInfo(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ",")));
|
hostReactor.getServiceInfo(NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ",")));
|
||||||
} else {
|
} else {
|
||||||
return Balancer.RandomByWeight.selectHost(
|
return Balancer.RandomByWeight.selectHost(
|
||||||
hostReactor.getServiceInfoDirectlyFromServer(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ",")));
|
hostReactor.getServiceInfoDirectlyFromServer(NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ",")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -396,7 +397,7 @@ public class NacosNamingService implements NamingService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void subscribe(String serviceName, String groupName, List<String> clusters, EventListener listener) throws NacosException {
|
public void subscribe(String serviceName, String groupName, List<String> clusters, EventListener listener) throws NacosException {
|
||||||
eventDispatcher.addListener(hostReactor.getServiceInfo(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName),
|
eventDispatcher.addListener(hostReactor.getServiceInfo(NamingUtils.getGroupedName(serviceName, groupName),
|
||||||
StringUtils.join(clusters, ",")), StringUtils.join(clusters, ","), listener);
|
StringUtils.join(clusters, ",")), StringUtils.join(clusters, ","), listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -417,7 +418,7 @@ public class NacosNamingService implements NamingService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void unsubscribe(String serviceName, String groupName, List<String> clusters, EventListener listener) throws NacosException {
|
public void unsubscribe(String serviceName, String groupName, List<String> clusters, EventListener listener) throws NacosException {
|
||||||
eventDispatcher.removeListener(com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","), listener);
|
eventDispatcher.removeListener(NamingUtils.getGroupedName(serviceName, groupName), StringUtils.join(clusters, ","), listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -171,7 +171,7 @@ public class NamingProxy {
|
|||||||
NAMING_LOGGER.info("[REGISTER-SERVICE] {} registering service {} with instance: {}",
|
NAMING_LOGGER.info("[REGISTER-SERVICE] {} registering service {} with instance: {}",
|
||||||
namespaceId, serviceName, instance);
|
namespaceId, serviceName, instance);
|
||||||
|
|
||||||
final Map<String, String> params = new HashMap<String, String>(8);
|
final Map<String, String> params = new HashMap<String, String>(9);
|
||||||
params.put(CommonParams.NAMESPACE_ID, namespaceId);
|
params.put(CommonParams.NAMESPACE_ID, namespaceId);
|
||||||
params.put(CommonParams.SERVICE_NAME, serviceName);
|
params.put(CommonParams.SERVICE_NAME, serviceName);
|
||||||
params.put(CommonParams.GROUP_NAME, groupName);
|
params.put(CommonParams.GROUP_NAME, groupName);
|
||||||
@ -204,6 +204,24 @@ public class NamingProxy {
|
|||||||
reqAPI(UtilAndComs.NACOS_URL_INSTANCE, params, HttpMethod.DELETE);
|
reqAPI(UtilAndComs.NACOS_URL_INSTANCE, params, HttpMethod.DELETE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateInstance(String serviceName, String groupName, Instance instance) throws NacosException {
|
||||||
|
NAMING_LOGGER.info("[REGISTER-SERVICE] {} update service {} with instance: {}",
|
||||||
|
namespaceId, serviceName, instance);
|
||||||
|
|
||||||
|
final Map<String, String> params = new HashMap<String, String>(8);
|
||||||
|
params.put(CommonParams.NAMESPACE_ID, namespaceId);
|
||||||
|
params.put(CommonParams.SERVICE_NAME, serviceName);
|
||||||
|
params.put(CommonParams.GROUP_NAME, groupName);
|
||||||
|
params.put(CommonParams.CLUSTER_NAME, instance.getClusterName());
|
||||||
|
params.put("ip", instance.getIp());
|
||||||
|
params.put("port", String.valueOf(instance.getPort()));
|
||||||
|
params.put("weight", String.valueOf(instance.getWeight()));
|
||||||
|
params.put("ephemeral", String.valueOf(instance.isEphemeral()));
|
||||||
|
params.put("metadata", JSON.toJSONString(instance.getMetadata()));
|
||||||
|
|
||||||
|
reqAPI(UtilAndComs.NACOS_URL_INSTANCE, params, HttpMethod.PUT);
|
||||||
|
}
|
||||||
|
|
||||||
public Service queryService(String serviceName, String groupName) throws NacosException {
|
public Service queryService(String serviceName, String groupName) throws NacosException {
|
||||||
NAMING_LOGGER.info("[QUERY-SERVICE] {} query service : {}, {}",
|
NAMING_LOGGER.info("[QUERY-SERVICE] {} query service : {}, {}",
|
||||||
namespaceId, serviceName, groupName);
|
namespaceId, serviceName, groupName);
|
||||||
|
@ -31,7 +31,7 @@ import java.util.concurrent.Callable;
|
|||||||
/**
|
/**
|
||||||
* @author liaochuntao
|
* @author liaochuntao
|
||||||
*/
|
*/
|
||||||
public class NamingUtils {
|
public class InitUtils {
|
||||||
|
|
||||||
public static final String initNamespace(Properties properties) {
|
public static final String initNamespace(Properties properties) {
|
||||||
String tmpNamespace = null;
|
String tmpNamespace = null;
|
@ -26,6 +26,7 @@ import static org.junit.Assert.*;
|
|||||||
public class NacosMaintainServiceTest {
|
public class NacosMaintainServiceTest {
|
||||||
|
|
||||||
private MaintainService maintainService;
|
private MaintainService maintainService;
|
||||||
|
private NamingService namingService;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void before() throws NacosException {
|
public void before() throws NacosException {
|
||||||
@ -75,7 +76,7 @@ public class NacosMaintainServiceTest {
|
|||||||
@Test
|
@Test
|
||||||
public void test3selectOneService() {
|
public void test3selectOneService() {
|
||||||
try {
|
try {
|
||||||
Service service = maintainService.selectOneService("nacos-api");
|
Service service = maintainService.queryService("nacos-api");
|
||||||
System.out.println("service : " + service.toString());
|
System.out.println("service : " + service.toString());
|
||||||
} catch (NacosException e) {
|
} catch (NacosException e) {
|
||||||
NAMING_LOGGER.error(e.getErrMsg());
|
NAMING_LOGGER.error(e.getErrMsg());
|
||||||
|
@ -111,7 +111,7 @@ public class Constants {
|
|||||||
|
|
||||||
public static final String CONFIG_CONTROLLER_PATH = BASE_PATH + "/configs";
|
public static final String CONFIG_CONTROLLER_PATH = BASE_PATH + "/configs";
|
||||||
|
|
||||||
public static final String HEALTH_CONTROLLER_PATH = BASE_PATH + "/health";
|
public static final String HEALTH_CONTROLLER_PATH = BASE_PATH + "//health";
|
||||||
|
|
||||||
public static final String HISTORY_CONTROLLER_PATH = BASE_PATH + "/history";
|
public static final String HISTORY_CONTROLLER_PATH = BASE_PATH + "/history";
|
||||||
|
|
||||||
|
@ -0,0 +1,147 @@
|
|||||||
|
/*
|
||||||
|
* 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.test.naming;
|
||||||
|
|
||||||
|
import com.alibaba.nacos.api.common.Constants;
|
||||||
|
import com.alibaba.nacos.api.exception.NacosException;
|
||||||
|
import com.alibaba.nacos.api.naming.MaintainFactory;
|
||||||
|
import com.alibaba.nacos.api.naming.MaintainService;
|
||||||
|
import com.alibaba.nacos.api.naming.NamingFactory;
|
||||||
|
import com.alibaba.nacos.api.naming.NamingService;
|
||||||
|
import com.alibaba.nacos.api.naming.pojo.Instance;
|
||||||
|
import com.alibaba.nacos.api.naming.pojo.Service;
|
||||||
|
import com.alibaba.nacos.api.selector.ExpressionSelector;
|
||||||
|
import com.alibaba.nacos.api.selector.NoneSelector;
|
||||||
|
import com.alibaba.nacos.naming.NamingApp;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.boot.web.server.LocalServerPort;
|
||||||
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author liaochuntao
|
||||||
|
* @date 2019-05-07 10:13
|
||||||
|
**/
|
||||||
|
@RunWith(SpringRunner.class)
|
||||||
|
@SpringBootTest(classes = NamingApp.class, properties = {"server.servlet.context-path=/nacos"},
|
||||||
|
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
|
public class MaintainService_ITCase {
|
||||||
|
|
||||||
|
private MaintainService maintainService;
|
||||||
|
private NamingService namingService;
|
||||||
|
private Instance instance;
|
||||||
|
private Service service;
|
||||||
|
|
||||||
|
@LocalServerPort
|
||||||
|
private int port;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
NamingBase.prepareServer(port);
|
||||||
|
|
||||||
|
if (maintainService == null) {
|
||||||
|
TimeUnit.SECONDS.sleep(10);
|
||||||
|
maintainService = MaintainFactory.createMaintainService("127.0.0.1" + ":" + port);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (namingService == null) {
|
||||||
|
TimeUnit.SECONDS.sleep(10);
|
||||||
|
namingService = NamingFactory.createNamingService("127.0.0.1" + ":" + port);
|
||||||
|
}
|
||||||
|
|
||||||
|
instance = new Instance();
|
||||||
|
instance.setIp("127.0.0.1");
|
||||||
|
instance.setPort(8081);
|
||||||
|
instance.setWeight(2);
|
||||||
|
instance.setClusterName(Constants.DEFAULT_CLUSTER_NAME);
|
||||||
|
Map<String, String> map = new HashMap<String, String>();
|
||||||
|
map.put("netType", "external");
|
||||||
|
map.put("version", "1.0");
|
||||||
|
instance.setMetadata(map);
|
||||||
|
|
||||||
|
service = new Service();
|
||||||
|
service.setName("nacos-api");
|
||||||
|
service.setGroupName(Constants.DEFAULT_GROUP);
|
||||||
|
service.setProtectThreshold(1.0f);
|
||||||
|
Map<String, String> metadata = new HashMap<String, String>();
|
||||||
|
metadata.put("nacos-1", "this is a test metadata");
|
||||||
|
service.setMetadata(metadata);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateInstance() throws NacosException {
|
||||||
|
Map<String, String> map = new HashMap<String, String>();
|
||||||
|
map.put("netType", "external-update");
|
||||||
|
map.put("version", "2.0");
|
||||||
|
instance.setMetadata(map);
|
||||||
|
namingService.registerInstance("nacos-api", instance);
|
||||||
|
maintainService.updateInstance("nacos-api", instance);
|
||||||
|
List<Instance> instances = namingService.getAllInstances("nacos-api", true);
|
||||||
|
|
||||||
|
Assert.assertEquals(instances.size(), 1);
|
||||||
|
System.out.println(instances.get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void createService() throws NacosException {
|
||||||
|
|
||||||
|
ExpressionSelector selector = new ExpressionSelector();
|
||||||
|
selector.setExpression("CONSUMER.label.A=PROVIDER.label.A &CONSUMER.label.B=PROVIDER.label.B");
|
||||||
|
|
||||||
|
System.out.println("service info : " + service);
|
||||||
|
maintainService.createService(service, selector);
|
||||||
|
Service remoteService = maintainService.queryService("nacos-api");
|
||||||
|
System.out.println("remote service info : " + remoteService);
|
||||||
|
Assert.assertEquals(service.toString(), remoteService.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateService() throws NacosException {
|
||||||
|
Service service = new Service();
|
||||||
|
service.setName("nacos-api");
|
||||||
|
service.setGroupName(Constants.DEFAULT_GROUP);
|
||||||
|
service.setProtectThreshold(1.0f);
|
||||||
|
Map<String, String> metadata = new HashMap<String, String>();
|
||||||
|
metadata.put("nacos-1", "nacos-3-update");
|
||||||
|
service.setMetadata(metadata);
|
||||||
|
|
||||||
|
maintainService.updateService(service, new NoneSelector());
|
||||||
|
Service remoteService = maintainService.queryService("nacos-api");
|
||||||
|
System.out.println("remote service info : " + remoteService);
|
||||||
|
Assert.assertEquals(service.toString(), remoteService.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void deleteService() throws NacosException {
|
||||||
|
Assert.assertTrue(maintainService.deleteService("nacos-api"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void dregInstance() throws NacosException {
|
||||||
|
namingService.deregisterInstance("nacos-api", "127.0.0.1", 8081);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user