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

MongoDB多节点集群原理 -- 复制集

前言

MongoDB是有高可用的方案的,就是我们最熟悉的多节点部署,而在MongoDB中,MongoDB多节点集群的专业术语叫做复制集

目录

高可用的概念

MongoDB复制集常见的用途

MongoDB节点

MongoDB节点类型

MongoDB节点选举和投票

选举中<大多数>的概念

节点之间数据复制过程

故障恢复选举过程

选举的前提条件

选举过程

选举过程中避免出现票数相等的僵局方法


高可用的概念

通俗的来讲,高可用就是保证不让数据库有掉线的情况

        使用多个节点,当一个节点倒下,另外一个节点会自动的替代进行服务

        实现原理: 数据写入会使用复制集将数据复制到另外节点上,写节点故障时,自动选举一个新的替代节点

MongoDB复制集常见的用途

1、高可用

2、可以对数据跨区域复制,解决用户跨区域访问数据较慢的问题,比如,如果我们可以在国外进行数据分布,就大大加速了国外当地访问我们MongoDB的速度

3、复制多个节点,做读写分离操作,对节点进行减压

MongoDB节点

MongoDB节点类型

MongoDB节点分为主节点、从节点、投票节点

主节点: 一般负责MongoDB数据的修改操作

从节点: 一般负责MongoDB数据的读取操作

投票节点:就是专一为MongoDB选举投票使用,本身节点没有数据,不能参加选举

MongoDB节点选举和投票

主节点和从节点既有投票权又有选举权

投票节点只有投票权

选举基于EAFT一致性算法,选举成功的条件是大多数投票节点存活,并且其中一个节点获得大多数投票

故障节点既没有选举权也没有投票权

选举中<大多数>的概念

有N个节点,那么大多数就是要大于等于 \frac{N}{2} + 1 

所有根据计算,投票节点至少要有3个,才会出现一个节点有大多数投票数选举成功

节点之间数据复制过程

1、当对主节点进行修改操作的时候,数据的修改操作日志会被记录下来,放到集合中,这个集合称为oplog

2、通过一个线程监听这个集合变动,有变动就会读取到从节点,在从节点上进行还原

故障恢复选举过程

选举的前提条件

1、具有投票权的节点之间相互发送心跳,当5次心跳都未收到判断节点失联
2、只有失联节点是主节点才会发起选举

选举过程

只有失联节点是主节点才会发起选举,从节点会发起选举,选出新的主节点

选举基于EAFT一致性算法,选举成功的条件是大多数投票节点存活,并且其中一个节点获得大多数投票

在选举过程中基本上不会出现票数相等的僵局的,这是经过程序优化过的

复制集中最多可以有50个节点,但具有投票权的节点最多7个

选举过程中避免出现票数相等的僵局方法

随机延迟机制

多个从节点检测到主节点失联之后,会有一个随机延迟机制,随机等待一下再发起选举,避免多个从节点同时发起选举出现竞争情况

优先级权重

同时设置从节点选举的时候的优先级权重,即使出现多个从节点进行竞争,在优先级权重的加持下也基本上不可能产生两个同时发起选举的从节点最终票数相同无法选举出主节点的僵局

http://www.dtcms.com/a/289437.html

相关文章:

  • 玄机——第六章 流量特征分析-蚂蚁爱上树
  • c语言进阶 自定义类型 (结构体 位段)
  • LWJGL教程(3)——时间
  • 【OD机试】池化资源共享
  • 30天打牢数模基础-K近邻(KNN)讲解
  • `/etc/samba/smb.conf`笔记250719
  • 【1】计算机视觉方法(更新)
  • Spring Boot 自动装配用法
  • Spring AI 聊天记忆
  • InfluxDB 核心概念与发展历程全景解读(一)
  • 定点小数与分数
  • Laravel 框架NOAUTH Authentication required 错误解决方案-优雅草卓伊凡
  • Leetcode 124. 二叉树中的最大路径和
  • 面向对象基础笔记
  • 提升H7-TOOL自制nRF54L15脱机烧写算法文件速度,1MB程序仅需11秒,并且支持了UICR编程
  • C++23中的std::expected:异常处理
  • 以“融合进化 智领未来”之名,金仓Kingbase FlySync:国产数据库技术的突破与创新
  • SpringBoot集成Skywalking链路跟踪
  • CAN通讯理论与实践:调试和优化全讲解
  • 20250720-2-Kubernetes 调度-资源限制对Pod调度的影响(1)_笔记
  • 基于深度学习的目标检测:从基础到实践
  • 尚庭公寓--------登陆流程介绍以及功能代码
  • 常见的离散积分方法
  • 基于bert-lstm对微博评论的情感分析系统设计与实现
  • 《每日AI-人工智能-编程日报》--2025年7月20日
  • Direct3D 11学习(一)
  • Charles 的 Windows proxy 对爬取瑞数6 网站接口数据的作用分析
  • 高性能架构模式——单服务器高性能模式(PPC与TPC)
  • 创新几何解谜游戏,挑战空间思维极限
  • 【51单片机仿真复位电阻电容参数】2022-5-17