- 小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
复制集产生背景
单机优点
- 首先,单点模式部署方便,单点模式也很节省资源
问题
- 硬盘报警了,原因是存储空间满了,怎么办?
- 网络通信发生故障 我们怎么办?
- 进行数据备份时,为了保证实时性 怎么办?
复制集
- 和redis集群类似,主从集合称之为复制集
- 复制集是由一组相同数据集的mongodb实例组成的集群
- 复制集大致分为两类节点 : 数据节点+投票节点
- 数据节点: 存储数据,可以充当主从节点
- 投票节点:负责选举,不存储数据,不能充当主从节点
- 主节点接收所有的写操作,一个复制集只能有一个主节点 。 其他都是从节点,从节点是负责读操作。将读平均分配到从节点上。实现负载均衡
实现主从数据一致性
- 数据写操作是会写入到主节点上。oplog记录写操作。然后所有的从节点会读取oplog记录的写操作进行复制操作。保证数据一致性
- 与mysql不同的是,mongdb的从节点是不予许写入数据的。强数据一致性
读写分离
- 在默认的情况下mongodb的读写操作发生在主节点上的。因为磁盘数据刷新的原因,有的时候数据还没有更新到从节点里。所以这里默认读操作也是从主节点开始的。我们可以根据配置修改读操作在从节点上进行