Meta服务Graph
本文介绍Meta服务的架构和功能。
Meta服务架构Graph
Meta服务是由nebula-metad进程提供的,用户可以根据场景配置nebula-metad进程数量:
- 测试环境中,用户可以在NebulaGraph集群中部署1个或3个nebula-metad进程。如果要部署3个,用户可以将它们部署在1台机器上,或者分别部署在不同的机器上。
- 生产环境中,建议在NebulaGraph集群中部署3个nebula-metad进程。请将这些进程部署在不同的机器上以保证高可用。
所有nebula-metad进程构成了基于Raft协议的集群,其中一个进程是leader,其他进程都是follower。
leader是由多数派选举出来,只有leader能够对客户端或其他组件提供服务,其他follower作为候补,如果leader出现故障,会在所有follower中选举出新的leader。
Note
leader和follower的数据通过Raft协议保持一致,因此leader故障和选举新leader不会导致数据不一致。更多关于Raft的介绍见附录。
Meta服务功能Graph
管理用户账号Graph
Meta服务中存储了用户的账号和权限信息,当客户端通过账号发送请求给Meta服务,Meta服务会检查账号信息,以及该账号是否有对应的请求权限。
更多NebulaGraph的访问控制说明,请参见Graph。
管理分片Graph
Meta服务负责存储和管理分片的位置信息,并且保证分片的负载均衡。
管理图空间Graph
NebulaGraph支持多个图空间,不同图空间内的数据是安全隔离的。Meta服务存储所有图空间的元数据(非完整数据),并跟踪数据的变更,例如增加或删除图空间。
管理Schema信息Graph
NebulaGraph是强类型图数据库,它的Schema包括标签、边类型、标签属性和边类型属性。
Meta服务中存储了Schema信息,同时还负责Schema的添加、修改和删除,并记录它们的版本。
更多NebulaGraph的Schema信息,请参见Graph。
管理基于TTL的数据回收Graph
Meta服务提供基于TTL(time to live)的自动数据回收和空间回收。
管理作业Graph
Meta服务中的作业管理模块负责作业的创建、排队、查询和删除。
最后更新: 2021年5月14日