当前位置: 首页 > news >正文

深入探索MongoDB集群模式:从高可用复制集

MongoDB复制集概述

MongoDB复制集主要用于实现服务的高可用性,与Redis中的哨兵模式相似。它的核心作用是数据的备份和故障转移。

复制集的主要功能

  1. 数据复制:数据写入主节点(Primary)时,自动复制到一个或多个副本节点(Secondary)。
  2. 故障恢复:主节点失效时,自动从副本节点中选举出新的主节点。

复制集的附加作用

  • 数据分发:将数据从一个区域复制到另一个区域,降低读取延迟。
  • 读写分离:将不同类型的负载分布在不同节点上。
  • 异地容灾:在数据中心发生故障时快速切换到异地节点。

典型复制集结构

  • 一般由三个或更多节点组成,每个节点都具有投票权。
  • 结构包括一个主节点和两个或更多的副本节点。

数据复制机制

  • 当主节点接收到修改操作(如插入、更新或删除)时,这些更改会被记录在操作日志(oplog)中。
  • 副本节点不断从主节点的oplog中获取更新,并在本地回放这些操作,以保持与主节点数据的一致性。

故障恢复与选举

  • 节点间定期发送心跳检测,5次未收到心跳判定节点失联。
  • 主节点失联导致副本节点发起选举,选出新的主节点。
  • 选举基于RAFT算法,要求大多数投票节点存活。
  • 复制集最多包含50个节点,但只有最多7个节点具有投票权。

影响选举的因素

  • 集群中大多数节点必须存活。
  • 被选为主节点的节点需满足:
    1. 能与大多数节点建立连接。
    2. 拥有较新的oplog。
    3. 有较高的优先级(如果配置了的话)。

复制集节点选配项

  • 投票权(v参数):决定是否参与选举。
  • 优先级(priority参数):决定成为主节点的优先级。
  • 隐藏节点(hidden参数):复制数据但对应用不可见,优先级为0。
  • 延迟复制(slaveDelay参数):复制旧数据,保持时间差。
  • 从节点索引:控制从节点是否建立索引。

复制集注意事项

  • 硬件:所有节点硬件配置应一致,确保独立性以防同时故障。
  • 软件:所有节点应运行相同版本的软件以避免兼容性问题。
  • 性能:增加节点并不会提高写入性能。

复制集搭建步骤

  1. 创建数据目录:例如,在Linux系统上,使用mkdir -p /data/db{1,2,3}
  2. 准备配置文件:每个数据库应有不同的端口、数据目录和日志文件路径。

分别启动

mongod -f /data/db1/mongod.conf

mongod -f /data/db2/mongod.conf

mongod -f /data/db3/mongod.conf

相关文章:

深入探索MongoDB集群模式:从高可用复制集

MongoDB复制集概述 MongoDB复制集主要用于实现服务的高可用性,与Redis中的哨兵模式相似。它的核心作用是数据的备份和故障转移。 复制集的主要功能 数据复制:数据写入主节点(Primary)时,自动复制到一个或多个副本节…...

gem5学习(8):创建一个简单的缓存对象--Creating a simple cache object

目录 一、SimpleCache SimObject 二、Implementing the SimpleCache 1、getSlavePort() 2、handleRequest() 3、AccessEvent() 4、accessTiming() (1)缓存命中:sendResponse() (2)缓存未命中: 三、…...

【PTA-C语言】实验七-函数与指针I

如果代码存在问题,麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 目录——实验七-函数与指针I 6-1 弹球距离(分数 10)6-2 使用函数输出一个整数的逆序数(分数 10)6-3 使用函数求最大公约数(分数 10)6-4…...

C# 让数据保留小数后两位,不足的补充0

在C#中,可以使用Math.Floor、Math.Ceiling或者Math.Round方法结合字符串格式化来实现小数点后两位的保留,并在不足的情况下补充0。 以下是一个例子: double value 1.2345; string formattedValue value.ToString("0.00"); // 输…...

RK3568驱动指南|第九篇 设备模型-第92章 引用计数器实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…...

苹果电脑Dock栏优化软件 mac功能亮点

hyperdock mac是一款Dock优化软件,hyperdock支持使用窗口自动排列功能,您可以直接通过将窗口拖拉至屏幕上方来快速最大化至全屏,又或者拖动到左右来进行左分屏和右分屏。而且Dock优化软件还有一个特色便是对Dock的强大管理哪里能力&#xff0…...

【UE5蓝图】读取本地json文件修改窗口大小

效果 插件 蓝图 1.判断文件存在 2.1文件不存在,生成文件 {"ResolutionX":540, "ResolutionY":960} 2.2文件存在,直接读取 3.设置窗口大小 遇到的坑 1.分辨率太大,导致效果不理想,建议先往小填写。 2.选对…...

ACM32F403/F433 12 位多通道国产芯片,支持 MPU 存储保护功能,应用于工业控制,智能家居等产品中

