本篇介紹在微服務實踐中踩過的坑,以及解決方法。
Eureka 在docker下服務用ip識別注冊的客戶端
在Spring Cloud 微服務(四) Docker化中實現Eureka的docker化之后,發現在docker化之后的Eureka注冊的Client都是以一個奇怪的hostname注冊的(應該是docker的image id),導致服務無法被識別:
image.png
解決方法
在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
image.png
image.png