第五章 MongoDB副本集

本文详细介绍了MongoDB的副本集,包括副本集的作用、不同类型的节点(主节点、副节点、仲裁节点等)、Oplog日志、读写策略以及副本集回滚的处理。讨论了如何防止数据不一致和回滚限制,强调了写关注和读关注的重要性。
摘要由CSDN通过智能技术生成

第五章 MongoDB 副本集

  • 什么是 MongoDB 副本集
  • 副本集有哪几种类型
  • Oplong 日志有什么用
  • 副本集读写策略
  • 回滚
1. 什么是副本集

简单的来说,MongoDB 副本集就是一组 mongod 的进程。虽然单 mongod 进程就提供了数据的存储和读取,但是一旦该服务器发生网络异常或宕机,导致服务器不可用,严重影响系统功能。而提供一组 mongod 进程可以让故障自动转移,系统仍然被正常使用。

副本集就是多个 mongod 进程实例间保存则同一份数据。这就好比我有一个重要的 word 文档,需要拷贝几份放到目录里。如图1.1所示。
01
MongoDB 副本集架构图跟上图类似,数据节点都保存相同的数据集。MongoDB 副本集的最低配置是:一主二副、一主一副一仲裁。如图2所示。
在这里插入图片描述

2.副本集节点类型

主节点和副节点
主节点和副节点都属于数据节点,它们都可以存储数据。一个副本集只有一个主节点。接收到的数据默认写在主节点(可以配置读写策略,改变读写行为),然后通过数据同步把数据复制到其他的节点上。心跳检查来确保节点之间的状态是否正常。

仲裁节点(arbiter):
仲裁节点(arbiterOnly:true)不会存储数据并且不能成为主节点,参与投票,所以对服务器资源要求比较低。当受到资金限制时,可以考虑配置仲裁节点。仲裁节点的优先级priority 为0。

优先级为0的节点
优先级为0的节点不能成为主节点 也不能触发选举。但是它和副节点的功能基本一样,具备数据存储、投票、响应写确认操作。

优先级为0的节点可以作为一个备份成员,也可以确保确定的节点成为主节点。例如当一个机房部署一个主节点和副节点,另一个机房部署一个优先级为0的节点。由于这种设置,可以确保选举出来的节点一直在左边机房里。当机器部署在不同的硬件、地理位置时,可以这样考虑。
在这里插入图片描述

隐藏节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值