-
Notifications
You must be signed in to change notification settings - Fork 26.5k
在 registry.simplified=true 时getColonSeparatedKey() 结果不完整 #4621
Copy link
Copy link
Closed
Milestone
Description
- [ *] I have searched the issues of this repository and believe that this is not a duplicate.
- [ *] I have checked the FAQ of this repository and believe that this is not a duplicate.
Environment
- Dubbo version: 2.7.3
- Operating System version: MAC_OS
- Java version: 1.8.0_181
Steps to reproduce this issue
URL.getColonSeparatedKey() 正常结果应该是{interface}:[version]:[group]
在获取{interface}时,是直接通过INTERFACE_KEY从parameters中获取的,在registry.simplified=true 时:
final URL registeredProviderUrl = getRegisteredProviderUrl(providerUrl, registryUrl);
registeredProviderUrl 的 parameters中是没有INTERFACE_KEY的。
导致NacosRegistry在获取serviceName时不完整。
在append时对INTERFACE_KEY进行特殊处理可以解决
String parameterValue = INTERFACE_KEY.equals(parameterName)?getServiceInterface():this.getParameter(parameterName);
`
public String getColonSeparatedKey() {
StringBuilder serviceNameBuilder = new StringBuilder();
append(serviceNameBuilder, INTERFACE_KEY, true);
append(serviceNameBuilder, VERSION_KEY, false);
append(serviceNameBuilder, GROUP_KEY, false);
return serviceNameBuilder.toString();
}
private void append(StringBuilder target, String parameterName, boolean first) {
String parameterValue = INTERFACE_KEY.equals(parameterName)?getServiceInterface():this.getParameter(parameterName);
if (!StringUtils.isBlank(parameterValue)) {
if (!first) {
target.append(":");
}
target.append(parameterValue);
} else {
target.append(":");
}
}`
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
Give feedbackNo fields configured for issues without a type.