eureka服务器中的fetchRegistry属性有什么用途?

10
如果Eureka客户端通过设置eureka: client: registerWithEureka: false来不向Eureka服务器注册自己,那么为什么fetchRegistry属性也需要设置为false呢?

https://github.com/Netflix/eureka/wiki/Understanding-eureka-client-server-communication#fetch-registry - Darren Forsythe
3个回答

12

registerWithEureka 用于控制客户端是否注册并因此变得可发现。这本身并不意味着该客户端将获取其他服务端点的信息,从而能够连接到它们。

fetchRegistry 用于控制客户端是否尝试连接到Eureka服务器,以便下载其他服务端点的信息。它可以在不注册自己的情况下执行此操作。 引用文档

获取注册表

Eureka客户端从服务器获取注册表信息并在本地缓存。然后,客户端使用该信息查找其他服务。


6

Eureka客户端需要向Eureka服务器注册才能变得可发现。 Eureka服务器也可以作为客户端。因此,设置registerWith Eureka和fetchRegistry为false是必需的。

只有客户端需要获取注册表以获取已注册的微服务进行通信 EurekaServer不需要注册自己,也不需要获取其他已注册的微服务


"将 registerWith Eureka 和 fetchRegistry 设置为 false 是必需的。- 如果您希望多个 Eureka 服务器相互注册以创建节点网络,该怎么办?如果一个 Eureka 服务器向另一个服务器注册,并且两者都获取对方的注册表,它们不会创建一个虚拟集群吗?尤其是如果您添加了 Zuul,通过以这种方式分组,一个节点上的服务应该能够故障转移到另一个节点。" - Paul Hodges

1

eureka.client.fetch-registry和eureka.client.register-with-eureka是两个属性,您可能会在另一个微服务上设置这些属性,以告诉它们如何与Eureka交互。但是Eureka也是一个微服务,因此这些属性可以与Eureka服务器一起使用,告诉它如何与其他Eureka服务器进行交互。

这两个属性的默认值都是true,表示Eureka应该从其他Eureka实例获取注册表,并将自己作为服务注册到其他Eureka服务器上。

如果在开发模式下没有其他Eureka服务器,则将它们设置为false,以便Eureka不会尝试联系其他Eureka服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接