本篇介绍在微服务实践中踩过的坑,以及解决方法。
Eureka 在docker下服务用ip识别注册的客户端
在Spring Cloud 微服务(四) Docker化中实现Eureka的docker化之后,发现在docker化之后的Eureka注册的Client都是以一个奇怪的hostname注册的(应该是docker的image id),导致服务无法被识别:
解决方法
在Eureka服务端不用作更改,在Eureka客户端,配置如下信息,其中prefer-ip-address代表在注册的时侯倾向使用ip:
eureka:
instance:
prefer-ip-address: true
client:
serviceUrl:
defaultZone: http://**.**.**.**:8761/eureka/
然后在pom.xml添加一个依赖
<dependency>
<groupId>de.ixilon</groupId>
<artifactId>aws-aware-eureka-instance</artifactId>
<version>1.0.0</version>
</dependency>
运行结果
运行之后,我们再看Eureka控制页面,发现这里已经使用了aws的Private DNS作为host显示,并且点击这个链接之后跳转到的是该服务的Public IP