ACM32F403/F433 芯片的内核基于 ARMv8-M 架构,支持 Cortex-M33 和 Cortex-M4F 指令集。芯片内核 支持一整套DSP指令用于数字信号处理,支持单精度FPU处理浮点数据,同时还支持Memory Protection Unit (MPU)用于提升应用的…...

2024最新前端React面试题:JSX是什么,它和JS有什么区别

JSX是什么,它和JS有什么区别 回答思路:1.编写方式--->2.分别是什么?--->3.分别是怎么编译的?1.编写方式2.分别是什么?3.分别是怎么编译的? 回答思路:1.编写方式—>2.分别是什么&#x…...

3d导入模型怎样显示原本材质---模大狮模型网

要在导入3D模型时保留原本的材质,您可以尝试以下方法: 导入前检查文件格式:确保您所使用的3D软件支持导入模型的文件格式。不同的软件对文件格式的支持有所差异,选择正确的文件格式可以更好地保留原始材质。 使用正确的材质库&am…...

web前端开发网页制作html/css结课作业

效果图展示: 注意事项: 引用JQuery文件地址和图片地址要更换一下。 百度网盘链接: http://链接:https://pan.baidu.com/s/1wYkmLr7csjBwQY6GmlYm4Q?pwd4332 提取码:4332 html界面展示: main.css代码部…...

