尤里卡始终返回端口8080的url

时间:2019-02-26 17:48:59

标签: java spring spring-cloud netflix-eureka

无论客户端如何配置,始终从eureka返回端口8080。这是我在客户端上的eureka配置的示例:

这是application.yml

eureka:
  client:
    register-with-eureka: true
    fetch-registry: false
    serviceUrl:
      defaultZone: http://eurekaserver.com/eureka
  instance:
    nonSecurePort: 80
    nonSecurePortEnabled: true
    hostname: myhost

使用上述配置的应用程序将尝试向eureka注册。它可以成功注册,但是eureka返回http://myhost.com:8080。预期的网址应该是http://myhost.com

该应用程序在端口8080上运行,但是http://myhost.com到达了终点。有什么办法可以解决这个问题?

-编辑-

这是我的bootstrap.yml

spring:
  application:
    name: myappname

3 个答案:

答案 0 :(得分:1)

您在哪个文件中添加了此配置? bootstrap.ymlapplication.yml还是个人资料专用的?还要检查属性文件名中的拼写错误。

因此,正在发生的是您的配置未正确加载。 Eureka Client的自动配置在当前上下文中找不到EurekaInstanceConfigBean,因此它正在为您创建一个。 默认情况下,它首先检查server.port,然后检查port,如果尚未设置以前的密钥,则最终将端口设置为8080。

我不知道您使用的是哪个版本,但这已经是相当长一段时间以来的默认行为了。

我希望这会有所帮助! :)

答案 1 :(得分:0)

我看到的是完全相同的行为。在服务器上注册的所有客户端均返回正确的url,但端口号为8080错误。我在同一节点上运行了2个客户端,它们的名称和端口不同,一个确实在使用8080端口,但在eureka服务器上正确显示了该端口,但是一个正在使用端口9090的方式也在某种程度上显示了eureka服务器上的端口8080。我试图将server.port移到这里和那里(bootstrap.yml或application.yml),但是没有运气。任何帮助将不胜感激!

答案 2 :(得分:0)

在这种情况下,请转到:

  1. 运行方式->运行配置
  2. 环境
  3. 从其中删除端口号8080并应用
  4. 尝试通过在 application.properties
  5. 中传递for (int i = 1; i + num < str.size(); i++) { if (i % space == 0) { str.insert((i+num)," "); // num -starting at 0- is the number of spaces in the string num++; } } 来使用其他端口运行应用程序