一个项目在测试环境测试功能都完成了,但是发布到线上环境时突然发现微服务之间的调用出现问题,经过一系列的排查,发现线上环境是多网卡的,分别是eth0,eth1,eth2,lo共四个网卡,服务启动后,注册到注册中心,由于没有指定注册到具体的ip地址,是由注册中心随机分配网卡,分配到相同的网卡的服务的ip地址是在同一网段下,这种情况服务之间是可以相互通信调用的,而不同的网卡下的服务是不能够相互通信调用的。
所以我们需要指定服务注册到同一网段下或者同一网卡下。以下是增加的配置
cloud:
inetutils:
ignored-interfaces:
- eth1
- eth2
- lo
这个配置的意思是排除eth1,eth2,lo三个网卡,我们线上共四个网卡,服务就会在注册时,分配到eth0这个网卡,加好后,服务一切正常。
没有bug的感觉真好