0


记一次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.消费者和服务提供者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

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

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

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

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


本文转载自: https://blog.csdn.net/u012098021/article/details/128092370
版权归原作者 程序源程序 所有, 如有侵权,请联系我们删除。

“记一次dubbo消费者注册失败找不到服务提供者问题”的评论:

还没有评论