dubbo:
application:
name: dubbo-consumer-demo
qosEnable: true
qosPort: 22222
qosAcceptForeignIp: false
protocol:
name: dubbo
port: 20880
dubbo:
application:
name: dubbo-consumer-demo
qosEnable: true
qosPort: 33333
qosAcceptForeignIp: false
protocol:
name: dubbo
port: 20880
@Service(timeout = 30000, version ="1.0.0")
public class HelloProviderImpl implements HelloProvider {
//TODO ...
}
````
@RestController
public class DemoController {
@Reference(version ="1.0.0", check = false, url = "dubbo://localhost:20880")
private HelloProvider helloProvider;
}
````
org.apache.dubbo.remoting.RemotingException
org.apache.dubbo.remoting.RemotingException: org.apache.dubbo.remoting.RemotingException: Not found exported service: com.legendshop.NacosApi.HelloProvider:20880 in [com.legendshop.NacosApi.HelloProvider:1.0.0:20880, g2/com.legendshop.NacosApi.HelloProvider:1.0.0:20880, g1/com.legendshop.NacosApi.HelloProvider2:1.0.0:20880], may be version or group mismatch , channel: consumer: /50.50.9.24:1918 --> provider: /50.50.9.24:20880, message:RpcInvocation [methodName=hello, parameterTypes=[class java.lang.String], arguments=[null], attachments={path=com.legendshop.NacosApi.HelloProvider, input=202, dubbo=2.0.2, interface=com.legendshop.NacosApi.HelloProvider, version=0.0.0}]
org.apache.dubbo.remoting.RemotingException: Not found exported service: com.legendshop.NacosApi.HelloProvider:20880 in [com.legendshop.NacosApi.HelloProvider:1.0.0:20880, g2/com.legendshop.NacosApi.HelloProvider:1.0.0:20880, g1/com.legendshop.NacosApi.HelloProvider2:1.0.0:20880], may be version or group mismatch , channel: consumer: /50.50.9.24:1918 --> provider: /50.50.9.24:20880, message:RpcInvocation [methodName=hello, parameterTypes=[class java.lang.String], arguments=[null], attachments={path=com.legendshop.NacosApi.HelloProvider, input=202, dubbo=2.0.2, interface=com.legendshop.NacosApi.HelloProvider, version=0.0.0}]
at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol.getInvoker(DubboProtocol.java:266)
at org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:127)
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:102)
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:193)
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51)
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.doReceived(DefaultFuture.java:191) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:153) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:141) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleResponse(HeaderExchangeHandler.java:62) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:199) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51) ~[dubbo-2.7.3.jar:2.7.3]
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57) ~[dubbo-2.7.3.jar:2.7.3]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_162]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_162]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_162]
不知道是什么问题,调试了很久,没发现原因在哪里?
@Reference没有配interface吗? 另外provider和consumer的application-name怎么是一样的?
你的consumer调用的时候attachments里面version是0.0.0。
有可能是consumer其他地方也要引用你这个HelloProvider,但是没配置具体版本号
would you mind to provider a demo to reproduce this issue?
would you mind to provider a demo to reproduce this issue?
learn demo: https://github.com/EDaoren/nacos_sample-github
你的consumer调用的时候attachments里面version是0.0.0。
有可能是consumer其他地方也要引用你这个HelloProvider,但是没配置具体版本号
我自己写的 consumer,就那一个,应该不是这个问题
@reference没有配interface吗? 另外provider和consumer的application-name怎么是一样的?
interfaceName 和 interfaceClass 我都配置过,异常都是一样的,application name 纠正过来也不行
com.edaoren.service.HelloProviderImpl
这个实现类上面 @Service 注解的 interfaceName 去掉或者指定接口的全路径名看看
I tried the official demo and it worked correctly. Would you check your configuration ?
这样就可以了吧
@RestController
public class DemoController {
@Reference(version ="1.0.0", check = false, url = "dubbo://localhost:20880?version=1.0.0")
private HelloProvider helloProvider;
}
2.7.3版本直连时需要把分组和版本号配置在url中,不确定是故意为之还是bug,可以看下这个方法ClusterUtils#mergeUrl
这样就可以了吧
@RestController
public class DemoController {@Reference(version ="1.0.0", check = false, url = "dubbo://localhost:20880?version=1.0.0") private HelloProvider helloProvider;}
2.7.3版本直连时需要把分组和版本号配置在url中,不确定是故意为之还是bug,可以看下这个方法ClusterUtils#mergeUrl
感谢,你是对的,加上就没有什么问题了
问题解决了,关闭了
可能和这个有关系:https://github.com/apache/dubbo/pull/4787 已经修复了
Most helpful comment
这样就可以了吧
@RestController
public class DemoController {
}
2.7.3版本直连时需要把分组和版本号配置在url中,不确定是故意为之还是bug,可以看下这个方法ClusterUtils#mergeUrl