跳到主要内容
版本:3.10.0

Meta 服务

本文介绍 Meta 服务的架构和功能。

Meta 服务架构​

The architecture of the Meta Service

Meta 服务是由 nebula-metad 进程提供的,用户可以根据场景配置 nebula-metad 进程数量:

  • 测试环境中,用户可以在 悦数图数据库 集群中部署 1 个或 3 个 nebula-metad 进程。如果要部署 3 个,用户可以将它们部署在 1 台机器上,或者分别部署在不同的机器上。
  • 生产环境中,建议在 悦数图数据库 集群中部署 3 个 nebula-metad 进程。请将这些进程部署在不同的机器上以保证高可用。

所有 nebula-metad 进程构成了基于 Raft 协议的集群,其中一个进程是 leader,其他进程都是 follower。

leader 是由多数派选举出来,只有 leader 能够对客户端或其他组件提供服务,其他 follower 作为候补,如果 leader 出现故障,会在所有 follower 中选举出新的 leader。

备注

leader 和 follower 的数据通过 Raft 协议保持一致,因此 leader 故障和选举新 leader 不会导致数据不一致。更多关于 Raft 的介绍见 Storage 服务。

Meta 服务功能​

管理用户账号​

Meta 服务中存储了用户的账号和权限信息,当客户端通过账号发送请求给 Meta 服务,Meta 服务会检查账号信息,以及该账号是否有对应的请求权限。

更多 悦数图数据库 的访问控制说明,请参见身份验证。

管理分片​

Meta 服务负责存储和管理分片的位置信息,并且保证分片的负载均衡。

管理图空间​

悦数图数据库 支持多个图空间,不同图空间内的数据是安全隔离的。Meta 服务存储所有图空间的元数据(非完整数据),并跟踪数据的变更,例如增加或删除图空间。

管理 Schema 信息​

悦数图数据库 是强类型图数据库,它的 Schema 包括 Tag、Edge type、Tag 属性和 Edge type 属性。

Meta 服务中存储了 Schema 信息,同时还负责 Schema 的添加、修改和删除,并记录它们的版本。

更多 悦数图数据库 的 Schema 信息,请参见数据模型。

管理 TTL 信息​

Meta 服务存储 TTL(Time To Live)定义信息,可以用于设置数据生命周期。数据过期后,会由 Storage 服务进行处理,具体过程参见 TTL。

管理作业​

Meta 服务中的作业管理模块负责作业的创建、排队、查询和删除。