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