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

avatar 2020年02月01日00:11:04 6 4695 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此
今晚在写 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
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0