【问题标题】:Configure Eureka Server and client with custom port and address使用自定义端口和地址配置 Eureka 服务器和客户端
【发布时间】:2019-02-07 05:32:40
【问题描述】:

我有一个运行在默认 localhost 主机和端口 8761 上的 Eureka 服务器,所以我尝试以这种方式更改此默认配置:

server:
  port: 6000
  servlet:
    context-path: /myeureka
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false

但是这样我无法访问eureka仪表板,只使用默认配置:

server:
  port: 8761
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false

在我的客户端发生同样的事情,我不能指向另一个不同于默认的 eureka 服务器 (localhost:8761),请参阅我的配置:

server:
  port: 7000
  servlet:
    context-path: /client-eureka
spring:
  application:
    name: client-eureka
eureka:
  instance:
    prefer-ip-address: true
  client:
    eureka-server-port: 6000
    eureka-server-u-r-l-context: /myeureka

查看客户端日志我得到以下信息:

2018-09-01 09:19:37.175  INFO 4931 --- [           main] c.n.eureka.cluster.PeerEurekaNodes       : Replica node URL:  http://localhost:8761/eureka/

无论我在客户端配置什么端口或主机,始终尝试达到默认值。

重要: 我在这个版本中使用的是尤里卡:https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-eureka-server/2.0.1.RELEASE

【问题讨论】:

    标签: spring-cloud netflix-eureka


    【解决方案1】:

    我使用了和你一样的依赖版本,找不到配置路径server.servlet.contextpath

    相反,您可以使用 server.servlet-pathserver.context-path

    对于每个服务器配置,您还需要更新您的客户端 application.yml 文件。请记住,/eureka 是用于将 Eureka 客户端注册到 Eureka 服务器的默认 REST 端点

    案例 1:使用 server.servlet-path

    尤里卡服务器:

    server:
     port: 7000
     servlet-path: /myeureka
    
    eureka:
     client:
       register-with-eureka: false
       fetch-registry: false
    

    尤里卡客户端:

    spring:
      application:
        name: spring-cloud-eureka-client
    server:
      port: 0
    eureka:
     client:
       service-url:
         defaultZone: ${EUREKA_URI:http://localhost:7000/eureka}
     instance:
         preferIpAddress: true
    

    案例 2:使用 server.context-path

    尤里卡服务器:

    server:
     port: 7000
     context-path: /myeureka
    
    eureka:
     client:
       register-with-eureka: false
       fetch-registry: false
    

    尤里卡客户端:

    spring:
      application:
        name: spring-cloud-eureka-client
    server:
      port: 0
    eureka:
     client:
       service-url:
         defaultZone: ${EUREKA_URI:http://localhost:7000/myeureka/eureka}
     instance:
         preferIpAddress: true
    

    更新答案: 由于 server.servlet-pathserver.context-path 已被弃用,eureka 服务器将配置如下:

    server:
     port: 7000
     servlet:
       context-path: /myeureka
    
    eureka:
     client:
       register-with-eureka: false
       fetch-registry: false
    

    Eureka 客户端 application.yml 将与案例 2 相同。

    【讨论】:

    • 不推荐使用“context-path”和“servlet-path”中的两种情况。 (我使用的是spring-boot 2.0.4)
    • 而我的客户没有“defaultZone”属性
    • @RonaldoLanhellas 我试过但 eureka-server-port 和 eureka-server-u-r-l-context 不能帮助 eureka 客户端获取最新的 eureka 服务器端点。相反,defaultZone 可以。您能告诉我为什么需要使用这两个属性以及您遵循哪个指南或文档吗?然后我们可以一起解决您的问题。
    • 你是对的,我改变了配置,把“defaultZone”和一切正常。谢谢
    • @thanh 是否有任何选项可以避免 defaultZone 以 /eureka 结尾?
    猜你喜欢
    • 2018-02-05
    • 2020-05-22
    • 2019-03-26
    • 2011-04-29
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多