在微服务架构中,服务与服务之间通过交互完成业务链路的构建,这种服务交互采用的是轻量级的RESTful风格API(应用程序接口)调用方式。但在执行服务调用之前,我们首先需要发现(Discovery)服务,即解决在分布式集群环境下如何找到合适服务实例的问题。服务发现和调用构成了微服务交互的基础,微服务架构下的服务发现和调用可以参考图2-1所示的整体流程,其中实线部分代表服务调用流程,而虚线部分则包含了服务的注册(Registration)和发现过程。
图2-1 服务发现和调用流程
在图2-1中存在三个微服务,即服务A、服务B和服务C,每个微服务都是多实例部署在集群环境中。显然,服务B和服务C对于服务A而言是服务的提供者,作为消费者的服务A需要通过负载均衡器分别找到服务B和服务C的实例并完成服务调用。另外,这三个微服务都需要注册到注册中心以便负载均衡器能够从注册中心获取各个服务的定义信息。本章将围绕基于注册中心的服务治理机制展开讨论,而负载均衡相关内容放在第4章中介绍。