架构

MongoDB高可用高性能

云产品架构

notion image

单节点

  • 单节点架构仅提供一个StandAlone节点,用于读写数据。
  • 单节点架构以较低的价格享受云数据库MongoDB提供的运维支持和内核优化服务,您可以根据各类业务场景的差异选择对应的规格配置,降低成本支出。更多规格信息,请参见单节点实例规格表
notion image

副本集

notion image
副本集实例能够提供高可用的 MongoDB 服务,副本集由 1 个主节点(Primary Node)、1 个从节点(Secondary Node)和 1 个隐藏节点(Hidden Node)组成。其中:
  • 主节点:可提供读写功能,每个副本集实例中只能有 1 个主节点。集群状态正常时,来自客户端的所有数据都会写入主节点。
  • 从节点:可保障高可用,并通过操作日志 oplog(operations log)同步主节点的数据。可在主节点发生故障时通过选举成为新的主节点。
  • 隐藏节点:仅用于保障高可用,对用户不可见,可通过 oplog 同步主节点的数据,并能够在从节点发生故障时接替该故障节点成为新的从节点,来保障服务高可用。
您可以通过火山引擎控制台快速创建三节点副本集实例并进行可视化的实例管理。副本集实例支持灾备切换、故障迁移等高级功能,切换和迁移过程业务无感知。
还可以有只读节点

分片集群

notion image
分片集群实例能够提供可横向扩展的 MongoDB 服务。分片集群通过将大型集合自动分割到不同节点,来满足大规模高性能场景下的容量和性能需求。分片过程对前端应用无感知。分片集群主要由元数据服务器(ConfigServer)、分片代理(Mongos)以及分片(Shard)组成,其中:
  • 分片:负责存储分片集群实例中的数据库数据,每个 Shard 默认使用 3 节点副本集(即 1 个 Shard 中默认包含 1 个主节点、1 个从节点和 1 个隐藏节点)。您可以在创建实例时,通过增加多个 Shard 数据分片来横向扩展集群数据存储和读写并发能力。
  • 分片代理:分片集群实例中数据库请求的入口,所有的请求都通过分片代理节点(Mongos Node)进行协调,Mongos 本身就是一个请求分发中心,负责把对应的数据请求转发到对应的 Shard 服务器上。在生产环境中,建议使用多个分片代理节点作为请求入口,来实现负载均衡,以及防止其中一个故障导致所有的请求都无法操作。
  • 元数据服务器:存储分片集群实例中所有的数据库元信息(如路由、分片等)的配置。路由节点第一次启动或重启时就会从配置节点加载配置信息。配置节点信息变化会通知到所有路由节点更新状态,以保证配置节点就能继续准确路由。每个 ConfigServer 默认使用 3 节点副本集(即 1 个 ConfigServer 中默认包含 1 个主节点、1 个从节点和 1 个隐藏节点)。
您可以在创建 MongoDB 实例时,根据自身业务数据情况,选择分片代理节点和数据分片的个数与规格配置。
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP