什么是Eureka服务,Eureka客户端,Eureka实例和Eureka服务器

OD *_*eet 34 spring spring-cloud netflix-eureka

我正在通过阅读本文学习Spring cloud Netflix ,但是我开始对本文中的不同术语感到困惑,它们是:

  1. 尤里卡服务.据我所知,这是一个普通的服务(特别是微服务),运行在一个独特的uri(即每个uri的一个服务).说localhost:12000.它可以在Eureka服务器中注册.

  2. 尤里卡客户.与尤里卡服务相同???

  3. 尤里卡服务器.据我所知,我们可以检查,发现和管理我们构建的一系列微服务,通常运行的是服务器localhost:8761

  4. 尤里卡实例.我对它所指的是什么感到困惑,与Eureka客户一样?

在本文中,它eureka.client在配置和EurekaClientNetflix API中提到,它们是指同一件事吗?

如果我错了,请告诉我这四个术语是什么意思并纠正我.谢谢!

================================== UPDATE =============== ===================

在文章中它说:

@EnableEurekaClient 使应用程序成为Eureka"实例"(即它注册自己)和"客户端"(即它可以查询注册表以查找其他服务).

因此看起来Eureka实例与Eureka服务相同.虽然Eureka Client是一个可以查询其他实例/服务的特殊实例.

dus*_*ltz 29

定义


尤里卡服务器

发现服务器.它包含服务注册表和REST API,可用于注册服务,注销服务以及发现其他服务的位置.

尤里卡服务

任何可以在Eureka Server的注册表中找到并且其他人都可以发现的应用程序.服务具有逻辑标识符,有时称为VIP,有时称为"服务ID",可以引用同一应用程序的一个或多个实例.

尤里卡实例

任何将其自身与Eureka Server注册以供其他人发现的应用程序

尤里卡客户

任何可以发现服务的应用程序

问题


如何将应用程序同时作为Eureka Instance和Eureka Client?

应用程序通常需要让自己可供其他人使用(因此它们是一个实例),同时他们需要发现其他服务(因此他们是客户端).

Eureka客户端必须是Eureka实例吗?

没有.有时,应用程序没有提供任何东西,只是其他服务的调用者.通过configuration(eureka.client.register-with-eureka=false),您可以告诉它不要将自己注册为实例.因此它只是一个Eureka客户端,因为它只发现其他服务.

  • 但是为什么这个配置属性(eureka.client.register-with-eureka=false)是eureka.client.*而不是eureka.instance.*的一部分? (2认同)

ESa*_*ala 26

我会说这些术语有点含糊不清,这就是我认为它们在文章中的含义:

  • Eureka客户端:它可以是一个准备好工作的微服务,因此它将自己注册到Eureka服务器,例如某个应用程序的API,或者某个应用程序,它会转到服务器并询问指向特定微服务的方向.

  • Eureka实例:微服务的单个实例(您可以在负载增加时添加更多相同微服务的实例,即水平扩展).

  • Eureka服务:看起来当您将微服务注册为Eureka客户端时,您将获得通过ID注册的Eureka服务.

  • Eureka Server:微服务可以自行注册的服务器,以便其他人可以发现它们.


关于您添加的更新:

Eureka Instance不应与Eureka Service混淆.Eureka 服务是指注册到Eureka Server 的微服务实例组,它们提供相同的服务.

关于那个@EnableEurekaClient注释,它告诉以下框架:你好Spring,我是微服务X的一个实例,所以请注册我到Eureka Server(带eureka.instance.*属性),我也想发现其他服务,所以创建必要的我发现客户端bean(带eureka.client.*属性).

总之,这个名为@EnableEureka Client的注释可以完成这两个任务,也许就是混乱的来源.但实例和客户确实是不同的概念,即使它们在文章中可以互换使用.

  • 我完全同意埃萨拉的观点。最令人困惑的部分是因为有两种场景,单个微服务可以在 Eureka Server 中注册自己的实例(顺便说一下,这也是一个微服务..)以供其他人(客户端)访问,第二种场景是微服务想要的地方与另一个微服务进行通信,这基本上既可以被其他人访问,又可以充当客户端(使用通过 Eureka Server 发现的另一个微服务)。 (2认同)

小智 6

在此输入图像描述

我认为他们看起来像这张照片.

  1. Eureka客户端注册到Eureka服务器.
  2. 因为Eureka Instance注册到Eureka Server,所以它是一个客户端.
  3. 因为Eureka服务为其他人提供api,所以它可以被其他人发现,所以它是一个实例.