今晚在写 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
这个 IP 是什么,我 ping 了一下没有 ping 通,因为我的手机网络是江西移动热点,因为家里宽带出了问题,我就用手机热点在上网。
然后查询了这个 IP:223.82.254.81,是江西南昌移动的,应该是网络上游基站提供的公网IP,某个区域内公用的,也 Ping 不通,服务消费者肯定连接不上,要超时。
神器的事情来了,我尝试换了个网络,用我的深圳电信的卡开了个热点,启动服务生产者如下
我去,怎么这次 IP 就是对的了,试试运行服务消费者,启动没有报错,调用接口测试发现成功
很明显就是这个 IP 搞的鬼,这个订阅的 IP 地址是 dubbo 内部生成的
具体是什么逻辑顺序,这里参考这篇文章(正确与否以后验证)
总之,特殊的网络原因可能会导致获取错误的 IP,从而订阅错误服务提供者,导致消费失败
代码地址:https://github.com/saysky/springboot-dubbo-demo
内容大致两种
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×tamp=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
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