mongodb的复制原理是什么?

TheDisguiser 2020-06-27 14:16:42 java常见问答 13184

小伙伴们知道mongodb的复制原理是什么吗?在mongodb中,复制集是它的绝对核心之一,今天我们就来看看它的复制集原理是什么吧。

一、复制集的概念

MongoDB复制集的主要意义就在于实现服务的高可用。它的实现依赖于两个方面的功能:

1)、在数据写入时将数据迅速复制到另一个独立节点上

2)、在接收写入的节点发生故障时自动选举出一个新的替代节点。

二、复制集的作用

1)、数据分发:把数据从一个区域复制到另一个区域

2)、读写分离:读写时折分到不同的节点

3)、异地灾备:在中心节点故障时自动转移到灾备节点

三、复制集结构

1)、一定是由三个及以上具有投票权的节点构成

2)、一定有个主节点(PRIMARY):用以接受数据写入及进行投票

3)、一定有两个及以上从节点(SECONDARY):用以复制主节点上新数据及进行投票

四、如何复制数据?

-在主节点产生数据时,向oplog数据集写入变动记录

-从节点检测主节点oplog数据集,有变动时,读取变动到从节点,然后在从节点复现变动的所有操作。

mongodb的复制原理

五、通过选举完成数据恢复

-具有投票权的节点两两之间会发送心跳信息,2秒一次

-5次心跳未收到时,认为节点失联

-如若失效为主节点,则从节点会选举出新的主节点

-如若失效为从节点,则不会发起选举

-选举都是基于RAFT一致性算法实现的,只有在大多数投票节点存活的时候,才会发起选举

-一个集群至多能有50个节点,但只会有7个有投票权的节点

mongodb的复制原理

六、复制节点常见选项

-投票权:拥有此参数就可以参与投票

-优先级:等级越高,成为主节点可能性越高。为0时,便永远不会成为主节点。

-隐藏:应用是不能访问的,但可以用来复制数据,也可以参与投票,但它的优先级必须为0,即永远不能够成为主节点

-延迟:参数单位为秒,控制从主节点复制数据的时间延迟,不然为即时复制。把从节点更改较高延迟,就可以在主节点数据删除或更改时,拥有回退数据的机会。

mongodb的复制原理

以上就是关于mongodb复制原理的所有内容,如果还需了解更多相关java架构师内容,请记得关注我们的网站。

推荐阅读:

mongodb教程,mongodb特性及结构详解

mongodb面试题一般有哪些?java基础知识面试题 ·

mongodb下载,mongodb安装详细教程