nacos服务注册ip与实际ip不符问题

依赖nacos服务注册包

<dependency>
   <groupId>com.alibaba.bootgroupId>
   <artifactId>nacos-discovery-spring-boot-starterartifactId>
   <version>0.2.7version>
dependency>

问题

两个节点10.**.**.15和10.**.**.21注册到nacos上,但是nacos页面中查看10.**.**.15地址与实际不符合?如下:127.0.0.1实际服务ip应该是10.**.**.15。

问题定位

  1. 核查15和21环境/etc/hosts发现没有太大差别
  2. 图1,查看服务注册源码NacosDiscoveryAutoRegister使用NetUtils.localIP()获取ip方法。
  3. 图2,查看NetUtils源码,使用InetAddress.getLocalHost().getHostAddress()获取ip。
  4. 图3,进入InetAddress.getLocalHost()方法,通过getLocalHostName()映射ip,如果getLocalHostName()获取值是localhost,则返回loopbackAddress()回环ip-127.0.0.1。
  5. 查看了21服务hostname不是localhost,而15服务hostname为localhost。
  6. 故得出结论,如果想要得到真实ip,则服务的hostname不能为localhost。
  7. 使用“[root@localhost ~]# hostname 新主机名”,修改15的hostname。 

 

 

 

 

你可能感兴趣的:(java,java,微服务,spring,boot)