Open
Description
Same issue:apache/dubbo#6694
环境配置
注册中心:zookeeper
配置中心:无
dubbo服务端版本:v2.5.x,v.2.6.x
dubbo客户端版本:v2.7.7,v2.7.8,v2.7.6,v2.7.5
问题原因
dubbo v2.7.7版本org.apapche.dubbo.common.URL
.getParameter()
中删除了default.xxxx的获取,代码如下:
public String getParameter(String key) {
return parameters.get(key);
}
dubbo v2.7.4版本org.apapche.dubbo.common.URL
.getParameter()
代码对比:
public String getParameter(String key) {
String value = parameters.get(key);
return StringUtils.isEmpty(value) ? parameters.get(DEFAULT_KEY_PREFIX + key) : value;
}
当Server端dubbo版本是旧版本时(这里测试使用的是dubbo v2.5.3、v2.6.6),获取到的Provider URL中只有default.version。
从而导致org.apache.dubbo.common.utils.UrlUtils
.isMatch()
在进行consumerVersion
和providerVersion
对比时不相等并返回false,丢掉了这个provider的信息。