从https://github.com/apache/incubator-dubbo下载了Dubbo,在IntelliJ中运行dubbo-demo; 最新版本2.6.2
dubbo-demo-consumer启动运行时候一直报错:
No provider available for the service。
网上搜索汇总了些可能的解决办法:
1. 服务端服务接口路径和客户端的接口不一致,前后检查查看无此问题;
2. 客户端设置 check="false"等,经过验证无效;
3. 因服务端和客户端在同一机器上,有多个客户端时,注册中心的广播地址需为: multicast://224.5.6.7:1234?unicast=false; 经验证不是此问题,此次也只启动了一个客户端;
4. 服务端发布的服务版本和客户端不一致,因原本都没有配置,在加上version="1.0"验证后无效;
5. 服务发布绑定的ip和客户端使用的不一致;此处考虑多网卡造成的;
1) 第一种方案: 服务发布时指定host,如下:
<dubbo:protocol name="dubbo" port="20880" host="192.168.99.123" />
客户端配置时添加如下:
<dubbo:protocol host="192.168.99.123" />
验证后仍然无效;
2) 第二种方案: 查看本地的网卡,将启用的多余的一个虚拟网卡禁用;
其他配置还原,最后问题解决;
思考下,最终还是网卡的问题,但理论上指定host的时候应该就可以解决啊,此处还存有疑惑留待考究。