上一篇:MongoDB(6)—索引
一、什么是副本集(Replica Sets)?
副本集可以简单理解为MongoDB种的一种mongod服务。类似于拥有故障自动恢复
功能的主从集群服务。
多台服务器对同一份数据进行异步同步,这样多台服务器上就拥有了该数据的副本,当主服务器宕机之后。在不需要用户干预的情况下自动切换到其他副本服务器作为主服务器,可以发防止数据得丢失,在一定程度上提高容错性。另外我们也可以利用副本服务器作为只读服务器,提高负载。
二、副本集和主从集群得区别?
二者之间最大得区别就在于: 主从集群和副本集最大的区别就是副本集没有没有固定的“主节点”
。整个集群会选出一个“主节点”
,当其挂掉后,表决节点(arbiter)又在剩下的从节点中选择其它节点作为“主节点”
,副本集总有一个活跃点(primary)
和一个或多个备份节点(secondary)
。
四、副本集中得三个角色?
1.主节点:
主节点主要用于用户写数据的操作。
2.从节点:
即副本节点
,主要用于用户读数据
3.仲裁节点:
仲裁节点不用于备份数据。它主要得作用就是选举。当主节点宕机不工作了之后,由仲裁节点来推举出哪个从节点升任为主节点。Mongodb的客户端只连接主从节点
,不连接仲裁节点
。
综上,一个副本集至少需要3个节点:主节点、从节点、仲裁节点。
四、副本集如何同步数据?
对于MongoDB中的数据的插入删除修改等写操作都会被主节点
写入到oplog
日志中,然后从节点
通过获取oplog
中的日志来操作自己所备份的数据副本,从而实现与主节点
上的数据保持一致。