如果Eureka客户端通过设置eureka: client: registerWithEureka: false来不向Eureka服务器注册自己,那么为什么fetchRegistry属性也需要设置为false呢?
registerWithEureka
用于控制客户端是否注册并因此变得可发现。这本身并不意味着该客户端将获取其他服务端点的信息,从而能够连接到它们。
fetchRegistry
用于控制客户端是否尝试连接到Eureka服务器,以便下载其他服务端点的信息。它可以在不注册自己的情况下执行此操作。
引用文档:
获取注册表
Eureka客户端从服务器获取注册表信息并在本地缓存。然后,客户端使用该信息查找其他服务。
Eureka客户端需要向Eureka服务器注册才能变得可发现。 Eureka服务器也可以作为客户端。因此,设置registerWith Eureka和fetchRegistry为false是必需的。
只有客户端需要获取注册表以获取已注册的微服务进行通信 EurekaServer不需要注册自己,也不需要获取其他已注册的微服务
eureka.client.fetch-registry和eureka.client.register-with-eureka是两个属性,您可能会在另一个微服务上设置这些属性,以告诉它们如何与Eureka交互。但是Eureka也是一个微服务,因此这些属性可以与Eureka服务器一起使用,告诉它如何与其他Eureka服务器进行交互。
这两个属性的默认值都是true,表示Eureka应该从其他Eureka实例获取注册表,并将自己作为服务注册到其他Eureka服务器上。
如果在开发模式下没有其他Eureka服务器,则将它们设置为false,以便Eureka不会尝试联系其他Eureka服务器。