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