本地研发团队没有本地开发测试用服务器,使用了远端云服务搭建了nacos等中间件。
本地开发虽然在不同子网,但是都能保证互通。
所以理论上虽然注册的服务可能是192.168.1.222和192.168.4.111这样,但是其实也是可以互相访问,不影响研发的。
问题研发本地很多人安装过vmware或者vpn,导致存在多个虚拟网卡,nacos注册时默认使用排序1的网卡,多为vmware的虚拟网卡,所以导致注册子网ip不对,服务不通。
尝试了几种方案解决。
- 手动指定本地IP
spring.cloud.nacos.discovery.server-addr = 192.168.1.222:8848
spring.cloud.nacos.discovery.ip = 192.168.1.222
spring.cloud.nacos.discovery.port = 8989
但是本地是fttr组网wifi,动态ip,所以不能手动指定。pass
- 使用ip模糊匹配
spring.cloud.inetutils.preferred-networks=192.168.1.
使用前缀为192.168.1.的ip比如:192.168.1.222/192.168.1.223
可以使用,推荐。
- 指定网卡
spring.cloud.nacos.discovery.networkInterface = 'eth0'
可以使用,但是windows系统下测试有问题,linux下可以。