服务发现概述
Cloud Map是云服务统一的服务注册发现中心,主要是为解决业务依赖环境配置繁琐的难题,主要特性如下:
- 服务注册和发现: 支持一方/二方/三方服务和中间件统一注册和发现,可作为微服务注册发现中心。
- 业务故障隔离:无集中式的Cloud Map中心,不同业务如应用市场的Cloud Map故障不影响其他业务的正常运行。
- 服务路由:支持双云、多活、跨站点访问等路由策略。
- 服务间调用关系正向设计和治理:在Cloud Map IaC中对服务间关系正向定义,运行态中Cloud Map会记录服务间的依赖关系。
- 微服务配置中心:支持作为CSE微服务的配置中心,用于下发CSE动态配置。
Cloud Map根据服务注册和发现方式不同,把管理的服务资源分为三种:微服务、中间件、接入地址,具体介绍如表1所示。
服务形态 |
描述 |
---|---|
微服务 |
微服务之间通过微服务框架点对点通信,微服务提供方(Provider)实例节点把自己的IP和端口注册到Cloud Map,并通过心跳的方式维持注册。调用方(Consumer)实例查询Provider的所有实例列表,实现点对点调用。微服务属于一个服务,一个微服务可能有多个集群。 |
中间件 |
中间件对应一个中间件集群,Cloud Map里记录连接这个中间件集群,中间件SDK所有需要的配置,包括地址、秘钥,密码信息等。一个服务可能会申请多个中间件集群 。 |
接入地址(URL) |
业务之间调用都是通过一个地址进行访问,对于内部服务,URL地址挂在提供方服务下面,由提供方提供。对于公有云、以及外部的服务地址,挂在使用方服务下面,由使用方自己维护。一个服务可能会开放多个接入地址,也会依赖多个接入地址。 |
用户自身云服务业务依赖的服务,根据不同的提供方和服务形态定义为以下四种:
- 一方服务:用户自身云服务提供的服务,包括P层/S层服务。
- 二方服务:华为云提供的I层/P层/S层服务。
- 三方服务:第三方厂商提供的服务。
- 中间件:指业务服务实现自身功能需要用到的技术组件,随业务服务独立部署和运维。
四种服务在Cloud Map中注册和发现的方式如表2所示。
服务分类 |
场景 |
注册 |
发现 |
---|---|---|---|
一方服务 |
服务之间 |
服务提供方通过IaC注册地址 |
通过Cloud Map SDK查询 |
服务内部微服务之间 |
通过Cloud Map SDK注册机器IP,并维持心跳 |
通过Cloud Map SDK发现 |
|
二方服务 |
数据库 |
通过IaC申请数据库,数据库管理台自动注册 |
通过中间件SDK访问 |
接口类型服务 |
使用方通过IaC注册地址 |
通过Cloud Map SDK发现 |
|
三方服务 |
外部地址 |
使用方通过IaC注册地址 |
通过Cloud Map SDK发现 |
中间件 |
中间件 |
通过IaC申请中间件集群,中间件管理台自动注册 |
通过中间件SDK访问 |
- 一方服务由服务提供方通过IaC注册到Cloud Map。
- 业务自己依赖的二方、三方服务通过IaC注册到Cloud Map。
- 业务在申请中间件集群的时候,中间件管理台会把连接中间件集群的信息注册到Cloud Map。
- 业务可以通过Cloud Map发现依赖的一方/二方/三方服务和中间件信息。
- Cloud Map作为微服务的注册中心,业务自身微服务通过Cloud Map相互注册发现。并且可以作为CSE的配置中心。
使用限制
- 语言限制:当前仅支持JAVA语言的SDK。
- 微服务开发框架限制:当前仅支持CSE\Spring Cloud微服务框架。
- 中间件接入限制:当前仅支持WiseDBA管理台纳管的数据库。
- 功能限制:不支持替换业务自己的ZK\ETCD等配置中心。