加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

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节点,以提升复制集可用性。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读