良许Linux教程网 干货合集 讲解一下Mongodb复制集

讲解一下Mongodb复制集

Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。

image-20220219151202283

复制集的概念

复制集(也叫副本集 Replica Set)就是有自动故障恢复功能的主从集群。

传统的主从结构和复制集最为明显的区别是复制集没有固定的“主节点”:整个节点会选举出一个“主节点”,当其不能工作时则变更到其它节点。复制集总会有一个活跃节点(primary)和一个或多个备份的节点(secondary)

对于MongoDB在数据容灾上,推荐的模式是使用副本集模式,但传统主从结构与复制集相较也有的一些“用武之处”:

“复制集中参与选举的数据节点只能有7个”(MongoDB 2.6版本)

虽然可以修改复制节点属性的方法,能将复制集节点增加到12个,但剩余5个节点都不能提供服务,只能做为数据冗余。所以某个生产环境需要从节点的数量超过11个时,我们就可使用传统的主从结构,因为主从结构的从节点数量不受限制。

当复制集支持可提供服务的数据节点数超过11个时,那么官方建议立即“启用”主从结构。**但在**MongoDB3.0版本以上支持的副本数已经超过50个。

复制集的特点

复制集的特点主要有以下四点:

  • 主是唯一的,但不是固定的。
  • 由大多数据原则保证数据的一致性
  • 从库无法写入(默认情况下,不使用驱动连接时,也是不能查询的)
  • 相对于传统的主从结构,复制集可以自动容灾。

复制集成员分类

任何时间活跃节点(也即主节点)只有一个,其它都为备份节点,指定的活跃节点可随时间而变化。有几种不同类型的节点存在于副本集中:

  • Standard(标准)

这种是常规节点,它存储一份完整的数据副本,参与投票选举,有可能成为活跃节点

  • Passive(被动)

存储完整的数据副本,参与投票,不能成为活跃节点。

  • Arbiter(投票)

仲裁节点只参与投票,不接收复制的数据,也不能成为活跃节点。

每个参与节点(非仲裁者)有个优先权,优先权(priority)为0则是被动的,不能成为活跃节点,优先权不为0的,按照由大到小选出活跃节点,优先值一样的则看谁的数据比较新。

按是否存放数据区分:

  • 数据节点:存放数据(实体物理文件*.ns *.0等)的节点,包括主节点和从节点
  • 投票节点:不存入数据,仅做选举和复制集节点

按功能区分:

  • 主节点:提供读写服务的活跃节点

  • 从节点:提供读服务的节点

    • 延时节点:延时复制节点(priority=0hidden=true slaveDelay=xx)
    • 隐藏节点:对应用程序不可见(priority=0 hidden=true)
    • “投票”节点:具有投票权的节点,不是arbiter(priority=0)的节点
  • 投票节点:Arbiter节点,无数据,仅做选举和充当复制集节点,也称为选举节点。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部