Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.7.3 使用Nacos作为服务中心的时候,服务如果没有配置group,会导致服务发现失败 #4864

Closed
evancyz opened this issue Aug 18, 2019 · 14 comments
Assignees

Comments

@evancyz
Copy link

evancyz commented Aug 18, 2019

hello,我使用Nacos作为注册中心

我注册了一个服务,这个服务没有配置group,在Nacos后台服务列表的URL是这样

服务注册: providers:com.xxx.api.service.xxxService:1.0.0
服务消费: consumers:com.xxx..api.service.xxxService:1.0.0:

image

消费者后面多了一个 :,导致服务匹配不上

看起来是由于 2.7.3 版本 配置中心 重构导致的,从dubbo的这个Test上来看,这个是符合预期的吗?

 org.apache.dubbo.common.URLTest

@Test
    public void testGetColonSeparatedKey() {
        URL url1 = URL.valueOf("10.20.130.230:20880/context/path?interface=org.apache.dubbo.test.interfaceName&group=group&version=1.0.0");
        Assertions.assertEquals("org.apache.dubbo.test.interfaceName:1.0.0:group", url1.getColonSeparatedKey());

        URL url2 = URL.valueOf("10.20.130.230:20880/context/path?interface=org.apache.dubbo.test.interfaceName&version=1.0.0");
        Assertions.assertEquals("org.apache.dubbo.test.interfaceName:1.0.0:", url2.getColonSeparatedKey());

        URL url3 = URL.valueOf("10.20.130.230:20880/context/path?interface=org.apache.dubbo.test.interfaceName&group=group");
        Assertions.assertEquals("org.apache.dubbo.test.interfaceName::group", url3.getColonSeparatedKey());

        URL url4 = URL.valueOf("10.20.130.230:20880/context/path?interface=org.apache.dubbo.test.interfaceName");
        Assertions.assertEquals("org.apache.dubbo.test.interfaceName::", url4.getColonSeparatedKey());
    }

我给 nacosnacos-sync项目都提了issue,不知道是谁的锅

nacos:alibaba/nacos#1712
nacos-sync:nacos-group/nacos-sync#100

@tswstarplanet
Copy link
Contributor

我在2.7.4-SNAPSHOT上试了一下,没有问题,你可以试一下

@evancyz
Copy link
Author

evancyz commented Aug 18, 2019

2.7.4-SNAPSHOT 没有 release 吧 ? 能在生产上用么

@tswstarplanet
Copy link
Contributor

2.7.4-SNAPSHOT 没有 release 吧 ? 能在生产上用么

不建议上生产

@evancyz
Copy link
Author

evancyz commented Aug 18, 2019

。。。那如果我想上nacos,那个版本比较合适呢? 2.7.0 ?

@evancyz
Copy link
Author

evancyz commented Aug 18, 2019

我们线上的服务 group都是空的,
看起来 现在的dubbo release版本,都没有修复这个问题
除了魔改一把,不然nacos上不了了

@tswstarplanet
Copy link
Contributor

我们线上的服务 group都是空的,
看起来 现在的dubbo release版本,都没有修复这个问题
除了魔改一把,不然nacos上不了了

你们2.7.3之前用的是nacos作注册中心吗?有这个问题吗

@evancyz
Copy link
Author

evancyz commented Aug 19, 2019

我们以前注册中心用的 zk

这不想统一迁到nacos上嘛

线上nacos 和 nacos-sync 已经搭上去了 还没用

@evancyz
Copy link
Author

evancyz commented Aug 19, 2019 via email

@evancyz
Copy link
Author

evancyz commented Aug 20, 2019

你好请问有解决方案吗?

@evancyz
Copy link
Author

evancyz commented Aug 20, 2019

后来想了个方案 像zk里注册了两个服务:

       <dubbo:service interface="com.xxx.xx.api.service.XXXService" ref="xxxx" version="1.0.0"/>
       <dubbo:service interface="com.xxx.xx.api.service.XXXService" ref="xxxx" version="1.0.0" group="test"/>

在 zk 的 注册那边 注册的是两个服务

dubbo://10.xx.218.7:20779/com.xx.xx.api.service.XXService?xxx
dubbo://10.xx.218.7:20779/com.xx.xx.api.service.XXService2?xxx&group=test

然后用 nacos-sync 做同步的时候,都是ok的
项目启动的check也是ok的

可是调用的时候,用test的那个group,就报错了。估计也是服务重了,内部名字没匹配,绝望了,都是bug。。感觉不是很想用nacos的注册中心了

com.alibaba.dubbo.remoting.RemotingException: Not found exported service: test/com.xx.api.service.XXService:1.0.0:20779 in [test/com.piaoniu.xx.api.service.XXService2:1.0.0:20779, com.xx..api.service.XXService:1.0.0:20779], may be version or group mismatch 

@evancyz
Copy link
Author

evancyz commented Oct 11, 2019

没人回复嘛。。。

@ghost
Copy link

ghost commented Jul 20, 2022

我也遇到这个问题,原来dubbo版本2.6.5,升级到2.7.3,stable和sit环境都配了组名,生产环境没有组名,导致生产环境dubbo注册的时候也多了个冒号,dubbo调用失败。我是查nacos生产的日志发现了这个问题,然后找到这篇帖子,我想请教一下,这个最终结局方案是啥?

@AlbumenJ
Copy link
Member

我也遇到这个问题,原来dubbo版本2.6.5,升级到2.7.3,stable和sit环境都配了组名,生产环境没有组名,导致生产环境dubbo注册的时候也多了个冒号,dubbo调用失败。我是查nacos生产的日志发现了这个问题,然后找到这篇帖子,我想请教一下,这个最终结局方案是啥?

升级到 2.7 的最新版本看下呢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants