• 记一次dubbo消费者注册失败找不到服务提供者问题


    项目分多套环境,其中一套环境重新部署时,频繁出现消费者找不到服务提供者的错误

    Exception :org.apache.dubbo.rpc.RpcException: 
    No provider available from registry xxx.xxx.xxx.xxx:2181 for service com.xxx.XxxService 
    on consumer xxxip use dubbo version 2.7.10, please check status of providers(disabled, not registered or in blacklist).
    
    
    • 1
    • 2
    • 3
    • 4

    经过多次重启后才有可能恢复正常,而其他环境并没有发现此问题

    怀疑点:
    1.消费者和服务提供者dubbo版本对不上
    2.服务提供者没有注册上服务
    3.注册中心有问题

    逐一排查:
    1.消费者和服务提供者dubbo版本对不上
    经排查两个项目的pom依赖,dubbo版本是一致的

    2.服务提供者有问题,服务不可用
    telnet服务提供者,经检查服务是正常的
    具体操作:
    telnet ip dubbo服务端口,如telnet 127.0.0.1 20880, ls查看提供的服务,还可以invoke简直执行下调用

    3.注册中心的问题
    使用zkCli连接zookeeper,查看其上注册的dubbo服务,发现服务正常,但服务下的消费者是空的

    zkCli.cmd -server ip
    
    查看注册的dubbo服务
    ls /dubbo
    
    查看dubbo服务消费者
    ls /dubbo/接口/consumers
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    目前问题指向消费者注册的有问题,导致拉取不到服务列表
    于是检查消费者应用日志,启动过程未发现异常日志,包括连接zookeeper也没有问题,消费者也没有问题

    再复盘下整个过程,消费者注册有问题,但不是每次都有问题,只是高频出现问题,问题还是出在zookeeper上,或许zookeeper版本和项目依赖的包版本冲突?检查下zk连接,发现消费者apollo中配置的zk地址有两种域名…

    配置了多个zk地址,难道会导致注册出问题?服务提供的连接的是 zk1域名,消费者连接的是zk1域名+zk2域名,zk2为老域名,后续逐渐弃用了,连接zk2发现还能找到消费者,反倒是zk1上没有消费者。删除掉消费者应用配置中的zk2域名重启后就正常了

    有个问题待后续确认:连接多个zk地址,不应该同时注册吗,此问题中消费者的问题现象显示只注册了其中一个zk

  • 相关阅读:
    无声的世界,精神科用药并结合临床的一些分析及笔记(八)
    viewerjs -v 11 动态获取图片(ajax),以及重复初始化问题。
    【跟晓月学数据库】基于book库的mysql进阶实战
    报名 | 2022年 Ansys 全球仿真大会中国站启动报名
    C# 更加优质的操作MongoDB数据库
    HtUI使用文档
    录屏功能怎么打开?教你4个打开方法
    深入探索时间复杂度:解锁算法性能的关键
    jQuery效果演示
    SpringMVC(二)响应
  • 原文地址:https://blog.csdn.net/u012098021/article/details/128092370