服务注册发现
1. Dubbo 的注册中心
注册中心负责在 RPC 场景下保存服务器应用程序的信息。
服务器将接口信息注册并发送自己的地址到注册中心,客户端从注册中心读取并订阅需要调用的地址列表。整个结构如图所示
有关 Dubbo 服务发现的详细信息,请参阅Dubbo 官网概念介绍
2. 服务发现概念
在 Dubbo 生态系统中,服务发现主要有以下概念
应用(Application)
应用是一个 dubbo 服务进程,对应一个应用名称。
接口(服务)
接口是一个 RPC 接口类,例如 proto 定义的 Service,或者 Java Interface 类。一个 dubbo 进程可以包含多个服务/接口。
方法
方法定义在接口中,一个接口可以包含多个方法。
参数列表
参数列表定义在方法中。由于 Java 支持重载,一个方法可以包含多个参数列表。对于 Go 来说,这是一一对应的关系。
注册信息
在“接口级服务发现”场景下,注册信息主要包括应用名称、接口列表、元数据信息以及服务器的 IP 地址,以 URL 的形式存储在注册中心,供客户端在发起调用前查询。
在“应用级服务发现”场景下,注册信息只包含应用名称、应用名称到接口的映射关系等少量应用级信息,接口级信息作为元数据存储在元数据中心。
元数据
元数据指的是接口信息,例如接口名称、包含的方法、方法对应的参数、序列化方式、协议等信息。
注册中心
注册中心用于保存服务器的信息。
元数据中心
元数据中心用于保存服务器的元数据信息,在“应用级服务发现”场景下,作为“服务自省”阶段的依赖。
Dubbo-go 最先进的服务网格功能引入了以下概念
CPU 名称
主机名当前应用于在 k8s 上注册的服务名称。其他应用程序可以通过主机名访问此应用程序实例。
端点
端点包括实例的 IP 地址、端口。
集群
集群 ID 保存来自 {hostname, cluster_subset_name, port} 的数据
集群维护集群 ID 到其包含的所有端点的映射。
服务网格元数据
服务网格元数据是一个接口名称到主机名的映射,供客户端查询所需接口的主机名信息。
3. Dubbo-go 注册中心
Dubbo-go 支持的注册中心类型如下
注册中心 | 注册中心名称(用于配置) |
---|---|
Zookeeper | zookeeper |
Nacos | nacos |
Etcd | etcd |
Consul | consul |
相关阅读:[应用级服务发现解析]