首页 文章

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

提问于
浏览
23

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

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

  • Eureka Client. 与尤里卡服务相同???

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

  • Eureka Instance. 我提到的,与Eureka客户一样的东西?

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

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

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

在文章中它说:

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

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

4 回答

  • 24

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

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

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

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

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


    关于您添加的更新:

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

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

    总而言之,这个名为@EnableEureka _1338652的注释做了两件事,也许这就是混乱的来源 . 但实例和客户确实是不同的概念,即使它们在文章中可以互换使用 .

  • 19

    定义


    Eureka Server

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

    Eureka Service

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

    Eureka Instance

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

    Eureka Client

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

    问题


    How can an application be both a Eureka Instance and a Eureka Client?

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

    Does a Eureka Client have to be a Eureka Instance?

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

  • 4

    enter image description here

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

    • Eureka客户端注册到Eureka服务器 .

    • 因为Eureka Instance注册到Eureka Server,所以它是一个客户端 .

    • 因为Eureka服务为其他人提供api,所以它可以被其他人发现,所以它是一个实例 .

  • 0

    我们来举个例子吧 .

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

    Eureka Server: Turbine查询Eureka服务器以获取对注册表的访问权限 . 使用注册表,它确定所有参与的微服务,他们的终点到达和更多 .

    Eureka Service: Euerka服务器提供给涡轮机的信息(参与者微服务列表)就是服务 . 服务器可以提供多种服务 .

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

    Eureka Client Turbine是客户 . 它只有 queries 注册表来确定运行Micro Services的实例 .

相关问题