MongoDB 复制集特点
!> 复制集中必须有一个主节点
- 主节点主要负责写入数据和读取
- 复制集中除了主节点以外的节点我们称之为
副节点
: - 副节点默认情况下只能读取数据, 不能写入数据
- 副节点主要负责从主节点不断复制数据
复制集中所有的节点都会不断的相互发送心跳请求:
- 心跳请求的目的是相互检查节点的健康程度(是否发生故障)
- 默认情况下每隔
2
秒发送一次心跳请求 - 默认情况下如果
10
秒没有收到某一个节点心跳请求, 系统就会认定为超时
复制集中节点的个数是有限制的:
- 每个复制集中最多只能有
50
个节点 - 由于节点会发送心跳请求(消耗性能), 所以并不是节点越多越好
复制集选举
复制集最大的特点之一就是高可用性:
- 但是在复制集中只有一个主节点, 只有主节点可以读写
- 那么如果主节点宕机了, 也就意味着用户只能读取数据, 不能写入数据了
复制集中的主节点是通过选举出来的, 也就是一旦当前主节点宕机了:
- MongoDB 会通过自动选举的方式, 将其它的副节点设置为主节点
正式因为复制集的这个特点, 大大的保证了数据库的高可用性。