Dubbo消费者调用服务者提供的服务报错:
Exception in thread "main" com.alibaba.dubbo.rpc.RpcException: No provider available from registry 127.0.0.1:2181 for service demo2/com.dubbo.service.MydubboService on consumer 192.168.131.10 use dubbo version 2.6.0, may be providers disabled or not registered ?
at com.alibaba.dubbo.registry.integration.RegistryDirectory.doList(RegistryDirectory.java:572)
at com.alibaba.dubbo.rpc.cluster.directory.AbstractDirectory.list(AbstractDirectory.java:73)
at com.alibaba.dubbo.rpc.cluster.support.AbstractClusterInvoker.list(AbstractClusterInvoker.java:265)
at com.alibaba.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:224)
at com.alibaba.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:70)
at com.alibaba.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:51)
at com.alibaba.dubbo.common.bytecode.proxy0.getMessage(proxy0.java)
at MydubboConsumer.main(MydubboConsumer.java:11)
解决办法:
服务者注册在zookeeper上的服务配置
<dubbo:service interface="com.dubbo.service.MydubboService" group="demo1" ref="mydemoServiceImpl" timeout="600000"/>
消费者配置
<dubbo:reference id="demoService" group="demo2" check="false" interface="com.dubbo.service.MydubboService" timeout="180000" />
是的,这里消费者group必须和服务者定义的group一致,不然就会调用不到这个服务,把group改成=demo1就好了
可以看到注册的服务zookeeper叶子节点里面数据是这样子
格式化一下,猜测dubbo源码是加了group条件的判断