微服务。 Service注册表和服务发现之间有什么区别

时间:2017-06-14 09:18:44

标签: microservices service-discovery

我是微服务的新手。我遇到了术语Service registryservice discovery

我所理解的是当新服务(或服务实例)出现时,它会将自己注册到“服务注册表”。还提到客户端可以联系服务注册表并获取该服务可用的IP端口列表。

在这种情况下,“服务发现”的作用是什么。

修改

接受的答案。此外,还发现了更多的理论细节https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture/

2 个答案:

答案 0 :(得分:4)

将服务注册到中心位置并使用服务注册表联系到目标服务的端到端流程是服务发现。

这非常类似于使用DNS查找站点的IP地址,然后使用IP地址访问该站点。

我是Kubernetes的用户,它也在类似的路线上讲话: https://kubernetes.io/docs/concepts/services-networking/service/#discovering-services

简而言之,服务发现不是具有特定角色的模块,而是从serviceA端口到端到端连接所涉及的步骤。

答案 1 :(得分:0)

t; dr:当客户端最初不知道他们想要什么服务时使用服务发现,因此,他们首先要求提供可用的服务列表。

免责声明:我怀疑该术语在不同的系统中以不同的方式使用。因此,以我在这里给出的教科书答案为准。


通常,服务注册系统遵循经纪人模式(或类似方式),分为两类:

  1. 白页代理:客户确切知道他们要寻找的服务并按名称要求

  2. 黄页代理:客户知道他们需要执行哪种服务,但他们不知道他们想要的确切服务

这两个系统都将客户端连接到服务,并且都涉及使用注册模式将自己输入注册表的服务。

但是,黄页系统需要进行初步的服务发现步骤。在服务发现模式中,

  • 客户首先要求经纪人提供服务的列表
  • 客户端从列表中选择服务。
  • 客户端从列表中请求与服务的连接。

Diagram from Gomaa

图像来源:Hasan Gomaa,软件建模与设计(Cambriduge大学出版社,2011年),第133页。 283。