我正在通过阅读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 回答
我会说这些术语有点含糊不清,这就是我认为它们在文章中的含义:
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的注释做了两件事,也许这就是混乱的来源 . 但实例和客户确实是不同的概念,即使它们在文章中可以互换使用 .
定义
Eureka Server
Eureka Service
Eureka Instance
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客户端,因为它只发现其他服务 .我认为他们看起来像这张照片 .
Eureka客户端注册到Eureka服务器 .
因为Eureka Instance注册到Eureka Server,所以它是一个客户端 .
因为Eureka服务为其他人提供api,所以它可以被其他人发现,所以它是一个实例 .
我们来举个例子吧 .
Spring-cloud-netflix-turbine使用Eureka汇总各个微服务的指标 . 它需要知道 Cloud 中任何时间运行的每个微服务实例的地址 . 实例数可以上下变化 .
Eureka Server: Turbine查询Eureka服务器以获取对注册表的访问权限 . 使用注册表,它确定所有参与的微服务,他们的终点到达和更多 .
Eureka Service: Euerka服务器提供给涡轮机的信息(参与者微服务列表)就是服务 . 服务器可以提供多种服务 .
Eureka Instance 希望聚合其指标的所有微服务都是Eureka实例 . 实例不仅可以查询注册表,还可以注册,取消注册,提供听力节拍以保持注册等 .
Eureka Client Turbine是客户 . 它只有 queries 注册表来确定运行Micro Services的实例 .