spring-cloud – Spring cloud eureka客户端到多个eureka服务器

我能够让eureka服务器以点对点模式运行.但我很好奇的一件事是如何让服务发现客户端注册到多个eureka服务器.

我的用例是这样的:
假设我有一个服务注册到其中一个eureka服务器(例如服务器A),并且该注册被复制到其对等体.该服务实际上指向服务器A.如果服务器A出现故障,并且客户端希望与服务器A续订,则如果服务器A不再存在,更新如何工作.
我是否需要注册两者,如果没有,那么如果客户端无法与服务器A通信,更新是如何发生的.它是否具有服务器B的一些知识(来自其初始和/或后续的通信A)并且故障转移要做它的注册续期?这在任何文档中都不清楚,我需要验证

所以根据答案,我将以下内容添加到我的application.yml中

eureka:
  # these are settings for the client that gets services
  client:
    # enable these two settings if you want discovery to work
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://localhost:8762/eureka/, http://localhost:8761/eureka/

它只注册到逗号分隔列表中的第一个.如果我在eureka服务器之间切换注册翻转它们.

我可以看到它确实基于逗号分隔这些,但我的猜测是Eureka不使用它(来自EurekaClientConfigBean.java)

    @Override
    public List<String> getEurekaServerServiceUrls(String myZone) {
        String serviceUrls = this.serviceUrl.get(myZone);
        if (serviceUrls == null || serviceUrls.isEmpty()) {
            serviceUrls = this.serviceUrl.get(DEFAULT_ZONE);
        }
        if (serviceUrls != null) {
            return Arrays.asList(serviceUrls.split(","));
        }

        return new ArrayList<>();
    }
最佳答案
应向您的客户端应用程序提供Eureka URL列表. URL以逗号分隔.

转载注明原文:spring-cloud – Spring cloud eureka客户端到多个eureka服务器 - 代码日志