dubb2.6.12消费不到dubbo2.7.18的提供的服务

g9icjywg  于 2022-12-31  发布在  其他
关注(0)|答案(2)|浏览(227)

问题:
dubb2.6.12消费不到dubbo2.7.18的提供的服务
Failed to check the status of the service com.aaa.bbb.boot.api.service.IUserQueryService. No provider available for the service

1,新项目采用dubbo2.7.18,作为提供者,注册中心采用nacos2.0.3
采用xml配置
<dubbo:registry id="nacosregistry" protocol="${dubbo.registry.protocol:nacos}" address="${dubbo.registry.address}" >
<dubbo:parameter key="namespace" value="${dubbo.registry.namespace}" />
</dubbo:registry>

<dubbo:protocol name="dubbo" port="${dubbo.provider.port:20880}"   />

<dubbo:provider timeout="10000" threadpool="fixed" threads="100" accepts="1000"  registry="nacosregistry" />

<dubbo:service interface="com.aaa.xx.boot.api.service.IUserQueryService"
                ref="boot.userQueryService" retries="0" version="2.0.0" registry="nacosregistry"  />

注册时,服务名如下

注册中心内容如下:

2,消费端采用dubbo2.6.12,注册中心为nacos2.0.3
服务订阅时如下:服务名称没有":"

,获取不到实例,如果加上":"

是可以获取实例的
建议在做服务暴露时,如果没有对应的参数,不要添加":"

eoxn13cs

eoxn13cs1#

由于 2.7.4 以前的 Nacos 注册存在设计缺陷,在 2.7.4 之前的版本在 version 或者 group 为 null 的时候,会忽略中间的 : 注册。导致可能出现多个服务在 nacos 上面的服务名一样的情况。在 2.7.4 以后强制所有 : 都会注册,监听的时候两个版本的都会监听以保持兼容。

因此,2.7.4 及以后的客户端支持所有版本的 provider,2.7.4 及以后的服务端仅支持 2.7.4 以后的服务端。

注:如果 version 和 group 都不为 null 时,所有版本互通都无问题。

fquxozlt

fquxozlt2#

那些基于dubbo2.6.12的服务,都是没有group的,大部分只有version属性,但是安全部门要求,必须要升级到dubbo2.7.18,处理掉漏洞

相关问题