Eureka 客户端的“prefer-ip-address”在 docker 容器中不起作用
Posted
技术标签:
【中文标题】Eureka 客户端的“prefer-ip-address”在 docker 容器中不起作用【英文标题】:"prefer-ip-address" of Eureka client not work in docker container 【发布时间】:2018-09-15 23:54:54 【问题描述】:我有一个在 docker 中运行的 Spring Cloud Eureka 客户端实例,我希望客户端将主机的 IP 地址而不是容器的主机名注册到 Eureka 服务器,因此我将 eureka.instance.ip-address: xx.xx.xx.xx
和 eureka.instance.prefer-ip-address: true
设置为客户端的application.yml
,但这不起作用,它仍然将容器的主机名注册到服务器,感谢任何帮助!
spring:
application:
name: uaa-service
server:
port: 8799
eureka:
service-url:
defaultZone: https://XX.YY.ZZ/eureka/
instance:
prefer-ip-address: true
ip-address: xx.xx.xx.xx
我的 Spring Boot 版本是 2.0.0.RELEASE
,Spring Cloud 是 Finchley.M9
。
【问题讨论】:
<eurekaserver>/apps
中有什么内容?那里显示的不是发送给客户的。
【参考方案1】:
在你的春季服务中提供这个
spring:
application:
name: uaa-service
cloud:
inetutils:
ignored-interfaces:
- eth0
- eth1
- eth2
- eth3
- lo
取自this
【讨论】:
【参考方案2】:我用的是同版本的spring-boot,遇到了类似的问题
但我认为您将 IP 地址与实例 ID 混淆了。
查看此链接:https://github.com/spring-cloud/spring-cloud-netflix/issues/1646#issuecomment-275121055
当您将鼠标悬停在链接上或单击它时,它会显示正确的 IP 地址吗?
不管怎样,我有两个应用程序,一个使用 spring-boot 1.5,这个属性可以工作。
对于 2.0 版本,应用程序始终使用机器 IP,而不是我在 eureka.instance.ip-address
中告知的内容。
编辑 > 我在这里报告了一个错误:https://github.com/spring-cloud/spring-cloud-netflix/issues/2878
【讨论】:
以上是关于Eureka 客户端的“prefer-ip-address”在 docker 容器中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 API 网关配置对 eureka 客户端的 API 请求