购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.1 服务发现简介

通过前文的讲解,我们知道硬编码提供者地址的方式有不少问题。要想解决这些问题,服务消费者需要一个强大的服务发现机制,服务消费者使用这种机制获取服务提供者的网络信息。不仅如此,即使服务提供者的信息发生变化,服务消费者也无须修改配置文件。

服务发现组件提供这种能力。在微服务架构中,服务发现组件是一个非常关键的组件。

使用服务发现组件后的架构图,如图4-1所示。

服务提供者、服务消费者、服务发现组件这三者之间的关系大致如下:

●各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息。

●服务消费者可从服务发现组件查询服务提供者的网络地址,并使用该地址调用服务提供者的接口。

●各个微服务与服务发现组件使用一定机制(例如心跳)通信。服务发现组件若长时间无法与某微服务实例通信,就会注销该实例。

img

图4-1 服务发现架构图

●微服务网络地址发生变更(例如实例增减或者IP端口发生变化等)时,会重新注册到服务发现组件。使用这种方式,服务消费者就无须人工修改提供者的网络地址了。

综上,服务发现组件应具备以下功能。

●服务注册表:是服务发现组件的核心,它用来记录各个微服务的信息,例如微服务的名称、IP、端口等。服务注册表提供查询API和管理API,查询API用于查询可用的微服务实例,管理API用于服务的注册和注销。

●服务注册与服务发现:服务注册是指微服务在启动时,将自己的信息注册到服务发现组件上的过程。服务发现是指查询可用微服务列表及其网络地址的机制。

●服务检查:服务发现组件使用一定机制定时检测已注册的服务,如发现某实例长时间无法访问,就会从服务注册表中移除该实例。

综上,使用服务发现的好处是显而易见的。Spring Cloud提供了多种服务发现组件的支持,例如Eureka、Consul和ZooKeeper等。本书将以Eureka为例,为大家详细讲解服务注册与发现。

img

●目前市面上的书籍中所提到的服务注册、服务发现或注册中心等名词,多数场景下都可理解为服务发现组件。

●服务发现的方式可细分为服务器端发现和客户端发现,由于原理相通,本书不再赘述。 SHlPREETdctK60M9ygoYXEJ+wQI3uCOY88bnQBY+UBrS7Xb7DotytHmnWIWGQTsr

点击中间区域
呼出菜单
上一章
目录
下一章
×