2-2 - 没有可用的 Provider(地址找不到)

可能的原因

  • Provider 服务没启动,或者注册中心(比如 ZooKeeper,Nacos,Consul)宕机了。
  • Dubbo 的服务配置有误差,必须保证服务名,组别 (默认是 Dubbo),version 三者都正确。
  • 访问的环境有误:通常我们会有开发环境、测试环境、线上生产环境等多套环境。有时候发布的服务到了测试环境,而访问调用时却走了开发环境。

排查和解决步骤

  1. 访问注册中心的 Ops 系统,查询对应的服务是否有提供者列表;同时检查调用者应用所在服务器的日志(一般每种注册服务的客户端都会有对应的日志记录),查看是否有地址信息的推送/拉取记录。
  2. 如无,则表明发布者发布服务失败,检查发布者的应用启动是否成功。
  3. 如有服务,则检查调用者应用所连接的注册中心,确认跟预期的环境要匹配。
  4. 如上述都没有问题,检查是否配置了路由过滤的规则等。

这个错误码的 FAQ 页面参考了空冥同学的 《Dubbo 常见错误及解决方法》

所引文章通过 CC-BY-4.0 协议赋予了汇编的权利。在此向原作者表示感谢。


最后修改 January 17, 2023: Update 2.md (#1867) (01699276b7)