MongoDB复制集原理是啥?一文带你看懂
发布时间:2022-04-22 10:40:26 所属栏目:系统 来源:互联网
导读:这篇文章带大家深入了解MongoDB复制集原理,文本有详细的介绍以及示例,对于MongoDB复制集不是很清楚的朋友可以参考参考,接下来我们就一起来看看MongoDB复制集原理。 Primary选举 复制集通过replSetInitiate命令(或mongo shell的rs.initiate())进行初始化
这篇文章带大家深入了解MongoDB复制集原理,文本有详细的介绍以及示例,对于MongoDB复制集不是很清楚的朋友可以参考参考,接下来我们就一起来看看MongoDB复制集原理。 Primary选举 复制集通过replSetInitiate命令(或mongo shell的rs.initiate())进行初始化,初始化后各个成员间开始发送心跳消息,并发起Priamry选举操作,获得『大多数』成员投票支持的节点,会成为Primary,其余节点成为Secondary。 初始化复制集 config = { _id : "my_replica_set", members : [ {_id : 0, host : "rs1.example.net:27017"}, {_id : 1, host : "rs2.example.net:27017"}, {_id : 2, host : "rs3.example.net:27017"}, ] } rs.initiate(config) 特殊的Secondary 正常情况下,复制集的Seconary会参与Primary选举(自身也可能会被选为Primary),并从Primary同步最新写入的数据,以保证与Primary存储相同的数据。 Secondary可以提供读服务,增加Secondary节点可以提供复制集的读服务能力,同时提升复制集的可用性。另外,Mongodb支持对复制集的Secondary节点进行灵活的配置,以适应多种场景的需求。 Arbiter Arbiter节点只参与投票,不能被选为Primary,并且不从Primary同步数据。 比如你部署了一个2个节点的复制集,1个Primary,1个Secondary,任意节点宕机,复制集将不能提供服务了(无法选出Primary),这时可以给复制集添加一个Arbiter节点,即使有节点宕机,仍能选出Primary。 Arbiter本身不存储数据,是非常轻量级的服务,当复制集成员为偶数时,最好加入一个Arbiter节点,以提升复制集可用性。 (编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |