【问题标题】:Spring Cloud Discrovery Eureka - Returns Localhost instead the hostname it is locatedSpring Cloud Discrovery Eureka - 返回 Localhost 而不是它所在的主机名
【发布时间】:2018-11-29 22:09:39
【问题描述】:

我使用 Spring Cloud Eureka Server 和 Config Server,作为 Discovery First,我的问题是:

当服务在 eureka 服务器中注册时,它返回的配置服务器 URL 是 http://LOCALHOST:8888 而不是 http:// {HOST_NAME}}:8888 并且托管在其他服务器上的所有其他服务都找不到它的配置。

日志行:

从服务器获取配置:http://localhost:8888

有什么配置可以解决吗?

配置服务器的application.yml是这样的:

server:
  port: 8888

spring:
  application:
    name: configserver
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          searchLocations: /opt/config_dir

eureka:
  client:
    serviceUrl:
      defaultZone: http://10.111.22.33:8761/eureka,http://10.111.33.44:8761/eureka

配置客户端bootstrap.yml是这样的:

spring:
  application:
    name: show-service
  profiles:
    active: dev
  cloud:
    discovery:
      enabled: true

eureka:
  client:
    serviceUrl:
      defaultZone: http://10.111.22.33:8761/eureka,http://10.111.33.44:8761/eureka

【问题讨论】:

  • 不知道,你的配置是什么样的?
  • 我添加了配置
  • 你用的是哪个版本?
  • 默认为 localhost:8888。不知何故,我觉得它无法从尤里卡获取网址。
  • 我使用的是Spring cloud Fincley.RC2

标签: spring spring-boot spring-cloud spring-cloud-netflix spring-cloud-config


【解决方案1】:

默认情况下,Discovery First Bootstrap 处于禁用状态。您在配置客户端应用程序中缺少一些属性 - 启用使用发现来查找配置服务器 URL 和您的配置服务器名称 (service-id)。

spring:
  cloud:
    config:
      discovery:
       enabled: true
       service-id: configserver

更多:https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_client.html#discovery-first-bootstrap

【讨论】:

  • 非常感谢!我遵循旧指南并改用spring.cloud.discovery.enabled=true,这在较新的springboot中不起作用
【解决方案2】:

我通过部署我的项目解决了这个问题
mvn 部署
希望这能解决你的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 2021-10-26
    • 2016-05-08
    • 1970-01-01
    • 2013-09-15
    • 2016-08-29
    • 1970-01-01
    相关资源
    最近更新 更多