Spring Cloud Discrovery Eureka-返回Localhost而不是它所在的主机名

时间:2018-06-20 17:28:22

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

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

当服务注册表在eureka服务器中自行注册时,它返回的配置服务器URL是 http中的 http://LOCALHOST:8888 // {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

2 个答案:

答案 0 :(得分:1)

默认情况下,Discovery First Bootstrap被禁用。您缺少config客户端应用程序中的一些属性-允许使用发现来查找配置服务器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

答案 1 :(得分:0)

我通过部署项目解决了此问题
mvn deploy
希望这能解决您的问题