服务发现组件
简介:
各微服务启动的时候,将自己的网络信息注册到服务发现组件中,服务发现组件会储存这些信息。服务消费者可以通过服务发现组件中查询服务提供者的网络地址,并使用该网络地址调用服务。各微服务与服务发现组件通过心跳机制通信,服务发现组件如长时间无法与某个服务实例通信,服务发现组件会注销该实例。
服务发现要解决的一个问题是:
服务提供者、服务消费者、服务发现组件三者关系:
- 各微服务启动的时候,将自己的网络信息注册到服务发现组件中,服务发现组件会储存这些信息。
- 服务消费者可以通过服务发现组件中查询服务提供者的网络地址,并使用该网络地址调用服务。
- 各微服务与服务发现组件通过心跳机制通信,服务发现组件如长时间无法与某个服务实例通信,服务发现组件会注销该实例。
在微服务架构中引入服务发现组件的好处:
- 服务消费者不用硬编码服务提供者地址,即使服务提供者信息发生变化,服务消费者也无需修改配置文件。
- 微服务网络地址发生变更(如,IP 、端口变化或增减实例)时,会重新注册到服务发现组件,无需人工修改服务提供者的 IP 或 端口。
服务发现组件应该具备的能力:
- 服务注册表:用于记录各微服务的网络信息(名称、IP、Port),并提供查询API 和管理 API,用于服务的注册与注销。
- 服务注册与服务发现:服务注册指服务启动的时候,将自己的信息注册到服务发现组件的过程。服务发现指查询可用服务列表及其网络地址的机制。
- 服务检查:服务发现组件使用一定的机制定时检测已经注册的服务,如发现实例长时间无法访问,会从服务注册表中将其移除。