Linux:无法识别 Spring Cloud Web 应用程序的主机名

Posted

技术标签:

【中文标题】Linux:无法识别 Spring Cloud Web 应用程序的主机名【英文标题】:Linux: Hostname to Spring Cloud Web Application not recognized 【发布时间】:2018-11-07 17:09:05 【问题描述】:

我在 Windows 中有一个开发环境,我可以在其中访问我的 Eureka 配置服务器/客户端的 IP 地址和主机名(PC 名称)中的 spring 构建。当我将它移动到 RedHat 环境时,如果它是主机名,它就无法识别 URL。

我的主要目标是将尤里卡客户端状态页面更改为指向尤里卡客户端的 hysterix 流的 hysterix 监视器。 $spring.cloud.client.hostname 的值解析为主机名。我想知道有什么办法让它成为尤里卡客户端的当前IP?

确切地说,这里是我想要做的一个例子。

eureka:
 instance:
  preferIPAddress: true
  statusPageUrlPath: http://$spring.cloud.client.hostname:$eureka.cloud.config.port/hystrix/monitor?stream=http%3A%2F%2F$spring.cloud.client.hostname%3A$server.port%2Factuator%2Fhystrix.stream

碰巧客户端和服务器都在同一台机器上,所以我很满意将客户端主机名用于 Eureka Config Server 路径和 Eureka Client hystrix流

请注意,我已经将 preferIPAddress 设置为 true,但生成的主机名仍然是“/etc/hostname”的值。我看到了一些在 Eureka 客户端实例中明确指定 IP 地址的解决方案。但我更喜欢让它动态化,以便相同的代码可以在开发和部署环境中顺利运行。

我该怎么做才能让主机名和ip地址一样被识别?

【问题讨论】:

【参考方案1】:

我现在才知道答案。我只是将以下内容更改为此。

$spring.cloud.client.hostname

    ↓↓↓↓↓↓↓↓↓↓↓↓

$spring.cloud.client.ip-address

我被抛出了一个错误的结论,因为其他网站会告诉我使用这个不起作用的配置 $spring.cloud.client.ipAddress

Finchley / Spring boot 2.0 版本可能发生了变化。如果有人可以给我一个链接,指向描述配置更改的文档或讨论,那将会很有帮助。

【讨论】:

以上是关于Linux:无法识别 Spring Cloud Web 应用程序的主机名的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 无法运行依赖于 spring-cloud-starter-config 的 schema.sql

spring cloud feign 调用返回结果为null 的原因

springcloud 项目jar运行Nacos出错

Spring cloud开发的微服务部署到Linux上内存过高的问题

无法通过 spring.cloud.config.enabled:false 禁用 Spring Cloud Config

spring cloud导入一个新的spring boot项目作为spring cloud的一个子模块微服务,怎么做/或者 每次导入一个新的spring boot项目,IDEA不识别子module(代