[关闭]
@coldxiangyu 2017-06-06T16:18:51.000000Z 字数 1060 阅读 8005

Eureka 服务注册列表显示IP问题研究

WEB框架


在研究Spring Cloud的过程中,本地搭建好Eureka注册中心之后,发现Eureka服务页面显示的服务是机器名:端口的格式,并不是IP+端口的形式。
如下图:
image_1bhrl17qpgc91cin1gum8bi1g6s9.png-28.2kB
具体搭建过程我就不再贴代码了,参考我关于spring cloud其他文章即可。
我的配置如下:

  1. spring.application.name=compute-service
  2. server.port=2223
  3. eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

在查找方案的时候发现还有一个eureka.instance.prefer-ip-address=true的配置,这也是网上绝大多数人提供的方案,但是我加上这个配置之后,依然是机器名+端口的形式。
后来查找相关配置发现,单单配置这个是不够的,以下是我最终的配置:

  1. spring.application.name=compute-service
  2. server.port=2223
  3. spring.cloud.client.ipAddress=192.168.43.177
  4. eureka.instance.prefer-ip-address=true
  5. eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${spring.application.name}:${server.port}
  6. eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

附结果图:
image_1bhu7nsemqg614u71ldl7u1unp9.png-21.2kB
搞定!
注意,spring cloud不同版本的配置可能不同,比较老的版本是eureka.instance.preferIpAddress=true替代eureka.instance.prefer-ip-address=true
在实际的使用过程中,我发现eureka.instance.prefer-ip-address=true其实并不是必须的,只要配置:

  1. spring.cloud.client.ipAddress=192.168.43.177
  2. eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${spring.application.name}:${server.port}

即可显示IP+端口,不过保险起见,建议使用完整配置。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注