我可以强制 Eureka 注册使用 IP 地址而不是主机名吗?

Posted

技术标签:

【中文标题】我可以强制 Eureka 注册使用 IP 地址而不是主机名吗?【英文标题】:Can I force Eureka registrations to use an ip address instead of a hostname? 【发布时间】:2015-03-27 23:08:44 【问题描述】:

我有一个独立的嵌入式 Eureka 服务器,由 Spring Boot 1.2.0.RELEASE 和 Spring Cloud 1.0.0.RC1 提供支持。我看到服务在仪表板中正确注册了自己,这很棒。状态链接使用它们正在运行的机器的主机名。不幸的是,我们使用的是虚拟机,它们没有在 DNS 中注册自己,这意味着链接无法解析。我开始查看代码,但无法找到强制链接使用主机 IP 地址的方法。仪表板损坏并不是世界末日,但恐怕一旦我们开始使用 Ribbon 或 Feign 联系服务,这些 URL 也会使用主机名并且无法解析。也许我真正要问的是有没有办法强制客户端使用 IP 地址而不是主机名进行注册?任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

eureka.instance.preferIpAddress=true 设置为记录的here

【讨论】:

你能提供一些关于这个设置的参考吗?不鼓励仅使用代码的答案,因为它不仅会混淆 OP,还会混淆未来的观众。 感谢您的设置。将eureka.instance.preferIpAddress=true 添加到我的Eureka 客户的application.properties 中起到了作用——在某种程度上。我现在在 Eureka 仪表板中看到类似于 UP (1) - 127.0.1.1 的内容。我找到了他们获取主机信息的代码(EurekaInstanceConfigBean),它似乎只在查看本地主机。我想我得看看开票看看是否有人对解决方案有想法。 环回地址问题似乎是由/etc/hosts 文件中的错误配置引起的。 Spring Cloud Reference Documentation prefer_ip_address 我在2.16版本测试过,该选项不起作用。

以上是关于我可以强制 Eureka 注册使用 IP 地址而不是主机名吗?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Eureka 使用 IP 地址进行服务注册

Spring Cloud Eureka 使用 IP 地址进行服务注册

Eureka 注册了奇怪的 IP 地址并且请求无法使用 zuul

SpringCloud组件:Eureka服务注册是采用主机名还是IP地址?

EUREKA 删除 or 强制下线/上线 实例

Eureka 注册服务列表显示 IP 配置