Microservices 微服务:如何处理服务自注册?

Microservices 微服务:如何处理服务自注册?,microservices,service-discovery,Microservices,Service Discovery,我最近一直在做一个使用微服务架构的附带项目。这种架构的一个主要问题是,可以随时启动多个核心微服务,并且它们需要在运行时立即可用 所以我在这个网站上找到了一篇很好的快速文章 但这只是提出了一个问题,微服务如何在服务注册中心注册自己 这是否意味着每个微服务都知道服务注册表的位置? 如果不是,那么每个客户机是否也应该有某种服务发现方法,只查找service registry类型的服务 TL;博士 我想根本的问题是,实现服务注册的正确方法是什么 谢谢 这将取决于您用于服务注册的系统。对于服务自助注册

我最近一直在做一个使用微服务架构的附带项目。这种架构的一个主要问题是,可以随时启动多个核心微服务,并且它们需要在运行时立即可用

所以我在这个网站上找到了一篇很好的快速文章 但这只是提出了一个问题,微服务如何在服务注册中心注册自己

  • 这是否意味着每个微服务都知道服务注册表的位置? 如果不是,那么每个客户机是否也应该有某种服务发现方法,只查找service registry类型的服务
TL;博士

我想根本的问题是,实现服务注册的正确方法是什么


谢谢

这将取决于您用于服务注册的系统。对于服务自助注册,我建议领事可能是一个不错的选择。您将执行以下操作:

  • 在运行microservice的每台计算机上设置一个带有Concur客户端的Concur群集,如Concur文档所述
  • 在每个微服务中,在标准的Concur HTTP客户端端口(8500)上打开一个到本地主机上运行的Concur客户端的HTTP连接
  • 微服务将使用HTTP连接向本地领事进行自我注册
  • 微服务将使用对Concur的相同HTTP访问或使用其内置DNS服务器来发现其他服务的位置。显然,如果您的服务a依赖于服务B,而服务B也依赖于服务a,那么这里可能存在引导问题—在这种情况下,您需要实现一些等待和重试逻辑

  • 您可以使用Docker swarm或Kubernetes。