【问题标题】:How to config multiple Eureka Servers from client in Spring Cloud如何在 Spring Cloud 中从客户端配置多个 Eureka 服务器
【发布时间】:2015-08-31 05:56:31
【问题描述】:

从 spring 文档中,我看到我们可以一起拥有对等 eureka 服务器,所以对于 Eureka1,在 application.yml 中,我可以拥有:

spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2/eureka/

在 Eureka Server 2 中,我可以拥有:

spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/

现在这两个eureka server 互相认识了,很好。 但是,现在在配置客户端时,当他们再次注册Eureka时,如何做到这一点?

在我的客户端应用程序中,我有:

eureka:
      instance:
        hostname: ${host.instance.name:localhost}
        nonSecurePort: ${host.instance.port:8080}
        leaseRenewalIntervalInSeconds: 5 #default is 30, recommended to keep default
        metadataMap:
          instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
      client:
        serviceUrl:
          defaultZone: http://(eurekaServerHost):8761/eureka/

    server:
      port: ${host.instance.port:8080}

所以现在我的问题是我应该在客户端 application.yml 中使用 peer1 还是 peer2 作为 EurekaServerHost?

谢谢

【问题讨论】:

    标签: spring-cloud netflix-eureka


    【解决方案1】:

    eureka.client.serviceUrl.defaultZone 中使用逗号分隔的对等点列表。

    eureka.client.serviceUrl.defaultZone=http://<peer1host>:<peer1port>/eureka,http://<peer2host>:<peer2port>/eureka
    

    【讨论】:

    • 这不适用于我的情况。我将几个 Eureka 主机作为逗号分隔列表放在 eureka 客户端应用程序中。但是,它仅在列表中的第一个注册。请帮忙。
    • from github.com/Netflix/eureka/wiki/… "一旦服务器开始接收流量,在服务器上执行的所有操作都会复制到服务器知道的所有对等节点。如果某些操作失败因此,信息会在下一个检测信号上进行协调,该检测信号也会在服务器之间复制。”
    • @spencergibb - 请您在这里指导我:stackoverflow.com/questions/53955173/…
    • @spencergibb:我们能否提供在 eureka 实例前设置负载均衡器的 URL?这样我就不必每次添加新的 Eureka 实例时都修改我的服务 URL。虽然我试过了,但复制不起作用。可以参考我的设置here
    • 我不建议在负载均衡器后面使用 eureka。
    猜你喜欢
    • 2015-04-11
    • 2018-10-25
    • 2020-07-23
    • 2015-07-13
    • 2018-02-05
    • 2020-05-22
    • 2016-02-15
    • 2017-01-02
    • 2016-11-26
    相关资源
    最近更新 更多