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


    文/朱季谦

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

    1. 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?
    2. ......

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

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

    [app@zk bin]$ ./zkCli.sh
    

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

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

    1. [zk: localhost:2181(CONNECTED) 4] ls /dubbo/com.fte.zhu.api.testService/providers
    2. []

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

    image


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

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

  • 相关阅读:
    许愿,点亮心中的希望之火
    企业如何反爬虫?
    Flyway报错源码分析——Validate failed: Migrations have failed validation
    【六:(mock数据)spring boot+mybatis+yml】
    python编程小知识tips 20220720
    用Python订正数据
    JavaScript-对象,对象是什么,对象能干嘛,对象该怎么用,本篇带你了解js中的对象。
    雷军造车1年+,手机“打法”真的适合小米汽车吗?
    Kotlin进阶指南 - 单元测试
    python爬虫实战之异步爬取数据
  • 原文地址:https://blog.csdn.net/weixin_40706420/article/details/134499271