随着SpringBoot和SpringCloud的火爆,微服务的注册发现变更更加重要,不然很容易找不到服务,导致调用失败,最近我就遇到一个很奇怪的问题,特地整理出来,希望对遇到次问题的童靴们有个帮助。
由于昨晚下了暴雨,我的电脑好像断电了一次,早上一回来发现电脑自动重启了。桌面的开发工具啥的都得重新打开一次,Idea也一样,我也正常的启动了服务,查看了nacos,这是发现一个问题了,平常的服务ip都是192.168.73.204,今天一看不对,变成了192.168.66.1,试着调用下我机器启动的服务,好像也啥问题。查看了下ip,ipconfig命令看下,也没错哦。
一会隔壁桌同事和我联调一个接口,他说老是调不通,使用的feign的rpc调用。我还亲自也写了一个feign,发现没问题啊。后来不知道从来看到的答案,说是电脑安装了VMware,电脑会抽风默认使用虚拟机的ip,而刚好我项目里也没有忽略虚拟机的ip,比如:
#过滤掉虚拟机的网卡 ,不然可能会读取到虚拟机的ip注册到nacos,或者手工禁用掉虚拟机的网络
#spring
# cloud
# inetutils:
# ignored-interfaces: ['VMware.*','Hyper-V.*']
# preferred-networks: ['192.168']
# use-only-site-local-interfaces: true
# //忽略指定正则匹配的网卡的配置,我这里配置了VM虚拟机和Docker的
# spring.cloud.inetutils.ignoredInterfaces=
# //指定默认IP,可以使IP段
# spring.cloud.inetutils.preferredNetworks=
# spring.cloud.inetutils.use-only-site-local-interfaces=true
后来我加上这段后,原本的192.168.73.204ip又回来了。网上说是springboot抽风随机拿一个ip。莫名其妙了,之前就没试过了。
还有种方法:直接去网络设置那里(win10),把虚拟机的的网络禁用
如有问题一起探讨,欢迎微信:441338280.