工业相机如何实现实时和本地Raw格式图像和Bitmap格式图像的保存和相互转换(C#代码,UI界面版)

工业相机如何实现实时和本地Raw图像和Bitmap图像的保存和相互转换(C#代码,UI界面版) 工业相机图像格式工业相机实现Raw图像和Bitmap图像的保存和转换的技术背景在相机SDK中获取图像转换图像的代码分析工业相机回调函数里保存Bitmap图像数据工…...

C++初阶------------------入门C++

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…...

深度学习核心技术与实践之自然语言处理篇

非书中全部内容,只是写了些自认为有收获的部分。 自然语言处理简介 NLP的难点 (1)语言有很多复杂的情况,比如歧义、省略、指代、重复、更正、倒序、反语等 (2)歧义至少有如下几种: …...

AI-ChatGPTCopilot

ChatGPT chatGPT免费网站列表:GitHub - LiLittleCat/awesome-free-chatgpt: 🆓免费的 ChatGPT 镜像网站列表,持续更新。List of free ChatGPT mirror sites, continuously updated. Copilot 智能生成代码工具 安装步骤 - 登录 github&am…...

网络安全-真实ip获取伪造与隐藏挖掘

目录 真实ip获取应用层网络层网络连接TOAproxy protocol ip伪造应用层网络层TOA攻击proxy protocol 隐藏代理 挖掘代理多地ping历史DNS解析记录国外主机解析域名网站RSS订阅网络空间搜索引擎 总结参考 本篇文章学习一下如何服务如何获取真实ip,隐藏自己的ip&#xf…...

CMake入门教程【核心篇】添加子目录(add_subdirectory)

文章目录 1.概述2.添加子目录3.指定二进制目录4.排除子目录5.使用别名6.传递变量7.检查子目录是否存在 1.概述 add_subdirectory是 CMake 中的一个命令,用于向当前项目添加一个子目录。它的语法如下: #mermaid-svg-9zKJ3AvoVRln9hon {font-family:"…...

Prototype原型模式(对象创建)

原型模式:Prototype 链接:原型模式实例代码 注解 模式定义 使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。 ——《设计模式》GoF 目的 在软件系统中,经常面临这“某些结构复杂的对象”的创建工作&am…...

[Redis实战]分布式锁

四、分布式锁 4.1 基本原理和实现方式对比 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行&#xf…...

SpingBoot的项目实战--模拟电商【2.登录】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringBoot电商项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.功能需求 二.代码编写 …...

http——https实现指南

第一部分:HTTPS安全证书简介 什么是HTTPS安全证书? 在网络通信中,HTTPS安全证书是一种由可信任的证书颁发机构(CA)签发的数字证书,用于保障网站与用户之间的数据传输安全。通过加密和身份验证&#xff0c…...

ROS仿真R2机器人之安装运行及MoveIt的介绍

R2(Robonaut 2)是NASA美国宇航局与GM通用联合推出的宇航人形机器人,能在国际空间站使用,可想而知其价格是非常昂贵,几百万美刀吧,还好NASA发布了一个R2机器人的Gazebo模型,使用模型就不需要花钱了,由于我们…...

【linux 多线程并发】线程属性设置与查看,绑定CPU,线程分离与可连接,避够多线程下的内存泄漏

线程属性设置 ​专栏内容: 参天引擎内核架构 本专栏一起来聊聊参天引擎内核架构,以及如何实现多机的数据库节点的多读多写,与传统主备,MPP的区别,技术难点的分析,数据元数据同步,多主节点的情况…...

70.乐理基础-打拍子-三连音

上一个内容:69.乐理基础-打拍子-大切分与变体-CSDN博客 62-66是总拍数为一拍的节奏型,一共有七个,68-69是两拍的节奏型。 三连音说明: 1.三连音的总拍数可以是一拍、两拍、四拍。。。。 2.打拍子比较难,或许需要用V字…...

100天精通Python(实用脚本篇)——第111天:批量将PDF转Word文档(附上脚本代码)

文章目录 专栏导读1. 将PDF转Word文档需求2. 模块安装3. 模块介绍4. 注意事项5. 完整代码实现6. 运行结果书籍推荐 专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教…...

如何在 NAS 上安装 ONLYOFFICE 文档?

文章作者:ajun 导览 ONLYOFFICE 文档 是一款开源办公套件,其是包含文本文档、电子表格、演示文稿、表单、PDF 查看器和转换工具的协作性编辑工具。它高度兼容微软 Office 格式,包括 .docx、.xlsx 、.pptx 、pdf等文件格式,并支持…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C) Baumer工业相机Baumer工业相机的图像剪切(ROI)功能的技术背景CameraExplorer如何使用图像剪切(ROI)功…...

从 WasmEdge 运行环境读写 Rust Wasm 应用的时序数据

WebAssembly (Wasm) 正在成为一个广受欢迎的编译目标,帮助开发者构建可迁移平台的应用。最近 Greptime 和 WasmEdge 协作,支持了在 WasmEdge 平台上的 Wasm 应用通过 MySQL 协议读写 GreptimeDB 中的时序数据。 什么是 WebAssembly WebAssembly 是一种…...

算法训练营Day34(贪心算法)

1005.K次取反后最大化的数组和 1005. K 次取反后最大化的数组和 - 力扣&#xff08;LeetCode&#xff09; 秒了 class Solution {public int largestSumAfterKNegations(int[] nums, int k) {Arrays.sort(nums);// -4 -3 -2 -1 5//-2 -2 0 2 5int last -1;for(int i 0;i<…...

uniapp:全局消息是推送,实现app在线更新,WebSocket,apk上传

全局消息是推送&#xff0c;实现app在线更新&#xff0c;WebSocket 1.在main.js中定义全局的WebSocket2.java后端建立和发送WebSocket3.通知所有用户更新 背景&#xff1a; 开发人员开发后app后打包成.apk文件&#xff0c;上传后通知厂区在线用户更新app。 那么没在线的怎么办&…...

济南做网站互联网公司有哪些/百度竞价关键词质量度怎么提升

带条件的文档的格式为&#xff1a;db.数据集.find({ " " : " " }) $gte&#xff1a;大于等于$gt&#xff1a;大于$lte&#xff1a;小于等于$lt&#xff1a;小于$eq&#xff1a;等于$ne&#xff1a;不等于 正则表达式 /k/&#xff1a;查找包含k的文档/^k/…...

武汉哪家推广公司靠谱/seo的优化技巧有哪些

(译者注&#xff1a;使用EF开发应用程序的一个难点就在于对其DbContext的生命周期管理&#xff0c;你的管理策略是否能很好的支持上层服务 使用独立事务&#xff0c;使用嵌套事务&#xff0c;并行执行&#xff0c;异步执行等需求&#xff1f; Mehdi El Gueddari对此做了深入研究…...

大型网站建设公司沈阳/网站优化费用报价明细

本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录&#xff1a;读书是读完这些文字还要好好用心去想想&#xff0c;写书也一样&#xff0c;做任何事也一样 图 2 第二章目录结构图 第 2 章 Spring Boot 配置 Spring Boot 配置&#xff0c;包括自…...

知道网站是wp程序做的如何仿站/淘宝怎么优化关键词步骤

最近在用RDA工具&#xff0c;在网上找资料的过程中发现介绍大多都是RDA 4.24的版本。但是我去MOS下载的时候&#xff0c;只能下载RDA8.05的版本了。 在RDA 4.24的版本中&#xff0c;在第一次运行的时候&#xff0c;需要设置很多收集项&#xff0c;但是在RDA8.0.5的版本中&#…...

株洲市住房和城乡建设局网站/深圳市网络seo推广平台

#function:将AC与GLPI数据库的MAC同步#exception.mac单独存放于GLPI数据库&#xff0c;为以后GLPI二次开发做准备,mac,user,model,approval#date: 2015.12.01邮件显示MAC属性信息&#xff0c;简化代码#date: 2015.12.02修改部分NULL问题&#xff0c;练习left join on 多表联合查…...

松岗专业做网站公司/郑州厉害的seo顾问公司

2019独角兽企业重金招聘Python工程师标准>>> 一. 写在前面的话 有人认为价格围绕价值上下波动&#xff0c;研究投资标的内在价值&#xff0c;于是就出现了基本面派&#xff1b; 有人为价格反映了一切&#xff0c;所有的信息&#xff08;包括基本面&#xff09;都反映…...