前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >启动dubbo消费端过程提示No provider available for the service的问题定位与解决

启动dubbo消费端过程提示No provider available for the service的问题定位与解决

作者头像
朱季谦
发布2021-06-09 20:07:09
2.1K0
发布2021-06-09 20:07:09
举报

文/朱季谦

某次在启动dubbo消费端时,发现无法从zookeeper注册中心获取到所依赖的消费者API,启动日志一直出现这样的异常提示

代码语言:javascript
复制
Failed to check the status of the service com.fte.zhu.api.testService. No provider available for the service com.fte.zhu.api.testService from the url zookeeper://127.0.0.1:2181/org.apache.dubbo.registry.RegistryService?
......

如何解决类似 No provider available的问题,其实思路很好理解,既然是没有可用的生产者,也就意味着,应该生产者没有把其接口注册到zookeeper注册中心,首先我们先确定这条假设是否成立,就要去zookeeper服务器上定位下。

进入到zookeeper的/bin目录下,执行:

代码语言:javascript
复制
[app@zk bin]$ ./zkCli.sh

执行成功后,就可以使用zookeeper的客户端来获取注册在/dubbo节点下的所有数据了。

第一步,先执行,发现该节点下什么也没有,只出来一个中括号[ ],这就意味着,生产者没有成功把接口信息注册到zk上,若注册成功,根据以下指令,是能查询到相应的接口注册信息的。

代码语言:javascript
复制
[zk: localhost:2181(CONNECTED) 4] ls /dubbo/com.fte.zhu.api.testService/providers
[]

既然如此,那肯定是生产者项目出现了什么异常,进入到生产者项目,查看其日志信息,可以看到在其启动过程中,其中出现了一个Close all registries....的异常信息,这就意味着,该项目的所有dubbo的生产者接口都没有注册到zookeeper中,导致在消费者项目上无法获取到依赖的接口。

image
image

这次问题其实是改生产者在启动过程当中,缺少了一个字段导致的,导致启动应用失败,进而无法正常将dubbo服务注册到zk上。

因此,下次若再出现类型No provider available for the service的问题,可以按照此思路一步步定位,进而找到问题所在。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-05-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档