* Add error code 5-2 ~ 5-20. * Error code is managed with constants (#10549) * Error code is managed with constants (#10549)
This commit is contained in:
parent
4206b5e67a
commit
43d48bd6ca
|
|
@ -43,6 +43,8 @@ import java.util.LinkedList;
|
|||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_STOP;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_NO_VALID_PROVIDER;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.ROUTER_KEY;
|
||||
|
||||
/**
|
||||
|
|
@ -297,7 +299,7 @@ public class RouterChain<T> {
|
|||
if (routerSnapshotSwitcher.isEnable()) {
|
||||
routerSnapshotSwitcher.setSnapshot(message);
|
||||
}
|
||||
logger.warn("2-2","No provider available after route for the service","",message);
|
||||
logger.warn(CLUSTER_NO_VALID_PROVIDER,"No provider available after route for the service","",message);
|
||||
}
|
||||
} else {
|
||||
if (logger.isInfoEnabled()) {
|
||||
|
|
@ -345,7 +347,7 @@ public class RouterChain<T> {
|
|||
try {
|
||||
router.stop();
|
||||
} catch (Exception e) {
|
||||
logger.error("2-3","route stop failed","","Error trying to stop router " + router.getClass(),e);
|
||||
logger.error(CLUSTER_FAILED_STOP,"route stop failed","","Error trying to stop router " + router.getClass(),e);
|
||||
}
|
||||
}
|
||||
routers = Collections.emptyList();
|
||||
|
|
@ -355,7 +357,7 @@ public class RouterChain<T> {
|
|||
try {
|
||||
router.stop();
|
||||
} catch (Exception e) {
|
||||
logger.error("2-3","StateRouter stop failed","","Error trying to stop StateRouter " + router.getClass(),e);
|
||||
logger.error(CLUSTER_FAILED_STOP,"StateRouter stop failed","","Error trying to stop StateRouter " + router.getClass(),e);
|
||||
}
|
||||
}
|
||||
stateRouters = Collections.emptyList();
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.RECONNECT_TASK_PERIOD;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.RECONNECT_TASK_TRY_COUNT;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.REGISTER_IP_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_NO_VALID_PROVIDER;
|
||||
import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.CONSUMER_URL_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;
|
||||
|
|
@ -195,7 +196,7 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
|
|||
if (routedResult.isEmpty()) {
|
||||
// 2-2 - No provider available.
|
||||
|
||||
logger.warn("2-2", "provider server or registry center crashed", "",
|
||||
logger.warn(CLUSTER_NO_VALID_PROVIDER, "provider server or registry center crashed", "",
|
||||
"No provider available after connectivity filter for the service " + getConsumerUrl().getServiceKey()
|
||||
+ " All validInvokers' size: " + validInvokers.size()
|
||||
+ " All routed invokers' size: " + routedResult.size()
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ import org.apache.dubbo.rpc.cluster.router.state.BitList;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_SITE_SELECTION;
|
||||
|
||||
/**
|
||||
* StaticDirectory
|
||||
*/
|
||||
|
|
@ -108,7 +110,7 @@ public class StaticDirectory<T> extends AbstractDirectory<T> {
|
|||
List<Invoker<T>> finalInvokers = routerChain.route(getConsumerUrl(), invokers, invocation);
|
||||
return finalInvokers == null ? BitList.emptyList() : finalInvokers;
|
||||
} catch (Throwable t) {
|
||||
logger.error("2-1","Failed to execute router","","Failed to execute router: " + getUrl() + ", cause: " + t.getMessage(),t);
|
||||
logger.error(CLUSTER_FAILED_SITE_SELECTION,"Failed to execute router","","Failed to execute router: " + getUrl() + ", cause: " + t.getMessage(),t);
|
||||
return BitList.emptyList();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ import java.util.Set;
|
|||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_LOAD_MERGER;
|
||||
|
||||
public class MergerFactory implements ScopeModelAware {
|
||||
|
||||
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(MergerFactory.class);
|
||||
|
|
@ -73,7 +75,7 @@ public class MergerFactory implements ScopeModelAware {
|
|||
Merger m = scopeModel.getExtensionLoader(Merger.class).getExtension(name);
|
||||
Class<?> actualTypeArg = getActualTypeArgument(m.getClass());
|
||||
if (actualTypeArg == null) {
|
||||
logger.warn("2-4","load merger config failed","","Failed to get actual type argument from merger " + m.getClass().getName());
|
||||
logger.warn(CLUSTER_FAILED_LOAD_MERGER,"load merger config failed","","Failed to get actual type argument from merger " + m.getClass().getName());
|
||||
continue;
|
||||
}
|
||||
MERGER_CACHE.putIfAbsent(actualTypeArg, m);
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@ import static org.apache.dubbo.common.constants.CommonConstants.ENABLED_KEY;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.HOST_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.METHOD_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_CONDITIONAL_ROUTE_LIST_EMPTY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_EXEC_CONDITION_ROUTER;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.ADDRESS_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.FORCE_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.RULE_KEY;
|
||||
|
|
@ -54,7 +56,7 @@ import static org.apache.dubbo.rpc.cluster.Constants.RUNTIME_KEY;
|
|||
* ConditionRouter
|
||||
* It supports the conditional routing configured by "override://", in 2.6.x,
|
||||
* refer to https://dubbo.apache.org/en/docs/v2.7/user/examples/routing-rule/ .
|
||||
* For 2.7.x and later, please refer to {@link org.apache.dubbo.rpc.cluster.router.condition.config.ServiceRouter}
|
||||
* For 2.7.x and later, please refer to {@link org.apache.dubbo.rpc.cluster.router.condition.config.ServiceStateRouter}
|
||||
* and {@link AppStateRouter}
|
||||
* refer to https://dubbo.apache.org/zh/docs/v2.7/user/examples/routing-rule/ .
|
||||
*/
|
||||
|
|
@ -202,7 +204,7 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
|
|||
return invokers;
|
||||
}
|
||||
if (thenCondition == null) {
|
||||
logger.warn("2-6","condition state router thenCondition is empt","","The current consumer in the service blacklist. consumer: " + NetUtils.getLocalHost() + ", service: " + url.getServiceKey()); if (needToPrintMessage) {
|
||||
logger.warn(CLUSTER_CONDITIONAL_ROUTE_LIST_EMPTY,"condition state router thenCondition is empty","","The current consumer in the service blacklist. consumer: " + NetUtils.getLocalHost() + ", service: " + url.getServiceKey()); if (needToPrintMessage) {
|
||||
messageHolder.set("Empty return. Reason: ThenCondition is empty.");
|
||||
}
|
||||
return BitList.emptyList();
|
||||
|
|
@ -216,14 +218,14 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
|
|||
}
|
||||
return result;
|
||||
} else if (this.isForce()) {
|
||||
logger.warn("2-6","execute condition state router result list is empty. and force=true","","The route result is empty and force execute. consumer: " + NetUtils.getLocalHost() + ", service: " + url.getServiceKey() + ", router: " + url.getParameterAndDecoded(RULE_KEY));
|
||||
logger.warn(CLUSTER_CONDITIONAL_ROUTE_LIST_EMPTY,"execute condition state router result list is empty. and force=true","","The route result is empty and force execute. consumer: " + NetUtils.getLocalHost() + ", service: " + url.getServiceKey() + ", router: " + url.getParameterAndDecoded(RULE_KEY));
|
||||
if (needToPrintMessage) {
|
||||
messageHolder.set("Empty return. Reason: Empty result from condition and condition is force.");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.error("2-7","execute condition state router exception","","Failed to execute condition router rule: " + getUrl() + ", invokers: " + invokers + ", cause: " + t.getMessage(),t);
|
||||
logger.error(CLUSTER_FAILED_EXEC_CONDITION_ROUTER,"execute condition state router exception","","Failed to execute condition router rule: " + getUrl() + ", invokers: " + invokers + ", cause: " + t.getMessage(),t);
|
||||
}
|
||||
if (needToPrintMessage) {
|
||||
messageHolder.set("Directly return. Reason: Error occurred ( or result is empty ).");
|
||||
|
|
@ -323,7 +325,7 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
|
|||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.warn("2-7","condition state router arguments match failed","","Arguments match failed, matchPair[]" + matchPair + "] invocation[" + invocation + "]",e);
|
||||
logger.warn(CLUSTER_FAILED_EXEC_CONDITION_ROUTER,"condition state router arguments match failed","","Arguments match failed, matchPair[]" + matchPair + "] invocation[" + invocation + "]",e);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_RULE_PARSING;
|
||||
|
||||
/**
|
||||
* Abstract router which listens to dynamic configuration
|
||||
*/
|
||||
|
|
@ -75,7 +77,7 @@ public abstract class ListenableStateRouter<T> extends AbstractStateRouter<T> im
|
|||
routerRule = ConditionRuleParser.parse(event.getContent());
|
||||
generateConditions(routerRule);
|
||||
} catch (Exception e) {
|
||||
logger.error("2-15","Failed to parse the raw condition rule","","Failed to parse the raw condition rule and it will not take effect, please check " +
|
||||
logger.error(CLUSTER_FAILED_RULE_PARSING,"Failed to parse the raw condition rule","","Failed to parse the raw condition rule and it will not take effect, please check " +
|
||||
"if the condition rule matches with the template, the raw rule is:\n " + event.getContent(),e);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import java.util.LinkedList;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_RECEIVE_RULE;
|
||||
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.METADATA_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.NAME_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.STANDARD_ROUTER_KEY;
|
||||
|
|
@ -78,17 +79,17 @@ public class MeshAppRuleListener implements ConfigurationListener {
|
|||
if (ruleType != null) {
|
||||
groupMap.computeIfAbsent(ruleType, (k)-> new LinkedList<>()).add(resultMap);
|
||||
} else {
|
||||
logger.error("2-13","receive mesh app route rule is invalid","","Unable to get rule type from raw rule. " +
|
||||
logger.error(CLUSTER_FAILED_RECEIVE_RULE,"receive mesh app route rule is invalid","","Unable to get rule type from raw rule. " +
|
||||
"Probably the metadata.name is absent. App Name: " + appName + " RawRule: " + configInfo);
|
||||
}
|
||||
} else {
|
||||
logger.error("2-13","receive mesh app route rule is invalid","","Rule format is unacceptable. App Name: " + appName + " RawRule: " + configInfo);
|
||||
logger.error(CLUSTER_FAILED_RECEIVE_RULE,"receive mesh app route rule is invalid","","Rule format is unacceptable. App Name: " + appName + " RawRule: " + configInfo);
|
||||
}
|
||||
}
|
||||
|
||||
ruleMapHolder = groupMap;
|
||||
} catch (Exception e) {
|
||||
logger.error("2-13","failed to receive mesh app route rule","","[MeshAppRule] parse failed: " + configInfo,e);
|
||||
logger.error(CLUSTER_FAILED_RECEIVE_RULE,"failed to receive mesh app route rule","","[MeshAppRule] parse failed: " + configInfo,e);
|
||||
}
|
||||
if (ruleMapHolder != null) {
|
||||
meshRuleDispatcher.post(ruleMapHolder);
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import java.util.Set;
|
|||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_RECEIVE_RULE;
|
||||
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.MESH_RULE_DATA_ID_SUFFIX;
|
||||
|
||||
public class MeshRuleManager {
|
||||
|
|
@ -63,7 +64,7 @@ public class MeshRuleManager {
|
|||
meshAppRuleListener.receiveConfigInfo(rawConfig);
|
||||
}
|
||||
} catch (Throwable throwable) {
|
||||
logger.error("2-13","failed to get mesh app route rule","","get MeshRuleManager app rule failed.",throwable);
|
||||
logger.error(CLUSTER_FAILED_RECEIVE_RULE,"failed to get mesh app route rule","","get MeshRuleManager app rule failed.",throwable);
|
||||
}
|
||||
|
||||
ruleRepository.addListener(appRuleDataId, DynamicConfiguration.DEFAULT_GROUP, meshAppRuleListener);
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ import java.util.Set;
|
|||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_RECEIVE_RULE;
|
||||
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.DESTINATION_RULE_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.INVALID_APP_NAME;
|
||||
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.KIND_KEY;
|
||||
|
|
@ -308,7 +309,7 @@ public abstract class MeshRuleRouter<T> extends AbstractStateRouter<T> implement
|
|||
appToVDGroup.put(appName, vsDestinationGroup);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.error("2-13","failed to parse mesh route rule","","Error occurred when parsing rule component.",t);
|
||||
logger.error(CLUSTER_FAILED_RECEIVE_RULE,"failed to parse mesh route rule","","Error occurred when parsing rule component.",t);
|
||||
}
|
||||
|
||||
computeSubset(appToVDGroup);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ import java.util.Map;
|
|||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_NO_RULE_LISTENER;
|
||||
|
||||
|
||||
public class MeshRuleDispatcher {
|
||||
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(MeshRuleDispatcher.class);
|
||||
|
|
@ -55,8 +57,7 @@ public class MeshRuleDispatcher {
|
|||
listener.onRuleChange(appName, entry.getValue());
|
||||
}
|
||||
} else {
|
||||
logger.warn("2-18","Receive mesh rule but none of listener has been registered","","Receive rule but none of listener has been registered. Maybe type not matched. Rule Type: " + ruleType);
|
||||
logger.warn("Receive rule but none of listener has been registered. Maybe type not matched. Rule Type: " + ruleType);
|
||||
logger.warn(CLUSTER_NO_RULE_LISTENER,"Receive mesh rule but none of listener has been registered","","Receive rule but none of listener has been registered. Maybe type not matched. Rule Type: " + ruleType);
|
||||
}
|
||||
}
|
||||
// clear rule listener not being notified in this time
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ import java.util.Map;
|
|||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_SCRIPT_EXCEPTION;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_SCRIPT_TYPE_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.FORCE_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.RULE_KEY;
|
||||
|
|
@ -92,7 +93,7 @@ public class ScriptStateRouter<T> extends AbstractStateRouter<T> {
|
|||
Compilable compilable = (Compilable) engine;
|
||||
function = compilable.compile(rule);
|
||||
} catch (ScriptException e) {
|
||||
logger.error("2-15","script route rule invalid","","script route error, rule has been ignored. rule: " + rule +
|
||||
logger.error(CLUSTER_SCRIPT_EXCEPTION,"script route rule invalid","","script route error, rule has been ignored. rule: " + rule +
|
||||
", url: " + RpcContext.getServiceContext().getUrl(),e);
|
||||
}
|
||||
}
|
||||
|
|
@ -136,7 +137,7 @@ public class ScriptStateRouter<T> extends AbstractStateRouter<T> {
|
|||
try {
|
||||
return function.eval(bindings);
|
||||
} catch (ScriptException e) {
|
||||
logger.error("2-15","Scriptrouter exec script error","","Script route error, rule has been ignored. rule: " + rule + ", method:" +
|
||||
logger.error(CLUSTER_SCRIPT_EXCEPTION,"Scriptrouter exec script error","","Script route error, rule has been ignored. rule: " + rule + ", method:" +
|
||||
invocation.getMethodName() + ", url: " + RpcContext.getContext().getUrl(),e);
|
||||
return invokers;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ import java.util.function.Predicate;
|
|||
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.TAG_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_TAG_ROUTE_EMPTY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_TAG_ROUTE_INVALID;
|
||||
import static org.apache.dubbo.rpc.Constants.FORCE_USE_TAG;
|
||||
|
||||
/**
|
||||
|
|
@ -72,7 +74,7 @@ public class TagStateRouter<T> extends AbstractStateRouter<T> implements Configu
|
|||
this.tagRouterRule = TagRuleParser.parse(event.getContent());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("2-11","Failed to parse the raw tag router rule","","Failed to parse the raw tag router rule and it will not take effect, please check if the " +
|
||||
logger.error(CLUSTER_TAG_ROUTE_INVALID,"Failed to parse the raw tag router rule","","Failed to parse the raw tag router rule and it will not take effect, please check if the " +
|
||||
"rule matches with the template, the raw rule is:\n ",e);
|
||||
}
|
||||
}
|
||||
|
|
@ -235,7 +237,7 @@ public class TagStateRouter<T> extends AbstractStateRouter<T> implements Configu
|
|||
return true;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("2-11","tag route address is invalid","","The format of ip address is invalid in tag route. Address :" + address,e);
|
||||
logger.error(CLUSTER_TAG_ROUTE_INVALID,"tag route address is invalid","","The format of ip address is invalid in tag route. Address :" + address,e);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
|
@ -256,7 +258,7 @@ public class TagStateRouter<T> extends AbstractStateRouter<T> implements Configu
|
|||
String providerApplication = url.getRemoteApplication();
|
||||
|
||||
if (StringUtils.isEmpty(providerApplication)) {
|
||||
logger.error("2-12","tag router get providerApplication is empty","","TagRouter must getConfig from or subscribe to a specific application, but the application " +
|
||||
logger.error(CLUSTER_TAG_ROUTE_EMPTY,"tag router get providerApplication is empty","","TagRouter must getConfig from or subscribe to a specific application, but the application " +
|
||||
"in this TagRouter is not specified.");
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_RESELECT
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.ENABLE_CONNECTIVITY_VALIDATION;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.RESELECT_COUNT;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_RESELECT_INVOKERS;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_AVAILABLE_CHECK_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_STICKY_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER_AVAILABLE_CHECK;
|
||||
|
|
@ -213,11 +214,11 @@ public abstract class AbstractClusterInvoker<T> implements ClusterInvoker<T> {
|
|||
//Avoid collision
|
||||
invoker = invokers.get((index + 1) % invokers.size());
|
||||
} catch (Exception e) {
|
||||
logger.warn("2-5","select invokers exception","",e.getMessage() + " may because invokers list dynamic change, ignore.",e);
|
||||
logger.warn(CLUSTER_FAILED_RESELECT_INVOKERS,"select invokers exception","",e.getMessage() + " may because invokers list dynamic change, ignore.",e);
|
||||
}
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.error("2-5","failed to reselect invokers","","cluster reselect fail reason is :" + t.getMessage() + " if can not solve, you can set cluster.availablecheck=false in url",t);
|
||||
logger.error(CLUSTER_FAILED_RESELECT_INVOKERS,"failed to reselect invokers","","cluster reselect fail reason is :" + t.getMessage() + " if can not solve, you can set cluster.availablecheck=false in url",t);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import org.apache.dubbo.rpc.cluster.LoadBalance;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_ERROR_RESPONSE;
|
||||
import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;
|
||||
|
||||
/**
|
||||
|
|
@ -76,7 +77,7 @@ public class BroadcastClusterInvoker<T> extends AbstractClusterInvoker<T> {
|
|||
Throwable resultException = result.getException();
|
||||
if (null != resultException) {
|
||||
exception = getRpcException(result.getException());
|
||||
logger.warn("2-8","provider return error response","",exception.getMessage(),exception);
|
||||
logger.warn(CLUSTER_ERROR_RESPONSE,"provider return error response","",exception.getMessage(),exception);
|
||||
failIndex++;
|
||||
if (failIndex == failThresholdIndex) {
|
||||
break;
|
||||
|
|
@ -85,7 +86,7 @@ public class BroadcastClusterInvoker<T> extends AbstractClusterInvoker<T> {
|
|||
}
|
||||
} catch (Throwable e) {
|
||||
exception = getRpcException(e);
|
||||
logger.warn("2-8","provider return error response","",exception.getMessage(),exception);
|
||||
logger.warn(CLUSTER_ERROR_RESPONSE,"provider return error response","",exception.getMessage(),exception);
|
||||
failIndex++;
|
||||
if (failIndex == failThresholdIndex) {
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ import java.util.concurrent.TimeUnit;
|
|||
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_FAILBACK_TIMES;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.RETRIES_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_INVOKE_SERVICE;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_TIMER_RETRY_FAILED;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_FAILBACK_TASKS;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.FAIL_BACK_TASKS_KEY;
|
||||
|
||||
|
|
@ -93,7 +95,7 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
|
|||
try {
|
||||
failTimer.newTimeout(retryTimerTask, RETRY_FAILED_PERIOD, TimeUnit.SECONDS);
|
||||
} catch (Throwable e) {
|
||||
logger.error("2-9","add newTimeout exception","","Failback background works error, invocation->" + invocation + ", exception: " + e.getMessage(),e);
|
||||
logger.error(CLUSTER_TIMER_RETRY_FAILED,"add newTimeout exception","","Failback background works error, invocation->" + invocation + ", exception: " + e.getMessage(),e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -108,7 +110,7 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
|
|||
// Then the serviceContext will be cleared after the call is completed.
|
||||
return invokeWithContextAsync(invoker, invocation, consumerUrl);
|
||||
} catch (Throwable e) {
|
||||
logger.error("2-10","Failback to invoke method and start to retries","","Failback to invoke method " + invocation.getMethodName() + ", wait for retry in background. Ignored exception: "
|
||||
logger.error(CLUSTER_FAILED_INVOKE_SERVICE,"Failback to invoke method and start to retries","","Failback to invoke method " + invocation.getMethodName() + ", wait for retry in background. Ignored exception: "
|
||||
+ e.getMessage() + ", ",e);
|
||||
if (retries > 0) {
|
||||
addFailed(loadbalance, invocation, invokers, invoker, consumerUrl);
|
||||
|
|
@ -166,9 +168,9 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
|
|||
lastInvoker = retryInvoker;
|
||||
invokeWithContextAsync(retryInvoker, invocation, consumerUrl);
|
||||
} catch (Throwable e) {
|
||||
logger.error("2-10","Failed retry to invoke method","","Failed retry to invoke method " + invocation.getMethodName() + ", waiting again.",e);
|
||||
logger.error(CLUSTER_FAILED_INVOKE_SERVICE,"Failed retry to invoke method","","Failed retry to invoke method " + invocation.getMethodName() + ", waiting again.",e);
|
||||
if ((++retriedTimes) >= retries) {
|
||||
logger.error("2-10","Failed retry to invoke method and retry times exceed threshold","","Failed retry times exceed threshold (" + retries + "), We have to abandon, invocation->" + invocation,e);
|
||||
logger.error(CLUSTER_FAILED_INVOKE_SERVICE,"Failed retry to invoke method and retry times exceed threshold","","Failed retry times exceed threshold (" + retries + "), We have to abandon, invocation->" + invocation,e);
|
||||
} else {
|
||||
rePut(timeout);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import java.util.Set;
|
|||
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_RETRIES;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.RETRIES_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_MULTIPLE_RETRIES;
|
||||
|
||||
/**
|
||||
* When invoke fails, log the initial error and retry other invokers (retry n times, which means at most n different invokers will be invoked)
|
||||
|
|
@ -79,7 +80,7 @@ public class FailoverClusterInvoker<T> extends AbstractClusterInvoker<T> {
|
|||
try {
|
||||
Result result = invokeWithContext(invoker, invocation);
|
||||
if (le != null && logger.isWarnEnabled()) {
|
||||
logger.warn("2-16","failed to retry do invoke","","Although retry the method " + methodName
|
||||
logger.warn(CLUSTER_FAILED_MULTIPLE_RETRIES,"failed to retry do invoke","","Although retry the method " + methodName
|
||||
+ " in the service " + getInterface().getName()
|
||||
+ " was successful by the provider " + invoker.getUrl().getAddress()
|
||||
+ ", but there have been failed providers " + providers
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ import org.apache.dubbo.rpc.cluster.LoadBalance;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_ERROR_RESPONSE;
|
||||
|
||||
/**
|
||||
* When invoke fails, log the error message and ignore this error by returning an empty Result.
|
||||
* Usually used to write audit logs and other operations
|
||||
|
|
@ -49,7 +51,7 @@ public class FailsafeClusterInvoker<T> extends AbstractClusterInvoker<T> {
|
|||
Invoker<T> invoker = select(loadbalance, invocation, invokers, null);
|
||||
return invokeWithContext(invoker, invocation);
|
||||
} catch (Throwable e) {
|
||||
logger.error("2-8","Failsafe for provider exception","","Failsafe ignore exception: " + e.getMessage(),e);
|
||||
logger.error(CLUSTER_ERROR_RESPONSE,"Failsafe for provider exception","","Failsafe ignore exception: " + e.getMessage(),e);
|
||||
return AsyncRpcResult.newDefaultAsyncResult(null, null, invocation); // ignore
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ import org.apache.dubbo.rpc.support.RpcUtils;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_MOCK_REQUEST;
|
||||
import static org.apache.dubbo.rpc.Constants.MOCK_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.FORCE_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.INVOCATION_NEED_MOCK;
|
||||
|
|
@ -102,7 +103,7 @@ public class MockClusterInvoker<T> implements ClusterInvoker<T> {
|
|||
result = this.invoker.invoke(invocation);
|
||||
} else if (value.startsWith(FORCE_KEY)) {
|
||||
if (logger.isWarnEnabled()) {
|
||||
logger.warn("2-17","force mock","","force-mock: " + invocation.getMethodName() + " force-mock enabled , url : " + getUrl());
|
||||
logger.warn(CLUSTER_FAILED_MOCK_REQUEST,"force mock","","force-mock: " + invocation.getMethodName() + " force-mock enabled , url : " + getUrl());
|
||||
}
|
||||
//force:direct mock
|
||||
result = doMockInvoke(invocation, null);
|
||||
|
|
@ -127,7 +128,7 @@ public class MockClusterInvoker<T> implements ClusterInvoker<T> {
|
|||
}
|
||||
|
||||
if (logger.isWarnEnabled()) {
|
||||
logger.warn("2-17","failed to mock invoke","","fail-mock: " + invocation.getMethodName() + " fail-mock enabled , url : " + getUrl(),e);
|
||||
logger.warn(CLUSTER_FAILED_MOCK_REQUEST,"failed to mock invoke","","fail-mock: " + invocation.getMethodName() + " fail-mock enabled , url : " + getUrl(),e);
|
||||
}
|
||||
result = doMockInvoke(invocation, e);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ import java.util.Date;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_CACHE_FILE_EXCEED_MAXIMUM_LIMIT;
|
||||
|
||||
/**
|
||||
* Local file interaction class that can back different caches.
|
||||
* <p>
|
||||
|
|
@ -73,7 +75,7 @@ public class FileCacheStore {
|
|||
}
|
||||
|
||||
if (count > entrySize) {
|
||||
logger.warn("0-4", "mis-configuration of system properties",
|
||||
logger.warn(COMMON_CACHE_FILE_EXCEED_MAXIMUM_LIMIT, "mis-configuration of system properties",
|
||||
"Check Java system property 'dubbo.mapping.cache.entrySize' and 'dubbo.meta.cache.entrySize'.",
|
||||
"Cache file was truncated for exceeding the maximum entry size: " + entrySize);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@ import java.util.Map;
|
|||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_CACHE_PATH_INACCESSIBLE;
|
||||
|
||||
/**
|
||||
* ClassLoader Level static share.
|
||||
* Prevent FileCacheStore being operated in multi-application
|
||||
|
|
@ -92,7 +94,7 @@ public final class FileCacheStoreFactory {
|
|||
} catch (IOException e) {
|
||||
// 0-3 - cache path inaccessible
|
||||
|
||||
logger.error("0-3", "inaccessible of cache path", "",
|
||||
logger.error(COMMON_CACHE_PATH_INACCESSIBLE, "inaccessible of cache path", "",
|
||||
"Cache store path can't be created: ", e);
|
||||
|
||||
throw new RuntimeException("Cache store path can't be created: " + candidate, e);
|
||||
|
|
@ -157,7 +159,7 @@ public final class FileCacheStoreFactory {
|
|||
return builder.build();
|
||||
} catch (Throwable t) {
|
||||
|
||||
logger.warn("0-3", "inaccessible of cache path", "",
|
||||
logger.warn(COMMON_CACHE_PATH_INACCESSIBLE, "inaccessible of cache path", "",
|
||||
"Failed to create file store cache. Local file cache will be disabled. Cache file name: " + name, t);
|
||||
|
||||
return FileCacheStore.Empty.getInstance(name);
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import org.apache.dubbo.common.logger.LoggerFactory;
|
|||
import java.util.NoSuchElementException;
|
||||
|
||||
import static org.apache.dubbo.common.config.ConfigurationUtils.isEmptyValue;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_PROPERTY_MISSPELLING;
|
||||
|
||||
/**
|
||||
* Configuration interface, to fetch the value for the specified key.
|
||||
|
|
@ -73,7 +74,7 @@ public interface Configuration {
|
|||
return convert(Integer.class, key, defaultValue);
|
||||
} catch (NumberFormatException e) {
|
||||
// 0-2 Property type mismatch.
|
||||
interfaceLevelLogger.error("0-2", "typo in property value",
|
||||
interfaceLevelLogger.error(COMMON_PROPERTY_MISSPELLING, "typo in property value",
|
||||
"This property requires an integer value.",
|
||||
"Actual Class: " + getClass().getName(), e);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,164 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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 org.apache.dubbo.common.constants;
|
||||
|
||||
/**
|
||||
* constants for logger
|
||||
*/
|
||||
public interface LoggerCodeConstants {
|
||||
|
||||
// common module 0-1 ~ 0-4
|
||||
String COMMON_THREAD_POOL_EXHAUSTED = "0-1";
|
||||
|
||||
String COMMON_PROPERTY_MISSPELLING = "0-2";
|
||||
|
||||
String COMMON_CACHE_PATH_INACCESSIBLE = "0-3";
|
||||
|
||||
String COMMON_CACHE_FILE_EXCEED_MAXIMUM_LIMIT = "0-4";
|
||||
|
||||
// registry module
|
||||
String REGISTRY_ADDRESS_INVALID = "1-1";
|
||||
|
||||
String REGISTRY_ABSENCE = "1-2";
|
||||
|
||||
String REGISTRY_FAILED_URL_EVICTING = "1-3";
|
||||
|
||||
String REGISTRY_EMPTY_ADDRESS = "1-4";
|
||||
|
||||
String REGISTRY_NO_PARAMETERS_URL = "1-5";
|
||||
|
||||
String REGISTRY_FAILED_CLEAR_CACHED_URLS = "1-6";
|
||||
|
||||
String REGISTRY_FAILED_NOTIFY_EVENT = "1-7";
|
||||
|
||||
String REGISTRY_FAILED_DESTROY_UNREGISTER_URL = "1-8";
|
||||
|
||||
String REGISTRY_FAILED_READ_WRITE_CACHE_FILE = "1-9";
|
||||
|
||||
String REGISTRY_FAILED_DELETE_LOCKFILE = "1-10";
|
||||
|
||||
String REGISTRY_FAILED_CREATE_INSTANCE = "1-11";
|
||||
|
||||
String REGISTRY_FAILED_FETCH_INSTANCE = "1-12";
|
||||
|
||||
String REGISTRY_EXECUTE_RETRYING_TASK = "1-13";
|
||||
|
||||
String REGISTRY_FAILED_PARSE_DYNAMIC_CONFIG = "1-14";
|
||||
|
||||
String REGISTRY_FAILED_DESTROY_SERVICE = "1-15";
|
||||
|
||||
String REGISTRY_UNSUPPORTED_CATEGORY = "1-16";
|
||||
|
||||
String REGISTRY_FAILED_REFRESH_ADDRESS = "1-17";
|
||||
|
||||
String REGISTRY_MISSING_METADATA_CONFIG_PORT = "1-18";
|
||||
|
||||
// cluster module 2-1 ~ 2-18
|
||||
String CLUSTER_FAILED_SITE_SELECTION = "2-1";
|
||||
|
||||
String CLUSTER_NO_VALID_PROVIDER = "2-2";
|
||||
|
||||
String CLUSTER_FAILED_STOP = "2-3";
|
||||
|
||||
String CLUSTER_FAILED_LOAD_MERGER = "2-4";
|
||||
|
||||
String CLUSTER_FAILED_RESELECT_INVOKERS = "2-5";
|
||||
|
||||
String CLUSTER_CONDITIONAL_ROUTE_LIST_EMPTY = "2-6";
|
||||
|
||||
String CLUSTER_FAILED_EXEC_CONDITION_ROUTER = "2-7";
|
||||
|
||||
String CLUSTER_ERROR_RESPONSE = "2-8";
|
||||
|
||||
String CLUSTER_TIMER_RETRY_FAILED = "2-9";
|
||||
|
||||
String CLUSTER_FAILED_INVOKE_SERVICE = "2-10";
|
||||
|
||||
String CLUSTER_TAG_ROUTE_INVALID = "2-11";
|
||||
|
||||
String CLUSTER_TAG_ROUTE_EMPTY = "2-12";
|
||||
|
||||
String CLUSTER_FAILED_RECEIVE_RULE = "2-13";
|
||||
|
||||
String CLUSTER_SCRIPT_EXCEPTION = "2-14";
|
||||
|
||||
String CLUSTER_FAILED_RULE_PARSING = "2-15";
|
||||
|
||||
String CLUSTER_FAILED_MULTIPLE_RETRIES = "2-16";
|
||||
|
||||
String CLUSTER_FAILED_MOCK_REQUEST = "2-17";
|
||||
|
||||
String CLUSTER_NO_RULE_LISTENER = "2-18";
|
||||
|
||||
// proxy module 3-1
|
||||
String PROXY_FAILED_CONVERT_URL = "3-1";
|
||||
|
||||
// protocol module 4-1 ~ 4-3
|
||||
String PROTOCOL_UNSUPPORTED = "4-1";
|
||||
|
||||
String PROTOCOL_FAILED_INIT_SERIALIZATION_OPTIMIZER = "4-2";
|
||||
|
||||
String PROTOCOL_FAILED_REFER_INVOKER = "4-3";
|
||||
|
||||
// config module 5-1 ~ 5-20
|
||||
String CONFIG_FAILED_CONNECT_REGISTRY = "5-1";
|
||||
|
||||
String CONFIG_FAILED_SHUTDOWN_HOOK = "5-2";
|
||||
|
||||
String CONFIG_FAILED_DESTROY_INVOKER = "5-3";
|
||||
|
||||
String CONFIG_NO_METHOD_FOUND = "5-4";
|
||||
|
||||
String CONFIG_FAILED_LOAD_ENV_VARIABLE = "5-5";
|
||||
|
||||
String CONFIG_PROPERTY_CONFLICT = "5-6";
|
||||
|
||||
String CONFIG_UNEXPORT_ERROR = "5-7";
|
||||
|
||||
String CONFIG_USE_RANDOM_PORT = "5-8";
|
||||
|
||||
String CONFIG_FAILED_EXPORT_SERVICE = "5-9";
|
||||
|
||||
String CONFIG_SERVER_DISCONNECTED = "5-10";
|
||||
|
||||
String CONFIG_REGISTER_INSTANCE_ERROR = "5-11";
|
||||
|
||||
String CONFIG_REFRESH_INSTANCE_ERROR = "5-12";
|
||||
|
||||
String CONFIG_UNABLE_DESTROY_MODEL = "5-13";
|
||||
|
||||
String CONFIG_FAILED_START_MODEL = "5-14";
|
||||
|
||||
String CONFIG_FAILED_REFERENCE_MODEL = "5-15";
|
||||
|
||||
String CONFIG_FAILED_FIND_PROTOCOL = "5-16";
|
||||
|
||||
String CONFIG_PARAMETER_FORMAT_ERROR = "5-17";
|
||||
|
||||
String CONFIG_FAILED_NOTIFY_EVENT = "5-18";
|
||||
|
||||
String CONFIG_ZOOKEEPER_SERVER_ERROR = "5-19";
|
||||
|
||||
String CONFIG_STOP_DUBBO_ERROR = "5-20";
|
||||
|
||||
// transport module 6-1 ~ 6-2
|
||||
String TRANSPORT_FAILED_CONNECT_PROVIDER = "6-1";
|
||||
|
||||
String TRANSPORT_CLIENT_CONNECT_TIMEOUT = "6-2";
|
||||
|
||||
}
|
||||
|
|
@ -41,6 +41,7 @@ import static java.lang.String.format;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.DUMP_DIRECTORY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.OS_NAME_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.OS_WIN_PREFIX;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_THREAD_POOL_EXHAUSTED;
|
||||
|
||||
/**
|
||||
* Abort Policy.
|
||||
|
|
@ -85,7 +86,7 @@ public class AbortPolicyWithReport extends ThreadPoolExecutor.AbortPolicy {
|
|||
url.getProtocol(), url.getIp(), url.getPort());
|
||||
|
||||
// 0-1 - Thread pool is EXHAUSTED!
|
||||
logger.warn("0-1", "too much client requesting provider", "", msg);
|
||||
logger.warn(COMMON_THREAD_POOL_EXHAUSTED, "too much client requesting provider", "", msg);
|
||||
|
||||
dumpJStack();
|
||||
dispatchThreadPoolExhaustedEvent(msg);
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ import org.apache.dubbo.rpc.model.ApplicationModel;
|
|||
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_SHUTDOWN_HOOK;
|
||||
|
||||
/**
|
||||
* The shutdown hook thread to do the cleanup stuff.
|
||||
* This is a singleton in order to ensure there is only one shutdown hook registered.
|
||||
|
|
@ -86,9 +88,9 @@ public class DubboShutdownHook extends Thread {
|
|||
try {
|
||||
Runtime.getRuntime().addShutdownHook(this);
|
||||
} catch (IllegalStateException e) {
|
||||
logger.warn("5-2", "", "", "register shutdown hook failed: " + e.getMessage(), e);
|
||||
logger.warn(CONFIG_FAILED_SHUTDOWN_HOOK, "", "", "register shutdown hook failed: " + e.getMessage(), e);
|
||||
} catch (Exception e) {
|
||||
logger.warn("5-2", "", "", "register shutdown hook failed: " + e.getMessage(), e);
|
||||
logger.warn(CONFIG_FAILED_SHUTDOWN_HOOK, "", "", "register shutdown hook failed: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -105,9 +107,9 @@ public class DubboShutdownHook extends Thread {
|
|||
try {
|
||||
Runtime.getRuntime().removeShutdownHook(this);
|
||||
} catch (IllegalStateException e) {
|
||||
logger.warn("5-2", "", "", "unregister shutdown hook failed: " + e.getMessage(), e);
|
||||
logger.warn(CONFIG_FAILED_SHUTDOWN_HOOK, "", "", "unregister shutdown hook failed: " + e.getMessage(), e);
|
||||
} catch (Exception e) {
|
||||
logger.warn("5-2", "", "", "unregister shutdown hook failed: " + e.getMessage(), e);
|
||||
logger.warn(CONFIG_FAILED_SHUTDOWN_HOOK, "", "", "unregister shutdown hook failed: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,6 +81,11 @@ import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.SVC;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.TRIPLE;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.UNLOAD_CLUSTER_RELATED;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_NO_VALID_PROVIDER;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_DESTROY_INVOKER;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_NO_METHOD_FOUND;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_LOAD_ENV_VARIABLE;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_PROPERTY_CONFLICT;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDED_BY;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.SUBSCRIBED_SERVICE_NAMES_KEY;
|
||||
import static org.apache.dubbo.common.utils.NetUtils.isInvalidLocalHost;
|
||||
|
|
@ -244,7 +249,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
|
|||
invoker.destroy();
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.warn("5-3", "", "", "Unexpected error occurred when destroy invoker of ReferenceConfig(" + url + ").", t);
|
||||
logger.warn(CONFIG_FAILED_DESTROY_INVOKER, "", "", "Unexpected error occurred when destroy invoker of ReferenceConfig(" + url + ").", t);
|
||||
}
|
||||
invoker = null;
|
||||
ref = null;
|
||||
|
|
@ -308,7 +313,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
|
|||
invoker.destroy();
|
||||
}
|
||||
} catch (Throwable destroy) {
|
||||
logger.warn("5-3", "", "", "Unexpected error occurred when destroy invoker of ReferenceConfig(" + url + ").", t);
|
||||
logger.warn(CONFIG_FAILED_DESTROY_INVOKER, "", "", "Unexpected error occurred when destroy invoker of ReferenceConfig(" + url + ").", t);
|
||||
}
|
||||
if (consumerModel != null) {
|
||||
ModuleServiceRepository repository = getScopeModel().getServiceRepository();
|
||||
|
|
@ -326,7 +331,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
|
|||
t.getMessage().contains("No provider available for the service")) {
|
||||
|
||||
// 2-2 - No provider available.
|
||||
logger.error("2-2", "server crashed", "", "No provider available.", t);
|
||||
logger.error(CLUSTER_NO_VALID_PROVIDER, "server crashed", "", "No provider available.", t);
|
||||
}
|
||||
|
||||
throw t;
|
||||
|
|
@ -381,7 +386,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
|
|||
|
||||
String[] methods = methods(interfaceClass);
|
||||
if (methods.length == 0) {
|
||||
logger.warn("5-4", "", "", "No method found in service interface: " + interfaceClass.getName());
|
||||
logger.warn(CONFIG_NO_METHOD_FOUND, "", "", "No method found in service interface: " + interfaceClass.getName());
|
||||
map.put(METHODS_KEY, ANY_VALUE);
|
||||
} else {
|
||||
map.put(METHODS_KEY, StringUtils.join(new HashSet<>(Arrays.asList(methods)), COMMA_SEPARATOR));
|
||||
|
|
@ -477,7 +482,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
|
|||
String podNamespace;
|
||||
if (StringUtils.isEmpty(System.getenv("POD_NAMESPACE"))) {
|
||||
if (logger.isWarnEnabled()) {
|
||||
logger.warn("5-5", "", "", "Can not get env variable: POD_NAMESPACE, it may not be running in the K8S environment , " +
|
||||
logger.warn(CONFIG_FAILED_LOAD_ENV_VARIABLE, "", "", "Can not get env variable: POD_NAMESPACE, it may not be running in the K8S environment , " +
|
||||
"finally use 'default' replace.");
|
||||
}
|
||||
podNamespace = "default";
|
||||
|
|
@ -655,7 +660,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
|
|||
+ " to the consumer "
|
||||
+ NetUtils.getLocalHost() + " use dubbo version " + Version.getVersion());
|
||||
|
||||
logger.error("2-2", "provider not started", "", "No provider available.", illegalStateException);
|
||||
logger.error(CLUSTER_NO_VALID_PROVIDER, "provider not started", "", "No provider available.", illegalStateException);
|
||||
|
||||
throw illegalStateException;
|
||||
}
|
||||
|
|
@ -683,7 +688,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
|
|||
}
|
||||
if (ProtocolUtils.isGeneric(generic)) {
|
||||
if (interfaceClass != null && !interfaceClass.equals(GenericService.class)) {
|
||||
logger.warn("5-6", "", "", String.format("Found conflicting attributes for interface type: [interfaceClass=%s] and [generic=%s], " +
|
||||
logger.warn(CONFIG_PROPERTY_CONFLICT, "", "", String.format("Found conflicting attributes for interface type: [interfaceClass=%s] and [generic=%s], " +
|
||||
"because the 'generic' attribute has higher priority than 'interfaceClass', so change 'interfaceClass' to '%s'. " +
|
||||
"Note: it will make this reference bean as a candidate bean of type '%s' instead of '%s' when resolving dependency in Spring.",
|
||||
interfaceClass.getName(), generic, GenericService.class.getName(), GenericService.class.getName(), interfaceClass.getName()));
|
||||
|
|
|
|||
|
|
@ -71,6 +71,11 @@ import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.SERVICE_NAME_MAPPING_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_NO_METHOD_FOUND;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_UNEXPORT_ERROR;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_USE_RANDOM_PORT;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_EXPORT_SERVICE;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_SERVER_DISCONNECTED;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_KEY;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_PROTOCOL;
|
||||
import static org.apache.dubbo.common.utils.NetUtils.getAvailablePort;
|
||||
|
|
@ -182,7 +187,7 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
|
|||
try {
|
||||
exporter.unexport();
|
||||
} catch (Throwable t) {
|
||||
logger.warn("5-7", "", "", "Unexpected error occurred when unexport " + exporter, t);
|
||||
logger.warn(CONFIG_UNEXPORT_ERROR, "", "", "Unexpected error occurred when unexport " + exporter, t);
|
||||
}
|
||||
}
|
||||
exporters.clear();
|
||||
|
|
@ -243,7 +248,7 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
|
|||
try {
|
||||
doExport();
|
||||
} catch (Exception e) {
|
||||
logger.error("5-9", "configuration server disconnected", "", "Failed to (async)export service config: " + interfaceName, e);
|
||||
logger.error(CONFIG_FAILED_EXPORT_SERVICE, "configuration server disconnected", "", "Failed to (async)export service config: " + interfaceName, e);
|
||||
}
|
||||
}, getDelay(), TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
|
@ -259,10 +264,10 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
|
|||
if (succeeded) {
|
||||
logger.info("Successfully registered interface application mapping for service " + url.getServiceKey());
|
||||
} else {
|
||||
logger.error("5-10", "configuration server disconnected", "", "Failed register interface application mapping for service " + url.getServiceKey());
|
||||
logger.error(CONFIG_SERVER_DISCONNECTED, "configuration server disconnected", "", "Failed register interface application mapping for service " + url.getServiceKey());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("5-10", "configuration server disconnected", "", "Failed register interface application mapping for service " + url.getServiceKey(), e);
|
||||
logger.error(CONFIG_SERVER_DISCONNECTED, "configuration server disconnected", "", "Failed register interface application mapping for service " + url.getServiceKey(), e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -448,7 +453,7 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
|
|||
|
||||
String[] methods = methods(interfaceClass);
|
||||
if (methods.length == 0) {
|
||||
logger.warn("5-4", "", "", "No method found in service interface: " + interfaceClass.getName());
|
||||
logger.warn(CONFIG_NO_METHOD_FOUND, "", "", "No method found in service interface: " + interfaceClass.getName());
|
||||
map.put(METHODS_KEY, ANY_VALUE);
|
||||
} else {
|
||||
map.put(METHODS_KEY, StringUtils.join(new HashSet<>(Arrays.asList(methods)), ","));
|
||||
|
|
@ -841,7 +846,7 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
|
|||
protocol = protocol.toLowerCase();
|
||||
if (!RANDOM_PORT_MAP.containsKey(protocol)) {
|
||||
RANDOM_PORT_MAP.put(protocol, port);
|
||||
logger.warn("5-8", "", "", "Use random available port(" + port + ") for protocol " + protocol);
|
||||
logger.warn(CONFIG_USE_RANDOM_PORT, "", "", "Use random available port(" + port + ") for protocol " + protocol);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -73,6 +73,8 @@ import static java.lang.String.format;
|
|||
import static org.apache.dubbo.common.config.ConfigurationUtils.parseProperties;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_SPLIT_PATTERN;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_REFRESH_INSTANCE_ERROR;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_REGISTER_INSTANCE_ERROR;
|
||||
import static org.apache.dubbo.common.utils.StringUtils.isEmpty;
|
||||
import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;
|
||||
import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_METADATA_PUBLISH_DELAY;
|
||||
|
|
@ -722,7 +724,7 @@ public class DefaultApplicationDeployer extends AbstractDeployer<ApplicationMode
|
|||
registered = true;
|
||||
ServiceInstanceMetadataUtils.registerMetadataAndInstance(applicationModel);
|
||||
} catch (Exception e) {
|
||||
logger.error("5-11", "configuration server disconnected", "", "Register instance error.", e);
|
||||
logger.error(CONFIG_REGISTER_INSTANCE_ERROR, "configuration server disconnected", "", "Register instance error.", e);
|
||||
}
|
||||
if (registered) {
|
||||
// scheduled task for updating Metadata and ServiceInstance
|
||||
|
|
@ -738,7 +740,7 @@ public class DefaultApplicationDeployer extends AbstractDeployer<ApplicationMode
|
|||
}
|
||||
} catch (Exception e) {
|
||||
if (!applicationModel.isDestroyed()) {
|
||||
logger.error("5-12", "", "", "Refresh instance and metadata error.", e);
|
||||
logger.error(CONFIG_REFRESH_INSTANCE_ERROR, "", "", "Refresh instance and metadata error.", e);
|
||||
}
|
||||
}
|
||||
}, 0, ConfigurationUtils.get(applicationModel, METADATA_PUBLISH_DELAY_KEY, DEFAULT_METADATA_PUBLISH_DELAY), TimeUnit.MILLISECONDS);
|
||||
|
|
@ -956,7 +958,7 @@ public class DefaultApplicationDeployer extends AbstractDeployer<ApplicationMode
|
|||
ServiceInstanceMetadataUtils.refreshMetadataAndInstance(applicationModel);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("5-12", "", "", "Refresh instance and metadata error.", e);
|
||||
logger.error(CONFIG_REFRESH_INSTANCE_ERROR, "", "", "Refresh instance and metadata error.", e);
|
||||
}
|
||||
} finally {
|
||||
// complete future
|
||||
|
|
|
|||
|
|
@ -46,6 +46,11 @@ import java.util.concurrent.CompletableFuture;
|
|||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_START_MODEL;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_UNABLE_DESTROY_MODEL;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_REFERENCE_MODEL;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_EXPORT_SERVICE;
|
||||
|
||||
/**
|
||||
* Export/refer services of module
|
||||
*/
|
||||
|
|
@ -223,7 +228,7 @@ public class DefaultModuleDeployer extends AbstractDeployer<ModuleModel> impleme
|
|||
consumerModel.getDestroyRunner().run();
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.error("5-13", "there are problems with the custom implementation.", "", "Unable to destroy model: consumerModel.", t);
|
||||
logger.error(CONFIG_UNABLE_DESTROY_MODEL, "there are problems with the custom implementation.", "", "Unable to destroy model: consumerModel.", t);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -234,7 +239,7 @@ public class DefaultModuleDeployer extends AbstractDeployer<ModuleModel> impleme
|
|||
providerModel.getDestroyRunner().run();
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.error("5-13", "there are problems with the custom implementation.", "", "Unable to destroy model: providerModel.", t);
|
||||
logger.error(CONFIG_UNABLE_DESTROY_MODEL, "there are problems with the custom implementation.", "", "Unable to destroy model: providerModel.", t);
|
||||
}
|
||||
}
|
||||
serviceRepository.destroy();
|
||||
|
|
@ -265,7 +270,7 @@ public class DefaultModuleDeployer extends AbstractDeployer<ModuleModel> impleme
|
|||
private void onModuleFailed(String msg, Throwable ex) {
|
||||
try {
|
||||
setFailed(ex);
|
||||
logger.error("5-14", "", "", "Model start failed: " + msg, ex);
|
||||
logger.error(CONFIG_FAILED_START_MODEL, "", "", "Model start failed: " + msg, ex);
|
||||
applicationDeployer.notifyModuleChanged(moduleModel, DeployState.STARTED);
|
||||
} finally {
|
||||
completeStartFuture(false);
|
||||
|
|
@ -333,7 +338,7 @@ public class DefaultModuleDeployer extends AbstractDeployer<ModuleModel> impleme
|
|||
exportedServices.add(sc);
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.error("5-9", "", "", "Failed to async export service config: " + getIdentifier() + " , catch error : " + t.getMessage(), t);
|
||||
logger.error(CONFIG_FAILED_EXPORT_SERVICE, "", "", "Failed to async export service config: " + getIdentifier() + " , catch error : " + t.getMessage(), t);
|
||||
}
|
||||
}, executor);
|
||||
|
||||
|
|
@ -380,7 +385,7 @@ public class DefaultModuleDeployer extends AbstractDeployer<ModuleModel> impleme
|
|||
try {
|
||||
referenceCache.get(rc);
|
||||
} catch (Throwable t) {
|
||||
logger.error("5-9", "", "", "Failed to async export service config: " + getIdentifier() + " , catch error : " + t.getMessage(), t);
|
||||
logger.error(CONFIG_FAILED_EXPORT_SERVICE, "", "", "Failed to async export service config: " + getIdentifier() + " , catch error : " + t.getMessage(), t);
|
||||
}
|
||||
}, executor);
|
||||
|
||||
|
|
@ -390,7 +395,7 @@ public class DefaultModuleDeployer extends AbstractDeployer<ModuleModel> impleme
|
|||
}
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
logger.error("5-15", "", "", "Model reference failed: " + getIdentifier() + " , catch error : " + t.getMessage(), t);
|
||||
logger.error(CONFIG_FAILED_REFERENCE_MODEL, "", "", "Model reference failed: " + getIdentifier() + " , catch error : " + t.getMessage(), t);
|
||||
referenceCache.destroy(rc);
|
||||
throw t;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.METADATA_SERVICE
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.METADATA_SERVICE_PROTOCOL_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_FIND_PROTOCOL;
|
||||
import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;
|
||||
|
||||
/**
|
||||
|
|
@ -139,7 +140,7 @@ public class ConfigurableMetadataServiceExporter {
|
|||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("5-16", "invalid specified " + specifiedProtocol + " protocol", "", "Failed to find any valid protocol, will use random port to export metadata service.", e);
|
||||
logger.error(CONFIG_FAILED_FIND_PROTOCOL, "invalid specified " + specifiedProtocol + " protocol", "", "Failed to find any valid protocol, will use random port to export metadata service.", e);
|
||||
}
|
||||
} else {
|
||||
protocolConfig.setPort(port);
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_SE
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.USERNAME_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_PARAMETER_FORMAT_ERROR;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_REGISTER_MODE_ALL;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_REGISTER_MODE_INSTANCE;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_REGISTER_MODE_INTERFACE;
|
||||
|
|
@ -726,13 +727,13 @@ public class ConfigValidationUtils {
|
|||
return;
|
||||
}
|
||||
if (value.length() > maxlength) {
|
||||
logger.error("5-17", "the value content is too long", "", "Parameter value format error. Invalid " +
|
||||
logger.error(CONFIG_PARAMETER_FORMAT_ERROR, "the value content is too long", "", "Parameter value format error. Invalid " +
|
||||
property + "=\"" + value + "\" is longer than " + maxlength);
|
||||
}
|
||||
if (pattern != null) {
|
||||
Matcher matcher = pattern.matcher(value);
|
||||
if (!matcher.matches()) {
|
||||
logger.error("5-17", "the value content is illegal character", "", "Parameter value format error. Invalid " +
|
||||
logger.error(CONFIG_PARAMETER_FORMAT_ERROR, "the value content is illegal character", "", "Parameter value format error. Invalid " +
|
||||
property + "=\"" + value + "\" contains illegal " +
|
||||
"character, only digit, letter, '-', '_' or '.' is legal.");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
*/
|
||||
package org.apache.dubbo.config.spring.context;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_STOP_DUBBO_ERROR;
|
||||
import static org.springframework.util.ObjectUtils.nullSafeEquals;
|
||||
|
||||
import java.util.concurrent.Future;
|
||||
|
|
@ -130,7 +131,7 @@ public class DubboDeployApplicationListener implements ApplicationListener<Appli
|
|||
moduleModel.destroy();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("5-20", "", "", "Unexpected error occurred when stop dubbo module: " + e.getMessage(), e);
|
||||
logger.error(CONFIG_STOP_DUBBO_ERROR, "", "", "Unexpected error occurred when stop dubbo module: " + e.getMessage(), e);
|
||||
}
|
||||
// remove context bind cache
|
||||
DubboSpringInitializer.remove(event.getApplicationContext());
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_NOTIFY_EVENT;
|
||||
|
||||
/**
|
||||
* AbstractRegistryService
|
||||
*/
|
||||
|
|
@ -184,7 +186,7 @@ public abstract class AbstractRegistryService implements RegistryService {
|
|||
try {
|
||||
notify(service, urls, listener);
|
||||
} catch (Throwable t) {
|
||||
logger.error("5-18", "", "", "Failed to notify registry event, service: " + service + ", urls: " + urls + ", cause: " + t.getMessage(), t);
|
||||
logger.error(CONFIG_FAILED_NOTIFY_EVENT, "", "", "Failed to notify registry event, service: " + service + ", urls: " + urls + ", cause: " + t.getMessage(), t);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ import java.lang.reflect.Method;
|
|||
import java.util.Properties;
|
||||
import java.util.UUID;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_ZOOKEEPER_SERVER_ERROR;
|
||||
|
||||
/**
|
||||
* from: https://github.com/spring-projects/spring-xd/blob/v1.3.1.RELEASE/spring-xd-dirt/src/main/java/org/springframework/xd/dirt/zookeeper/ZooKeeperUtils.java
|
||||
* <p>
|
||||
|
|
@ -238,7 +240,7 @@ public class EmbeddedZooKeeper implements SmartLifecycle {
|
|||
if (errorHandler != null) {
|
||||
errorHandler.handleError(e);
|
||||
} else {
|
||||
logger.error("5-19", "ZooKeeper server error", "", "Exception running embedded ZooKeeper.", e);
|
||||
logger.error(CONFIG_ZOOKEEPER_SERVER_ERROR, "ZooKeeper server error", "", "Exception running embedded ZooKeeper.", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_CONNECT_REGISTRY;
|
||||
|
||||
/**
|
||||
* Apollo implementation, https://github.com/ctripcorp/apollo
|
||||
|
|
@ -108,7 +109,7 @@ public class ApolloDynamicConfiguration implements DynamicConfiguration {
|
|||
} else {
|
||||
// 5-1 Failed to connect to configuration center.
|
||||
|
||||
logger.warn("5-1", "configuration server offline", "",
|
||||
logger.warn(CONFIG_FAILED_CONNECT_REGISTRY, "configuration server offline", "",
|
||||
"Failed to connect to config center, the config center is Apollo, " +
|
||||
"the address is: " + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv) +
|
||||
", will use the local cache value instead before eventually the connection is established.");
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ import java.util.concurrent.LinkedBlockingQueue;
|
|||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_CONNECT_REGISTRY;
|
||||
|
||||
public class ZookeeperDynamicConfiguration extends TreePathDynamicConfiguration {
|
||||
|
||||
private Executor executor;
|
||||
|
|
@ -65,7 +67,7 @@ public class ZookeeperDynamicConfiguration extends TreePathDynamicConfiguration
|
|||
new IllegalStateException("Failed to connect with zookeeper, pls check if url " + url + " is correct.");
|
||||
|
||||
if (logger != null) {
|
||||
logger.error("5-1", "configuration server offline", "",
|
||||
logger.error(CONFIG_FAILED_CONNECT_REGISTRY, "configuration server offline", "",
|
||||
"Failed to connect with zookeeper", illegalStateException);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,6 +52,8 @@ import java.util.concurrent.Executors;
|
|||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_NOTIFY_EVENT;
|
||||
|
||||
public class ReflectionBasedServiceDiscovery extends AbstractServiceDiscovery {
|
||||
|
||||
private final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(getClass());
|
||||
|
|
@ -163,7 +165,7 @@ public class ReflectionBasedServiceDiscovery extends AbstractServiceDiscovery {
|
|||
// 1-7 - Failed to notify registry event.
|
||||
// The updating of metadata to consumer is a type of registry event.
|
||||
|
||||
logger.warn("1-7", "consumer is offline", "",
|
||||
logger.warn(REGISTRY_FAILED_NOTIFY_EVENT, "consumer is offline", "",
|
||||
"Notify to consumer error, removing listener.");
|
||||
|
||||
// remove listener if consumer is offline
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ import java.util.stream.Collectors;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.DISABLED_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.ENABLED_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_UNSUPPORTED;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_HASHMAP_LOAD_FACTOR;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_TYPE_KEY;
|
||||
|
|
@ -297,7 +298,7 @@ public class ServiceDiscoveryRegistryDirectory<T> extends DynamicDirectory<T> {
|
|||
|
||||
// 4-1 - Unsupported protocol
|
||||
|
||||
logger.error("4-1", "protocol extension does not installed", "", "Unsupported protocol.",
|
||||
logger.error(PROTOCOL_UNSUPPORTED, "protocol extension does not installed", "", "Unsupported protocol.",
|
||||
new IllegalStateException("Unsupported protocol " + instanceAddressURL.getProtocol() +
|
||||
" in notified url: " + instanceAddressURL + " from registry " + getUrl().getAddress() +
|
||||
" to consumer " + NetUtils.getLocalHost() + ", supported protocol: " +
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ import java.util.concurrent.TimeUnit;
|
|||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_REFRESH_ADDRESS;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.ENABLE_EMPTY_PROTECTION_KEY;
|
||||
import static org.apache.dubbo.metadata.RevisionResolver.EMPTY_REVISION;
|
||||
|
|
@ -185,7 +186,7 @@ public class ServiceInstancesChangedListener {
|
|||
// return if all metadata is empty, this notification will not take effect.
|
||||
if (emptyNum == revisionToInstances.size()) {
|
||||
// 1-17 - Address refresh failed.
|
||||
logger.error("1-17", "metadata Server failure", "",
|
||||
logger.error(REGISTRY_FAILED_REFRESH_ADDRESS, "metadata Server failure", "",
|
||||
"Address refresh failed because of Metadata Server failure, wait for retry or new address refresh event.");
|
||||
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ import java.util.Map;
|
|||
import java.util.Set;
|
||||
import java.util.SortedSet;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_FAILED_INIT_SERIALIZATION_OPTIMIZER;
|
||||
|
||||
/**
|
||||
* The {@link ServiceInstanceCustomizer} to customize the {@link ServiceInstance#getPort() port} of service instance.
|
||||
*/
|
||||
|
|
@ -74,7 +76,7 @@ public class ServiceInstanceHostPortCustomizer implements ServiceInstanceCustomi
|
|||
|
||||
// 4-2 - Can't find an instance URL using the default preferredProtocol.
|
||||
|
||||
logger.warn("4-2", "typo in preferred protocol", "",
|
||||
logger.warn(PROTOCOL_FAILED_INIT_SERIALIZATION_OPTIMIZER, "typo in preferred protocol", "",
|
||||
"Can't find an instance URL using the default preferredProtocol \"" + preferredProtocol + "\", " +
|
||||
"falling back to the strategy that pick the first found protocol. " +
|
||||
"Please try modifying the config of dubbo.application.protocol");
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_MISSING_METADATA_CONFIG_PORT;
|
||||
import static org.apache.dubbo.common.utils.StringUtils.isBlank;
|
||||
import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_METADATA_TIMEOUT_VALUE;
|
||||
import static org.apache.dubbo.metadata.MetadataConstants.METADATA_PROXY_TIMEOUT_KEY;
|
||||
|
|
@ -127,7 +128,7 @@ public class StandardMetadataServiceURLBuilder implements MetadataServiceURLBuil
|
|||
|
||||
// 1-18 - Metadata Service Port should be specified for consumer.
|
||||
|
||||
logger.warn("1-18", "missing configuration of metadata service port", "",
|
||||
logger.warn(REGISTRY_MISSING_METADATA_CONFIG_PORT, "missing configuration of metadata service port", "",
|
||||
"Metadata Service Port is not provided. Since DNS is not able to negotiate the metadata port " +
|
||||
"between Provider and Consumer, Dubbo will try using instance port as the default metadata port.");
|
||||
|
||||
|
|
@ -145,7 +146,7 @@ public class StandardMetadataServiceURLBuilder implements MetadataServiceURLBuil
|
|||
|
||||
IllegalStateException illegalStateException = new IllegalStateException(message);
|
||||
|
||||
logger.error("1-18", "missing configuration of metadata service port", "",
|
||||
logger.error(REGISTRY_MISSING_METADATA_CONFIG_PORT, "missing configuration of metadata service port", "",
|
||||
message, illegalStateException);
|
||||
|
||||
throw illegalStateException;
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ import java.util.List;
|
|||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_PARSE_DYNAMIC_CONFIG;
|
||||
import static org.apache.dubbo.rpc.Constants.ACCESS_LOG_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.ROUTER_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.RULE_KEY;
|
||||
|
|
@ -109,7 +110,7 @@ public abstract class AbstractConfiguratorListener implements ConfigurationListe
|
|||
} catch (Exception e) {
|
||||
// 1-14 - Failed to parse raw dynamic config.
|
||||
|
||||
logger.warn("1-14", "", "",
|
||||
logger.warn(REGISTRY_FAILED_PARSE_DYNAMIC_CONFIG, "", "",
|
||||
"Failed to parse raw dynamic config and it will not take effect, the raw config is: "
|
||||
+ rawConfig + ", cause: " + e.getMessage());
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,9 @@ import org.apache.dubbo.rpc.model.ModuleModel;
|
|||
import java.util.List;
|
||||
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_DESTROY_SERVICE;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_DESTROY_UNREGISTER_URL;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_SITE_SELECTION;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.CONSUMERS_CATEGORY;
|
||||
import static org.apache.dubbo.registry.Constants.REGISTER_KEY;
|
||||
|
|
@ -205,7 +208,7 @@ public abstract class DynamicDirectory<T> extends AbstractDirectory<T> implement
|
|||
return result == null ? BitList.emptyList() : result;
|
||||
} catch (Throwable t) {
|
||||
// 2-1 - Failed to execute routing.
|
||||
logger.error("2-1", "", "",
|
||||
logger.error(CLUSTER_FAILED_SITE_SELECTION, "", "",
|
||||
"Failed to execute router: " + getUrl() + ", cause: " + t.getMessage(), t);
|
||||
|
||||
return BitList.emptyList();
|
||||
|
|
@ -299,7 +302,7 @@ public abstract class DynamicDirectory<T> extends AbstractDirectory<T> implement
|
|||
}
|
||||
} catch (Throwable t) {
|
||||
// 1-8: Failed to unregister / unsubscribe url on destroy.
|
||||
logger.warn("1-8", "", "",
|
||||
logger.warn(REGISTRY_FAILED_DESTROY_UNREGISTER_URL, "", "",
|
||||
"unexpected error when unregister service " + serviceKey + " from registry: " + registry.getUrl(), t);
|
||||
}
|
||||
|
||||
|
|
@ -310,7 +313,7 @@ public abstract class DynamicDirectory<T> extends AbstractDirectory<T> implement
|
|||
}
|
||||
} catch (Throwable t) {
|
||||
// 1-8: Failed to unregister / unsubscribe url on destroy.
|
||||
logger.warn("1-8", "", "",
|
||||
logger.warn(REGISTRY_FAILED_DESTROY_UNREGISTER_URL, "", "",
|
||||
"unexpected error when unsubscribe service " + serviceKey + " from registry: " + registry.getUrl(), t);
|
||||
}
|
||||
|
||||
|
|
@ -327,7 +330,7 @@ public abstract class DynamicDirectory<T> extends AbstractDirectory<T> implement
|
|||
destroyAllInvokers();
|
||||
} catch (Throwable t) {
|
||||
// 1-15 - Failed to destroy service.
|
||||
logger.warn("1-15", "", "",
|
||||
logger.warn(REGISTRY_FAILED_DESTROY_SERVICE, "", "",
|
||||
"Failed to destroy service " + serviceKey, t);
|
||||
}
|
||||
routerChain.destroy();
|
||||
|
|
@ -344,7 +347,7 @@ public abstract class DynamicDirectory<T> extends AbstractDirectory<T> implement
|
|||
destroyAllInvokers();
|
||||
} catch (Throwable t) {
|
||||
// 1-15 - Failed to destroy service.
|
||||
logger.warn("1-15", "", "",
|
||||
logger.warn(REGISTRY_FAILED_DESTROY_SERVICE, "", "",
|
||||
"Failed to destroy service " + serviceKey, t);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,6 +62,13 @@ import static org.apache.dubbo.common.constants.CommonConstants.ENABLED_KEY;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.TAG_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_EMPTY_ADDRESS;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_DESTROY_SERVICE;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_UNSUPPORTED_CATEGORY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.PROXY_FAILED_CONVERT_URL;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_UNSUPPORTED;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_FAILED_INIT_SERIALIZATION_OPTIMIZER;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_FAILED_REFER_INVOKER;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.APP_DYNAMIC_CONFIGURATORS_CATEGORY;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.COMPATIBLE_CONFIG_KEY;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.CONFIGURATORS_CATEGORY;
|
||||
|
|
@ -227,7 +234,7 @@ public class RegistryDirectory<T> extends DynamicDirectory<T> {
|
|||
if (invokerUrls.isEmpty() && localCachedInvokerUrls != null) {
|
||||
|
||||
// 1-4 Empty address.
|
||||
logger.warn("1-4", "configuration ", "",
|
||||
logger.warn(REGISTRY_EMPTY_ADDRESS, "configuration ", "",
|
||||
"Service" + serviceKey + " received empty address list with no EMPTY protocol set, trigger empty protection.");
|
||||
|
||||
invokerUrls.addAll(localCachedInvokerUrls);
|
||||
|
|
@ -265,7 +272,7 @@ public class RegistryDirectory<T> extends DynamicDirectory<T> {
|
|||
// 3-1 - Failed to convert the URL address into Invokers.
|
||||
|
||||
logger.error(
|
||||
"3-1", "inconsistency between the client protocol and the protocol of the server",
|
||||
PROXY_FAILED_CONVERT_URL, "inconsistency between the client protocol and the protocol of the server",
|
||||
"", "urls to invokers error",
|
||||
new IllegalStateException(
|
||||
"urls to invokers error. invokerUrls.size :" +
|
||||
|
|
@ -387,12 +394,12 @@ public class RegistryDirectory<T> extends DynamicDirectory<T> {
|
|||
// Thrown by AbstractProtocol.optimizeSerialization()
|
||||
if (t instanceof RpcException && t.getMessage().contains("serialization optimizer")) {
|
||||
// 4-2 - serialization optimizer class initialization failed.
|
||||
logger.error("4-2", "typo in optimizer class", "",
|
||||
logger.error(PROTOCOL_FAILED_INIT_SERIALIZATION_OPTIMIZER, "typo in optimizer class", "",
|
||||
"Failed to refer invoker for interface:" + serviceType + ",url:(" + url + ")" + t.getMessage(), t);
|
||||
|
||||
} else {
|
||||
// 4-3 - Failed to refer invoker by other reason.
|
||||
logger.error("4-3", "", "",
|
||||
logger.error(PROTOCOL_FAILED_REFER_INVOKER, "", "",
|
||||
"Failed to refer invoker for interface:" + serviceType + ",url:(" + url + ")" + t.getMessage(), t);
|
||||
}
|
||||
}
|
||||
|
|
@ -432,7 +439,7 @@ public class RegistryDirectory<T> extends DynamicDirectory<T> {
|
|||
|
||||
// 4-1 - Unsupported protocol
|
||||
|
||||
logger.error("4-1", "protocol extension does not installed", "", "Unsupported protocol.",
|
||||
logger.error(PROTOCOL_UNSUPPORTED, "protocol extension does not installed", "", "Unsupported protocol.",
|
||||
new IllegalStateException("Unsupported protocol " + providerUrl.getProtocol() +
|
||||
" in notified url: " + providerUrl + " from registry " + getUrl().getAddress() +
|
||||
" to consumer " + NetUtils.getLocalHost() + ", supported protocol: " +
|
||||
|
|
@ -540,7 +547,7 @@ public class RegistryDirectory<T> extends DynamicDirectory<T> {
|
|||
invoker.destroyAll();
|
||||
} catch (Throwable t) {
|
||||
// 1-15 - Failed to destroy service
|
||||
logger.warn("1-15", "", "",
|
||||
logger.warn(REGISTRY_FAILED_DESTROY_SERVICE, "", "",
|
||||
"Failed to destroy service " + serviceKey + " to provider " + invoker.getUrl(), t);
|
||||
}
|
||||
}
|
||||
|
|
@ -596,7 +603,7 @@ public class RegistryDirectory<T> extends DynamicDirectory<T> {
|
|||
}
|
||||
|
||||
// 1-16 - Unsupported category in NotifyListener
|
||||
logger.warn("1-16", "", "",
|
||||
logger.warn(REGISTRY_UNSUPPORTED_CATEGORY, "", "",
|
||||
"Unsupported category " + category + " in notified url: " + url + " from registry " +
|
||||
getUrl().getAddress() + " to consumer " + NetUtils.getLocalHost());
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import org.apache.dubbo.registry.support.FailbackRegistry;
|
|||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_EXECUTE_RETRYING_TASK;
|
||||
import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY_RETRY_PERIOD;
|
||||
import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY_RETRY_TIMES;
|
||||
import static org.apache.dubbo.registry.Constants.REGISTRY_RETRY_PERIOD_KEY;
|
||||
|
|
@ -116,7 +117,7 @@ public abstract class AbstractRetryTask implements TimerTask {
|
|||
// 1-13 - failed to execute the retrying task.
|
||||
|
||||
logger.warn(
|
||||
"1-13", "registry center offline", "Check the registry server.",
|
||||
REGISTRY_EXECUTE_RETRYING_TASK, "registry center offline", "Check the registry server.",
|
||||
"Final failed to execute task " + taskName + ", url: " + url + ", retry " + retryTimes + " times.");
|
||||
|
||||
return;
|
||||
|
|
@ -130,7 +131,7 @@ public abstract class AbstractRetryTask implements TimerTask {
|
|||
|
||||
// 1-13 - failed to execute the retrying task.
|
||||
|
||||
logger.warn("1-13", "registry center offline", "Check the registry server.",
|
||||
logger.warn(REGISTRY_EXECUTE_RETRYING_TASK, "registry center offline", "Check the registry server.",
|
||||
"Failed to execute task " + taskName + ", url: " + url + ", waiting for again, cause:" + t.getMessage(), t);
|
||||
|
||||
// reput this task when catch exception.
|
||||
|
|
|
|||
|
|
@ -61,6 +61,11 @@ import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.FILE_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_LOCAL_FILE_CACHE_ENABLED;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_EMPTY_ADDRESS;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_NOTIFY_EVENT;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_DESTROY_UNREGISTER_URL;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_READ_WRITE_CACHE_FILE;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_DELETE_LOCKFILE;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.ACCEPTS_KEY;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGORY;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_KEY;
|
||||
|
|
@ -137,7 +142,7 @@ public abstract class AbstractRegistry implements Registry {
|
|||
if (logger != null) {
|
||||
// 1-9 failed to read / save registry cache file.
|
||||
|
||||
logger.error("1-9", "cache directory inaccessible",
|
||||
logger.error(REGISTRY_FAILED_READ_WRITE_CACHE_FILE, "cache directory inaccessible",
|
||||
"Try adjusting permission of the directory.",
|
||||
"failed to create directory", illegalArgumentException);
|
||||
}
|
||||
|
|
@ -225,7 +230,7 @@ public abstract class AbstractRegistry implements Registry {
|
|||
"ignore and retry later, maybe multi java process use the file, please config: dubbo.registry.file=xxx.properties");
|
||||
|
||||
// 1-9 failed to read / save registry cache file.
|
||||
logger.warn("1-9", CAUSE_MULTI_DUBBO_USING_SAME_FILE, "",
|
||||
logger.warn(REGISTRY_FAILED_READ_WRITE_CACHE_FILE, CAUSE_MULTI_DUBBO_USING_SAME_FILE, "",
|
||||
"Adjust dubbo.registry.file.", ioException);
|
||||
|
||||
throw ioException;
|
||||
|
|
@ -268,7 +273,7 @@ public abstract class AbstractRegistry implements Registry {
|
|||
logger.info("Failed to save registry cache file for file overlapping lock exception, file name " + file.getName());
|
||||
} else {
|
||||
// 1-9 failed to read / save registry cache file.
|
||||
logger.warn("1-9", CAUSE_MULTI_DUBBO_USING_SAME_FILE, "",
|
||||
logger.warn(REGISTRY_FAILED_READ_WRITE_CACHE_FILE, CAUSE_MULTI_DUBBO_USING_SAME_FILE, "",
|
||||
"Failed to save registry cache file after retrying " + MAX_RETRY_TIMES_SAVE_PROPERTIES + " times, cause: " + e.getMessage(), e);
|
||||
}
|
||||
|
||||
|
|
@ -284,7 +289,7 @@ public abstract class AbstractRegistry implements Registry {
|
|||
}
|
||||
|
||||
if (!(e instanceof OverlappingFileLockException)) {
|
||||
logger.warn("1-9", CAUSE_MULTI_DUBBO_USING_SAME_FILE,
|
||||
logger.warn(REGISTRY_FAILED_READ_WRITE_CACHE_FILE, CAUSE_MULTI_DUBBO_USING_SAME_FILE,
|
||||
"However, the retrying count limit is not exceeded. Dubbo will still try.",
|
||||
"Failed to save registry cache file, will retry, cause: " + e.getMessage(), e);
|
||||
}
|
||||
|
|
@ -292,7 +297,7 @@ public abstract class AbstractRegistry implements Registry {
|
|||
if (lockfile != null) {
|
||||
if (!lockfile.delete()) {
|
||||
// 1-10 Failed to delete lock file.
|
||||
logger.warn("1-10", "", "",
|
||||
logger.warn(REGISTRY_FAILED_DELETE_LOCKFILE, "", "",
|
||||
String.format("Failed to delete lock file [%s]", lockfile.getName()));
|
||||
}
|
||||
}
|
||||
|
|
@ -310,13 +315,12 @@ public abstract class AbstractRegistry implements Registry {
|
|||
}
|
||||
} catch (IOException e) {
|
||||
// 1-9 failed to read / save registry cache file.
|
||||
logger.warn("1-9", CAUSE_MULTI_DUBBO_USING_SAME_FILE, "",
|
||||
logger.warn(REGISTRY_FAILED_READ_WRITE_CACHE_FILE, CAUSE_MULTI_DUBBO_USING_SAME_FILE, "",
|
||||
e.getMessage(), e);
|
||||
|
||||
} catch (Throwable e) {
|
||||
// 1-9 failed to read / save registry cache file.
|
||||
|
||||
logger.warn("1-9", CAUSE_MULTI_DUBBO_USING_SAME_FILE, "",
|
||||
logger.warn(REGISTRY_FAILED_READ_WRITE_CACHE_FILE, CAUSE_MULTI_DUBBO_USING_SAME_FILE, "",
|
||||
"Failed to load registry cache file " + file, e);
|
||||
}
|
||||
}
|
||||
|
|
@ -478,7 +482,7 @@ public abstract class AbstractRegistry implements Registry {
|
|||
notify(url, listener, filterEmpty(url, urls));
|
||||
} catch (Throwable t) {
|
||||
// 1-7: Failed to notify registry event.
|
||||
logger.error("1-7", "consumer is offline", "",
|
||||
logger.error(REGISTRY_FAILED_NOTIFY_EVENT, "consumer is offline", "",
|
||||
"Failed to notify registry event, urls: " + urls + ", cause: " + t.getMessage(), t);
|
||||
}
|
||||
}
|
||||
|
|
@ -502,7 +506,7 @@ public abstract class AbstractRegistry implements Registry {
|
|||
}
|
||||
if ((CollectionUtils.isEmpty(urls)) && !ANY_VALUE.equals(url.getServiceInterface())) {
|
||||
// 1-4 Empty address.
|
||||
logger.warn("1-4", "", "", "Ignore empty notify urls for subscribe url " + url);
|
||||
logger.warn(REGISTRY_EMPTY_ADDRESS, "", "", "Ignore empty notify urls for subscribe url " + url);
|
||||
return;
|
||||
}
|
||||
if (logger.isInfoEnabled()) {
|
||||
|
|
@ -581,7 +585,7 @@ public abstract class AbstractRegistry implements Registry {
|
|||
}
|
||||
} catch (Throwable t) {
|
||||
// 1-8: Failed to unregister / unsubscribe url on destroy.
|
||||
logger.warn("1-8", "", "",
|
||||
logger.warn(REGISTRY_FAILED_DESTROY_UNREGISTER_URL, "", "",
|
||||
"Failed to unregister url " + url + " to registry " + getUrl() + " on destroy, cause: " + t.getMessage(), t);
|
||||
}
|
||||
}
|
||||
|
|
@ -599,7 +603,7 @@ public abstract class AbstractRegistry implements Registry {
|
|||
}
|
||||
} catch (Throwable t) {
|
||||
// 1-8: Failed to unregister / unsubscribe url on destroy.
|
||||
logger.warn("1-8", "", "",
|
||||
logger.warn(REGISTRY_FAILED_DESTROY_UNREGISTER_URL, "", "",
|
||||
"Failed to unsubscribe url " + url + " to registry " + getUrl() + " on destroy, cause: " + t.getMessage(), t);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import org.apache.dubbo.rpc.model.ScopeModelAware;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_CREATE_INSTANCE;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.EXPORT_KEY;
|
||||
import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;
|
||||
|
||||
|
|
@ -104,7 +105,7 @@ public abstract class AbstractRegistryFactory implements RegistryFactory, ScopeM
|
|||
throw new RuntimeException("Can not create registry " + url, e);
|
||||
} else {
|
||||
// 1-11 Failed to obtain or create registry (service) object.
|
||||
LOGGER.warn("1-11", "", "",
|
||||
LOGGER.warn(REGISTRY_FAILED_CREATE_INSTANCE, "", "",
|
||||
"Failed to obtain or create registry ", e);
|
||||
}
|
||||
} finally {
|
||||
|
|
|
|||
|
|
@ -56,6 +56,12 @@ import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;
|
|||
import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_SEPARATOR_ENCODED;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_ADDRESS_INVALID;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_EMPTY_ADDRESS;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_URL_EVICTING;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_PROPERTY_MISSPELLING;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_NO_PARAMETERS_URL;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_CLEAR_CACHED_URLS;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;
|
||||
import static org.apache.dubbo.common.constants.RegistryConstants.ENABLE_EMPTY_PROTECTION_KEY;
|
||||
|
|
@ -108,7 +114,7 @@ public abstract class CacheableFailbackRegistry extends FailbackRegistry {
|
|||
} catch (NumberFormatException e) {
|
||||
// 0-2 Property type mismatch.
|
||||
|
||||
logger.warn("0-2", "typo in property value", "This property requires an integer value.",
|
||||
logger.warn(COMMON_PROPERTY_MISSPELLING, "typo in property value", "This property requires an integer value.",
|
||||
"Invalid registry properties configuration key " + key + ", value " + str);
|
||||
}
|
||||
}
|
||||
|
|
@ -147,7 +153,7 @@ public abstract class CacheableFailbackRegistry extends FailbackRegistry {
|
|||
// When? FrameworkExecutorRepository gets destroyed.
|
||||
|
||||
// 1-3: URL evicting failed.
|
||||
logger.warn("1-3", "thread pool getting destroyed", "",
|
||||
logger.warn(REGISTRY_FAILED_URL_EVICTING, "thread pool getting destroyed", "",
|
||||
"Failed to evict url for " + url.getServiceKey(), e);
|
||||
}
|
||||
}
|
||||
|
|
@ -172,7 +178,7 @@ public abstract class CacheableFailbackRegistry extends FailbackRegistry {
|
|||
ServiceAddressURL cachedURL = createURL(rawProvider, copyOfConsumer, getExtraParameters());
|
||||
if (cachedURL == null) {
|
||||
// 1-1: Address invalid.
|
||||
logger.warn("1-1", "mismatch of service group and version settings", "",
|
||||
logger.warn(REGISTRY_ADDRESS_INVALID, "mismatch of service group and version settings", "",
|
||||
"Invalid address, failed to parse into URL " + rawProvider);
|
||||
|
||||
continue;
|
||||
|
|
@ -187,7 +193,7 @@ public abstract class CacheableFailbackRegistry extends FailbackRegistry {
|
|||
if (cachedURL == null) {
|
||||
cachedURL = createURL(rawProvider, copyOfConsumer, getExtraParameters());
|
||||
if (cachedURL == null) {
|
||||
logger.warn("1-1", "mismatch of service group and version settings", "",
|
||||
logger.warn(REGISTRY_ADDRESS_INVALID, "mismatch of service group and version settings", "",
|
||||
"Invalid address, failed to parse into URL " + rawProvider);
|
||||
|
||||
continue;
|
||||
|
|
@ -225,7 +231,7 @@ public abstract class CacheableFailbackRegistry extends FailbackRegistry {
|
|||
String category = i < 0 ? path : path.substring(i + 1);
|
||||
if (!PROVIDERS_CATEGORY.equals(category) || !getUrl().getParameter(ENABLE_EMPTY_PROTECTION_KEY, true)) {
|
||||
if (PROVIDERS_CATEGORY.equals(category)) {
|
||||
logger.warn("1-4", "", "",
|
||||
logger.warn(REGISTRY_EMPTY_ADDRESS, "", "",
|
||||
"Service " + consumer.getServiceKey() + " received empty address list and empty protection is disabled, will clear current available addresses");
|
||||
}
|
||||
URL empty = URLBuilder.from(consumer)
|
||||
|
|
@ -266,7 +272,7 @@ public abstract class CacheableFailbackRegistry extends FailbackRegistry {
|
|||
|
||||
if (parts.length <= 1) {
|
||||
// 1-5 Received URL without any parameters.
|
||||
logger.warn("1-5", "", "",
|
||||
logger.warn(REGISTRY_NO_PARAMETERS_URL, "", "",
|
||||
"Received url without any parameters " + rawProvider);
|
||||
|
||||
return DubboServiceAddressURL.valueOf(rawProvider, consumerURL);
|
||||
|
|
@ -412,7 +418,7 @@ public abstract class CacheableFailbackRegistry extends FailbackRegistry {
|
|||
} catch (Throwable t) {
|
||||
// 1-6 Error when clearing cached URLs.
|
||||
|
||||
logger.error("1-6", "", "",
|
||||
logger.error(REGISTRY_FAILED_CLEAR_CACHED_URLS, "", "",
|
||||
"Error occurred when clearing cached URLs", t);
|
||||
|
||||
} finally {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ import java.util.concurrent.locks.Lock;
|
|||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_FAILED_FETCH_INSTANCE;
|
||||
|
||||
/**
|
||||
* Application Level, used to collect Registries
|
||||
*/
|
||||
|
|
@ -125,7 +127,7 @@ public class RegistryManager {
|
|||
protected Registry getDefaultNopRegistryIfDestroyed() {
|
||||
if (destroyed.get()) {
|
||||
// 1-12 Failed to fetch (server) instance since the registry instances have been destroyed.
|
||||
LOGGER.warn("1-12", "misuse of the methods", "",
|
||||
LOGGER.warn(REGISTRY_FAILED_FETCH_INSTANCE, "misuse of the methods", "",
|
||||
"All registry instances have been destroyed, failed to fetch any instance. " +
|
||||
"Usually, this means no need to try to do unnecessary redundant resource clearance, all registries has been taken care of.");
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,9 @@ import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;
|
|||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.TRANSPORT_CLIENT_CONNECT_TIMEOUT;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.TRANSPORT_FAILED_CONNECT_PROVIDER;
|
||||
|
||||
/**
|
||||
* NettyClient.
|
||||
*/
|
||||
|
|
@ -127,7 +130,7 @@ public class NettyClient extends AbstractClient {
|
|||
+ getRemoteAddress() + ", error message is:" + cause.getMessage(), cause);
|
||||
|
||||
// 6-1 - Failed to connect to provider server by other reason.
|
||||
logger.error("6-1", "network disconnected", "", "Failed to connect to provider server by other reason.", cause);
|
||||
logger.error(TRANSPORT_FAILED_CONNECT_PROVIDER, "network disconnected", "", "Failed to connect to provider server by other reason.", cause);
|
||||
|
||||
throw remotingException;
|
||||
} else {
|
||||
|
|
@ -138,7 +141,7 @@ public class NettyClient extends AbstractClient {
|
|||
+ NetUtils.getLocalHost() + " using dubbo version " + Version.getVersion());
|
||||
|
||||
// 6-2 - Client-side timeout.
|
||||
logger.error("6-2", "provider crash", "", "Client-side timeout.", remotingException);
|
||||
logger.error(TRANSPORT_CLIENT_CONNECT_TIMEOUT, "provider crash", "", "Client-side timeout.", remotingException);
|
||||
|
||||
throw remotingException;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ import java.net.InetSocketAddress;
|
|||
|
||||
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.SSL_ENABLED_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.TRANSPORT_CLIENT_CONNECT_TIMEOUT;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.TRANSPORT_FAILED_CONNECT_PROVIDER;
|
||||
import static org.apache.dubbo.remoting.Constants.DEFAULT_CONNECT_TIMEOUT;
|
||||
import static org.apache.dubbo.remoting.api.NettyEventLoopFactory.eventLoopGroup;
|
||||
import static org.apache.dubbo.remoting.api.NettyEventLoopFactory.socketChannelClass;
|
||||
|
|
@ -220,7 +222,7 @@ public class NettyClient extends AbstractClient {
|
|||
RemotingException remotingException = new RemotingException(this, "client(url: " + getUrl() + ") failed to connect to server "
|
||||
+ serverAddress + ", error message is:" + cause.getMessage(), cause);
|
||||
|
||||
logger.error("6-1", "network disconnected", "",
|
||||
logger.error(TRANSPORT_FAILED_CONNECT_PROVIDER, "network disconnected", "",
|
||||
"Failed to connect to provider server by other reason.", cause);
|
||||
|
||||
throw remotingException;
|
||||
|
|
@ -234,7 +236,7 @@ public class NettyClient extends AbstractClient {
|
|||
+ getConnectTimeout() + "ms (elapsed: " + (System.currentTimeMillis() - start) + "ms) from netty client "
|
||||
+ NetUtils.getLocalHost() + " using dubbo version " + Version.getVersion());
|
||||
|
||||
logger.error("6-2", "provider crash", "",
|
||||
logger.error(TRANSPORT_CLIENT_CONNECT_TIMEOUT, "provider crash", "",
|
||||
"Client-side timeout.", remotingException);
|
||||
|
||||
throw remotingException;
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ import java.util.concurrent.TimeUnit;
|
|||
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.SESSION_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_CONNECT_REGISTRY;
|
||||
|
||||
|
||||
public class Curator5ZookeeperClient extends AbstractZookeeperClient<Curator5ZookeeperClient.NodeCacheListenerImpl, Curator5ZookeeperClient.CuratorWatcherImpl> {
|
||||
|
|
@ -99,7 +100,7 @@ public class Curator5ZookeeperClient extends AbstractZookeeperClient<Curator5Zoo
|
|||
IllegalStateException illegalStateException = new IllegalStateException("zookeeper not connected");
|
||||
|
||||
// 5-1 Failed to connect to configuration center.
|
||||
logger.error("5-1", "Zookeeper server offline", "",
|
||||
logger.error(CONFIG_FAILED_CONNECT_REGISTRY, "Zookeeper server offline", "",
|
||||
"Failed to connect with zookeeper", illegalStateException);
|
||||
|
||||
throw illegalStateException;
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ import java.util.concurrent.TimeUnit;
|
|||
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.SESSION_KEY;
|
||||
import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;
|
||||
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_FAILED_CONNECT_REGISTRY;
|
||||
|
||||
|
||||
public class CuratorZookeeperClient extends AbstractZookeeperClient<CuratorZookeeperClient.NodeCacheListenerImpl, CuratorZookeeperClient.CuratorWatcherImpl> {
|
||||
|
|
@ -103,7 +104,7 @@ public class CuratorZookeeperClient extends AbstractZookeeperClient<CuratorZooke
|
|||
IllegalStateException illegalStateException = new IllegalStateException("zookeeper not connected");
|
||||
|
||||
// 5-1 Failed to connect to configuration center.
|
||||
logger.error("5-1", "Zookeeper server offline", "",
|
||||
logger.error(CONFIG_FAILED_CONNECT_REGISTRY, "Zookeeper server offline", "",
|
||||
"Failed to connect with zookeeper", illegalStateException);
|
||||
|
||||
throw illegalStateException;
|
||||
|
|
|
|||
Loading…
Reference in New Issue