Meta服务

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

Meta服务架构

The architecture of the Meta Service

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

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

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

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

说明:leader和follower的数据通过Raft协议保持一致,因此leader故障和选举新leader不会导致数据不一致。

Meta服务功能

管理用户账号

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

更多Nebula Graph的访问控制说明,请参见身份验证

管理分片

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

管理图空间

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

管理Schema信息

Nebula Graph是强类型图数据库,它的Schema包括标签、边类型、标签属性和边类型属性。

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

更多Nebula Graph的Schema信息,请参见数据模型

管理基于TTL的数据回收

Meta服务提供基于TTL(time to live)的自动数据回收和空间回收。

管理作业

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