小伙伴们知道mongodb的复制原理是什么吗?在mongodb中,复制集是它的绝对核心之一,今天我们就来看看它的复制集原理是什么吧。
一、复制集的概念
MongoDB复制集的主要意义就在于实现服务的高可用。它的实现依赖于两个方面的功能:
1)、在数据写入时将数据迅速复制到另一个独立节点上
2)、在接收写入的节点发生故障时自动选举出一个新的替代节点。
二、复制集的作用
1)、数据分发:把数据从一个区域复制到另一个区域
2)、读写分离:读写时折分到不同的节点
3)、异地灾备:在中心节点故障时自动转移到灾备节点
三、复制集结构
1)、一定是由三个及以上具有投票权的节点构成
2)、一定有个主节点(PRIMARY):用以接受数据写入及进行投票
3)、一定有两个及以上从节点(SECONDARY):用以复制主节点上新数据及进行投票
四、如何复制数据?
-在主节点产生数据时,向oplog数据集写入变动记录
-从节点检测主节点oplog数据集,有变动时,读取变动到从节点,然后在从节点复现变动的所有操作。
五、通过选举完成数据恢复
-具有投票权的节点两两之间会发送心跳信息,2秒一次
-5次心跳未收到时,认为节点失联
-如若失效为主节点,则从节点会选举出新的主节点
-如若失效为从节点,则不会发起选举
-选举都是基于RAFT一致性算法实现的,只有在大多数投票节点存活的时候,才会发起选举
-一个集群至多能有50个节点,但只会有7个有投票权的节点
六、复制节点常见选项
-投票权:拥有此参数就可以参与投票
-优先级:等级越高,成为主节点可能性越高。为0时,便永远不会成为主节点。
-隐藏:应用是不能访问的,但可以用来复制数据,也可以参与投票,但它的优先级必须为0,即永远不能够成为主节点
-延迟:参数单位为秒,控制从主节点复制数据的时间延迟,不然为即时复制。把从节点更改较高延迟,就可以在主节点数据删除或更改时,拥有回退数据的机会。
以上就是关于mongodb复制原理的所有内容,如果还需了解更多相关java架构师内容,请记得关注我们的网站。
推荐阅读: