冷湘宇 Coldxiangyu's blog

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

2017-06-03
WEB

在研究Spring Cloud的过程中,本地搭建好Eureka注册中心之后,发现Eureka服务页面显示的服务是机器名:端口的格式,并不是IP+端口的形式。 如下图: image_1bhrl17qpgc91cin1gum8bi1g6s9.png-28.2kB

具体搭建过程我就不再贴代码了,参考我关于spring cloud其他文章即可。 我的配置如下:

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

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

spring.application.name=compute-service
server.port=2223
spring.cloud.client.ipAddress=192.168.43.177
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${spring.application.name}:${server.port}
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其实并不是必须的,只要配置:

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

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


Comments

Content