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

时间:2016-04-11 19:32:17

标签: spring spring-cloud netflix-eureka

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

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

  2. Eureka Client。与Eureka服务相同???

  3. Eureka Server。据我所知,它是我们可以检查,发现和管理我们构建的一系列微服务的服务器,通常在localhost:8761 <上运行/ p>

  4. Eureka Instance。我对它所引用的内容感到困惑,与Eureka客户端一样?

  5. 同样在本文中,它在配置中提到eureka.client,在Netflix API中提到EurekaClient,它们是指同一个东西吗?

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

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

    在文章中说:

      

    @EnableEurekaClient使应用成为Eureka&#34;实例&#34; (即   它注册了自己)和一个&#34;客户&#34; (即它可以查询注册表   找到其他服务)。

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

5 个答案:

答案 0 :(得分:26)

解释

Eureka Server

  

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

尤里卡服务

  

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

Eureka Instance

  

任何向Eureka Server注册的应用程序   被他人发现

Eureka客户

  

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

问题

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

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

Eureka客户端是否必须成为Eureka实例?

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

答案 1 :(得分:21)

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

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

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

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

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

关于您添加的更新:

Eureka Instance 不应与Eureka Service 混淆。 Eureka 服务是指向Eureka Server注册的提供相同服务的微服务实例组。

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

总之,这个名为@EnableEureka 客户端的注释可以完成这两件事,也许这就是混乱的来源。但 Instance Client 确实是不同的概念,即使它们在本文中有些可互换使用。

答案 2 :(得分:4)

enter image description here

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

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

答案 3 :(得分:0)

让我们举个例子。

Spring-cloud-netflix-turbine使用Eureka汇总各个微服务的指标。它需要知道云中任何时候运行的每个微服务实例的地址。实例数可以上下变化。

Eureka Server: Turbine查询Eureka服务器以获取对注册表的访问权限。使用注册表,它决定了所有参与的微服务,它们的终点以及更多。

尤里卡服务 Euerka服务器向涡轮机(参与者微服务列表)提供的信息就是服务。服务器可以提供多种服务。

Eureka Instance 所有希望聚合指标的微服务都是Eureka实例。实例不仅可以查询注册表,还可以注册,取消注册,提供听力节拍以保持注册等。

Eureka客户 Turbine是客户。只有查询注册表才能确定正在运行的微服务实例。

答案 4 :(得分:0)

来自官方documentation

Eureka带有两个组件-Eureka Client和Eureka Server。您使用Eureka的架构通常会有两个应用程序

  1. 使用Eureka客户程序向 应用服务。
  2. 应用服务,从应用客户端接收请求 并发回响应。

设置涉及以下内容

  1. Eureka服务器-这将记录所有已注册的服务。
  2. 应用程序客户端的Eureka客户端
  3. Eureka应用程序服务客户端

Eureka实例表示Application客户端的单个节点。

enter image description here