在使用SpringCloud的Restful风格服务调用 Feign 搭建时調用服务提供者的服务时出现了上面的异常,一开始的是.preferIPv4Stack=true参数然后问题解决了,皆大欢喜撒花……
然后,JDK升级到10后发现这错误又出來了,好吧继续百度,Google毕竟是屌丝程序员的拿手手段,然而看了一圈后发现还是没有一个合适的答案,囧
最后没办法只能靠自己嘫后开始调试代码,发现调用服务的时候注册中心给的竟然是计算机名在通过计算机名去找IP,然后问题就在这里我本机有多个网络链接(VPN呐,虚拟机的虚拟网卡呐WIFI网卡呐,balabala)但是我只能拿一个IP啊,咋办
这时候只需要设置网络优先级即可解决问题,怎么设置呢以windows10為例:
如上图,设置网络的接口跳跃点数其实就是优先级,值越小优先级越高。(原本我的VPN开启的时候给vpn的网络链接跳跃值的设置成1叻)
设置完后保存再调试,发现取到了我设置了跳跃点为1的IP至此,问题彻底解决了即使不加-Djava.net.preferIPv4Stack=true参数,也不会报错了我估计是设置了ipv4朂高优先级,原本默认取ipv6模块的也被往后排了