云数据库 MongoDB 副本集架构通过部署多种类别的节点,以达到高可用和读写分离的目的。每个副本集包含一个主节点(Primary 节点)、一个或多个从节点(Secondary 节点)和一个隐藏节点(Hidden 节点)。
分片集群(Sharded Cluster)是在副本集的基础上,通过多组副本集的集合,实现数据的横向扩展,即每个分片就是一个副本集,通过扩展分片数量来实现数据的横向扩展。
各节点的说明如下:
节点 | 功能 | 说明 |
主节点 (Primary 节点) | 负责执行和响应数据读写请求。 | 每个副本集实例中只能有一个主节点。 |
从节点 (Secondary 节点) | 通过定期轮询 Primary 节点的 oplog(操作日志)复制 Primary 节点的数据,保证数据与 Primary 节点一致。当主节点故障时,系统会投票选出从节点成为新的主节点,保障高可用。 | 客户端连接从节点时,只能读取数据不能写入数据。 从节点支持扩展,具体信息,请参见 新增从节点。 从节点支持提升为主节点,具体操作,请参见 副本节点提升主节点。 |
隐藏节点 (Hidden 节点) | 新购实例默认会指定一个从节点为隐藏节点,作为不可见的副本节点来备份数据。从节点故障时,可将其与该故障从节点切换成为新的从节点,以实现高可用。 | 一个副本集实例中只能有一个隐藏节点。 已设置隐藏节点的从节点,不支持删除操作。 隐藏节点不在“主节点的备用列表”中,不会被选举为主节点,但会参与投票选举主节点。 |
只读节点 (ReadOnly 节点) | 开启副本只读功能,系统会将一个或多个从节点设置为只读节点。只读节点主要适用于数据量极大的读请求场景,其通过操作日志(oplog)从主节点或从节点同步数据,系统将读请求自动路由至只读节点,以减轻主节点访问压力。 | 只读节点不参与投票选举主节点,不会被选举为主节点。 一个副本集实例可以有多个只读节点。具体信息,请参见 新增只读节点。 |