Eureka 注册中心的首页有一栏专门显示当前已注册的服务,但是一般是以主机名 + 端口号的形式,尤其当我们部署到线上的时候。
前言
一般而言,我们是比较希望已注册服务以 Ip+ 端口的形式显示,配置的过程也比较简单,但是笔者在具体实践到阿里云 ECS 的时候,发现该显示 Ip 的地方,依然是一个主机名。
经过研究,发现配置是正确的,阿里云 ECS(CentOS7)不生效的原因在与主机的 Hosts 文件。
因为注册在 ECS 上的服务,注册到 Eureka 之后,他们默认是通过 ECS 的内网 IP 进行通讯,然而内网的 IP 又会默认的在主机的/etc/hosts 文件里面被配置上一个唯一的主机名称。
所以我们只需要在/etc/hosts 文件里,把内网 IP 对应的主机名那一行注释掉,就可以了。
配置
在 Eureka 做如下配置:
spring.application.name=eureka
server.port=1234
spring.cloud.client.ipAddress=10.10.10.10
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${spring.application.name}:${server.port}
eureka.client.serviceUrl.defaultZone=http://10.10.10.10:1234/eureka/
然后其余的 client,加上以下配置:
spring.cloud.client.ipAddress=${your-server-ip}
eureka.client.serviceUrl.defaultZone=http://10.10.10.10:1234/eureka/
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于