ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mongodb复制集概念及相关参数

2022-04-15 16:03:45  阅读:198  来源: 互联网

标签:优先级 选举 Mongodb 复制 参数 投票 数据 节点


一、复制集的作用

  (一)复制集的主要意义在于实现服务的高可用

  (二)他的视线依赖于两个方面的功能

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

  (2)再接受写入的节点发生故障时自动选举出一个新的替代节点

  (三)在实现高可用的同时,复制集实现了其他的几个附加作用

  (1)数据分发。将数据从一个区域复制到另一个区域,减少另一个区域的读延迟(相当于在其他区域创建了一个从节点,方便其他区域读)

  (2)读写分离。不同的类型的压力分别在不同的节点上执行

  (3)异地容灾。在数据中心故障时候快速切花到异地

二、典型复制集结构

  (一)一个主节点(promary):接受写入操作和选举时投票(一半以上)

  (二)两个(或多个)从节点(secondary):复制主节点上的新数据和选举时投票 (从节点只能读)

  (三)不推荐使用Arbiter(投票节点)。(很多时候会多出一个无数据节点作为投票节点。防止出现投票主机出现偶数的现象)推荐使用三数据节点

三、数据是如何复制

  (一)当一个修改操作,无论是插入、更新、删除。达到主节点时,他对数据的操作被记录下来(经过一些必要的转换),这些记录被称为oplog(在mongo中是一个集合)。

  (二)从节点通过在主节点上打开一个tailable游标不断获取新进入主节点的oplong。并在自己的数据上回放。以此保持跟主节点数据一致

四、通过选举完成故障恢复

  (一)具有投票权的节点之间两两互相发送心跳(默认每两秒发送一次)

  (二)当5次心跳未收到时判断为节点失联

  (三)如果失联的是主节点,从节点会发起选举,选出新的主节点

  (四)如果失联的从节点则不会产生新的选举

  (五)选举基于RAFT一致性算法实现,选举成功的必要条件是大多数投票节点存活

  (六)复制集中最多可以有50个节点但是具有选举全的节点最多有7个

五、影响选举的因素

  (一)整个集群必须有大多数节点存活

  (二)没选举的主节点的节点必须

  (1)能够与多数节点建立连接  

  (2)具有较新的oplog(数据比较多)

  (3)具有较高的优先级(如果有配置)

六、常见选项

  (一)复制集节点有以下常见的选项

  (1)是否具有投票权(v参数):有则参与投票。默认都具有

  (2)优先级(priority参数)优先级越高的节点越优先称为主节点。优先级为0的无法成为主节点

  (3)隐藏(hidden参数)复制数据,但是对应用不可见。隐藏节点可以具有投票权。但是优先级必须为0(可以作为备份数据,有时候不需要参数据的操作和业务程序的服务)

  (4)延迟(slaveDelay参数)复制N秒钟前的数据保持与主节点的时间差

标签:优先级,选举,Mongodb,复制,参数,投票,数据,节点
来源: https://www.cnblogs.com/zshBlos/p/16149528.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有