关于Spring Cloud注册到Eureka上的服务,注册的IP是虚拟机的IP的解决方案
在 bootstrap.yml 中添加如下配置:
spring:
cloud:
inetutils:
ignored-interfaces: ['VMware.*']
use-only-site-local-interfaces: true
注:
一定是添加到 bootstrap.yml 中,而不是添加到 application.yml 中,原因如下:
因为 InetUtils 获取ip的方法 findFirstNonLoopbackHostInfo() 会被调用多次,最先的调用是在 HostInfoEnvironmentPostProcessor, 而这个类执行的时候还没加载 application.yml, 因此配置并不生效。而 bootstrap.yml 是在SpringBoot启动前就加载的。