Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.xxx.xx

avatar 2020年2月1日00:11:04 评论 75 views

今晚在写 SpringBoot Dubbo 教程的时候,服务提供者能正常启动,消费者始终报错

内容大致两种

Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.xxx.xx

com.alibaba.dubbo.remoting.RemotingException: client(url: dubbo://223.82.254.81:22288/

检查了几遍代码是没有问题的

application.yml 配置文件写的是本机 ip:192.168.43.217

正常情况也是没有问题的

 

但是为什么启动生产者和消费者告诉我订阅生产者的 IP 为  223.82.254.81

[DUBBO] Subscribe: provider://223.82.254.81:22288/com.liuyanzhao.dubbo.api.service.UserService?anyhost=true&application=dubbo-provider&category=configurators&check=false&dubbo=2.6.2&generic=false&interface=com.liuyanzhao.dubbo.api.service.UserService&methods=findById&pid=37453&side=provider&timestamp=1580485599593, dubbo version: 2.6.2, current host: 223.82.254.81

 

这个 IP 是什么,我 ping 了一下没有 ping 通,因为我的手机网络是江西移动热点,因为家里宽带出了问题,我就用手机热点在上网。

然后查询了这个 IP:223.82.254.81,是江西南昌移动的,应该是网络上游基站提供的公网IP,某个区域内公用的,也 Ping 不通,服务消费者肯定连接不上,要超时。

 

神器的事情来了,我尝试换了个网络,用我的深圳电信的卡开了个热点,启动服务生产者如下

我去,怎么这次 IP 就是对的了,试试运行服务消费者,启动没有报错,调用接口测试发现成功

 

很明显就是这个 IP 搞的鬼,这个订阅的 IP 地址是 dubbo 内部生成的

具体是什么逻辑顺序,这里参考这篇文章(正确与否以后验证)

总之,特殊的网络原因可能会导致获取错误的 IP,从而订阅错误服务提供者,导致消费失败

 

代码地址:https://github.com/saysky/springboot-dubbo-demo

 

 

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: