云数据库MongoDB版自动搭建好副本集,您可以直接操作副本集中的主节点和从节点。容灾切换、故障迁移等高级功能为您整体打包好,实例使用过程中对您完全透明。

副本集架构

架构图
MongoDB副本集架构通过部署多种节点来达到高可用和读写分离的效果,每个副本集实例包含一个主节点(Primary节点)、一个或多个从节点(Secondary节点)、一个隐藏节点(Hidden节点)和可选的一个或多个只读节点(ReadOnly节点)。其中主节点、从节点和隐藏节点合起来统称为“主备节点”。各节点的说明如下:
节点 功能 说明
主节点(Primary节点) 负责执行和响应数据读写请求。 每个副本集实例中只能有一个主节点。
从节点(Secondary节点) 通过操作日志(oplog)同步主节点的数据,可在主节点故障时通过选举成为新的主节点,保障高可用。
  • 通过从节点的连接地址进行连接时,只能读取数据不能写入数据。
  • 从节点具有高可用保障,即某个从节点故障时,系统会自动将其与隐藏节点切换,若未自动切换,您可以自行切换,从节点的连接地址保持不变。
    说明 如何切换从节点和隐藏节点,请参见切换节点角色

    触发节点的角色切换后,会产生130秒内的连接闪断,建议您在业务低峰期操作或确保应用具备重连机制。

隐藏节点(Hidden节点) 通过操作日志(oplog)同步主节点的数据,可在从节点故障时接替该故障节点成为新的从节点,也可在只读节点故障时接替该故障节点成为新的只读节点,保障高可用。
  • 隐藏节点仅用作高可用,对客户端不可见。
  • 隐藏节点不在“主节点的备用列表”中,不会被选举为主节点,但会参与投票选举主节点。
  • 每个副本集实例中只能有一个隐藏节点。
只读节点(ReadOnly节点) 通过操作日志(oplog)从延迟最低的主节点或从节点同步数据,应用于有大量读请求的场景,以减轻主节点和从节点的访问压力。两个或以上只读节点可以使用ReadOnly Connection String URI连接实现读请求负载均衡。
说明 更多信息,请参见MongoDB只读节点简介
  • 只读节点具有高可用保障,即某个只读节点故障时,系统会自动将其与隐藏节点切换,若未自动切换,您可以自行切换,只读节点的连接地址保持不变。
    说明 如何切换只读节点和隐藏节点,请参见切换节点角色

    触发节点的角色切换后,会产生130秒内的连接闪断,建议您在业务低峰期操作或确保应用具备重连机制。

  • 只读节点具有独立的连接地址,适合独立系统直连访问,与已有主从节点的连接互不干扰。
  • 只读节点不在“主节点的备用列表”中,不会被选举为主节点,也不会参与投票选举主节点。

扩展副本集节点

云数据库MongoDB提供扩展节点功能,您可以按照业务需求增加从节点或只读节点的数量,详情请参见变更副本集实例配置
说明 每个副本集实例中仅包含一个隐藏节点,扩展节点时仅增加从节点或只读节点,不会增加隐藏节点。

例如:某个业务场景下对数据库有更高读取性能需求,如阅读类网站、订单查询系统等读多写少场景或有临时活动等突发业务需求,按需增加从节点或只读节点来弹性调整实例的读取性能。