You need to enable JavaScript to run this app.
导航

什么是文档数据库 MongoDB 版

最近更新时间2024.03.19 11:26:54

首次发布时间2021.12.01 17:42:15

火山引擎文档数据库 MongoDB 版是一款完全兼容 MongoDB 协议,且具备高可用、高性能的在线云数据库服务。

产品介绍

文档数据库 MongoDB 版支持多种架构,能够满足业务灵活部署的需求。除副本集实例架构外,文档数据库 MongoDB 版还提供了分片集群架构,以满足海量数据业务场景,同时提供了灾备、备份及恢复、监控等全套解决方案;在互联网(游戏、电商、直播、资讯、社交)、新零售、在线教育、金融、物联网、政企等行业都有广泛的应用。

产品架构

文档数据库 MongoDB 版根据不同的架构将 MongoDB 实例分为副本集实例和分片集群实例。

副本集

副本集实例架构图
副本集实例能够提供高可用的 MongoDB 服务,副本集由 1 个主节点(Primary Node)、1 个从节点(Secondary Node)和 1 个隐藏节点(Hidden Node)组成。其中:

  • 主节点:可提供读写功能,每个副本集实例中只能有 1 个主节点。集群状态正常时,来自客户端的所有数据都会写入主节点。
  • 从节点:可保障高可用,并通过操作日志 oplog(operations log)同步主节点的数据。可在主节点发生故障时通过选举成为新的主节点。
  • 隐藏节点:仅用于保障高可用,对用户不可见,可通过 oplog 同步主节点的数据,并能够在从节点发生故障时接替该故障节点成为新的从节点,来保障服务高可用。

您可以通过火山引擎控制台快速创建三节点副本集实例并进行可视化的实例管理。副本集实例支持灾备切换、故障迁移等高级功能,切换和迁移过程业务无感知。

分片集群

说明

  • MongoDB 实例中各 Mongos 节点作用一样,为便于查看,仅将 Mongos Node 1 与 ConfigServer 和 Shard 节点的连接展示在下图中,其余所有 Mongos 节点的连接方式与 Mongos Node 1 的一样。
  • 分片集群中每个 Shard 分片和 ConfigServer 组件均默认使用了 3 节点副本集(即每个 Shard 分片或 ConfigServer 组件中均包含了 1 个主节点、1 个从节点和 1 个隐藏节点),为便于查看,图中统一使用 Replica Set 进行说明,关于 Replica Set 中各节点的关系,请参见副本集架构图

分片集群架构图

分片集群实例能够提供可横向扩展的 MongoDB 服务。分片集群通过将大型集合自动分割到不同节点,来满足大规模高性能场景下的容量和性能需求。分片过程对前端应用无感知。分片集群主要由元数据服务器(ConfigServer)、分片代理(Mongos)以及分片(Shard)组成,其中:

  • 分片:负责存储分片集群实例中的数据库数据,每个 Shard 默认使用 3 节点副本集(即 1 个 Shard 中默认包含 1 个主节点、1 个从节点和 1 个隐藏节点)。
    您可以在创建实例时,通过增加多个 Shard 数据分片来横向扩展集群数据存储和读写并发能力。
  • 分片代理:分片集群实例中数据库请求的入口,所有的请求都通过分片代理节点(Mongos Node)进行协调,Mongos 本身就是一个请求分发中心,负责把对应的数据请求转发到对应的 Shard 服务器上。
    在生产环境中,建议使用多个分片代理节点作为请求入口,来实现负载均衡,以及防止其中一个故障导致所有的请求都无法操作。
  • 元数据服务器:存储分片集群实例中所有的数据库元信息(如路由、分片等)的配置。路由节点第一次启动或重启时就会从配置节点加载配置信息。配置节点信息变化会通知到所有路由节点更新状态,以保证配置节点就能继续准确路由。每个 ConfigServer 默认使用 3 节点副本集(即 1 个 ConfigServer 中默认包含 1 个主节点、1 个从节点和 1 个隐藏节点)。

您可以在创建 MongoDB 实例时,根据自身业务数据情况,选择分片代理节点和数据分片的个数与规格配置。