MongoDB 分布式集群(三)

【数据结构与算法】图(Graph)【详解】 图(Graph)是由顶点的有穷非空集合V ( G ) 和顶点之间边的集合E ( G )组成,通常表示为: G = ( V , E ) ,其中,G表示个图,V 是图G中顶点的集合,E是图G中边的集合。若V = { v 1 , v 2 , . . . , v n } ,则用∣ V ∣表示图G中顶点的个数,也称图G的阶,E = { ( u , v ) ∣ u ∈ V , v ∈ V } ,用∣ E ∣表示图G中边的条数。注意:线性表可以是空表,树可以是空树,但图不可以是空图。 阅读详情

最近看到一篇写 MongoDB 分布式集群架构的文章,
原文链接: http://c.biancheng.net/view/6567.html

MongoDB 分布式集群架构

简介

MongoDB 有三种集群部署模式,分别为主从复制(Master-Slaver)、副本集(Replica Set)和分片(Sharding)模式。
Master-Slaver 是一种主从副本的模式,目前已经不推荐使用。
Replica Set 模式取代了 Master-Slaver 模式,是一种互为主从的关系。Replica Set 将数据复制多份保存,不同服务器保存同一份数据,在出现故障时自动切换,实现故障转移,在实际生产中非常实用。
Sharding 模式适合处理大量数据,它将数据分开存储,不同服务器保存不同的数据,所有服务器数据的总和即为整个数据集。

Sharding 模式追求的是高性能,而且是三种集群中最复杂的。在实际生产环境中,通常将 Replica Set 和 Sharding 两种技术结合使用。

主从复制

虽然 MongoDB 官方建议用副本集替代主从复制,但是本节还是从主从复制入手,让大家了解 MongoDB 的复制机制。

主从复制是 MongoDB 中最简单的数据库同步备份的集群技术,其基本的设置方式是建立一个主节点(Primary)和一个或多个从节点(Secondary),如下图所示。
在这里插入图片描述

这种方式比单节点的可用性好很多,可用于备份、故障恢复、读扩展等。集群中的主从节点均运行 MongoDB 实例,完成数据的存储、查询与修改操作。

主从复制模式的集群中只能有一个主节点,主节点提供所有的增、删、查、改服务,从节点不提供任何服务,但是可以通过设置使从节点提供查询服务,这样可以减少主节点的压力。

另外,每个从节点要知道主节点的地址,主节点记录在其上的所有操作,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

在主从复制的集群中,当主节点出现故障时,只能人工介入,指定新的主节点,从节点不会自动升级为主节点。同时,在这段时间内,该集群架构只能处于只读状态。

副本集

副本集的集群架构如下图所示。
在这里插入图片描述

此集群拥有一个主节点和多个从节点,这一点与主从复制模式类似,且主从节点所负责的工作也类似,但是副本集与主从复制的区别在于:当集群中主节点发生故障时,副本集可以自动投票,选举出新的主节点,并引导其余的从节点连接新的主节点,而且这个过程对应用是透明的。

可以说,MongoDB 的副本集是自带故障转移功能的主从复制。

MongoDB 副本集使用的是 N 个 mongod 节点构建的具备自动容错功能、自动恢复功能的高可用方案。在副本集中,任何节点都可作为主节点,但为了维持数据一致性,只能有一个主节点。

主节点负责数据的写入和更新,并在更新数据的同时,将操作信息写入名为 oplog 的日志文件当中。主节点还负责指定其他节点为从节点,并设置从节点数据的可读性,从而让从节点来分担集群读取数据的压力。

另外,从节点会定时轮询读取 oplog 日志,根据日志内容同步更新自身的数据,保持与主节点一致。

在一些场景中,用户还可以使用副本集来扩展读性能,客户端有能力发送读写操作给不同的服务器,也可以在不同的数据中心获取不同的副本来扩展分布式应用的能力。

在副本集中还有一个额外的仲裁节点(不需要使用专用的硬件设备),负责在主节点发生故障时,参与选举新节点作为主节点。

副本集中的各节点会通过心跳信息来检测各自的健康状况,当主节点出现故障时,多个从节点会触发一次新的选举操作,并选举其中一个作为新的主节点。为了保证选举票数不同,副本集的节点数保持为奇数。

分片

副本集可以解决主节点发生故障导致数据丢失或不可用的问题,但遇到需要存储海量数据的情况时,副本集机制就束手无策了。副本集中的一台机器可能不足以存储数据,或者说集群不足以提供可接受的读写吞吐量。这就需要用到 MongoDB 的分片(Sharding)技术,这也是 MongoDB 的另外一种集群部署模式。

分片是指将数据拆分并分散存放在不同机器上的过程。有时也用分区来表示这个概念。将数据分散到不同的机器上,不需要功能强大的大型计算机就可以存储更多的数据,处理更大的负载。

MongoDB 支持自动分片,可以使数据库架构对应用程序不可见,简化系统管理。对应用程序而言,就如同始终在使用一个单机的 MongoDB 服务器一样。

MongoDB 的分片机制允许创建一个包含许多台机器的集群,将数据子集分散在集群中,每个分片维护着一个数据集合的子集。与副本集相比,使用集群架构可以使应用程序具有更强大的数据处理能力。

MongoDB 分片的集群模式如下图所示。
在这里插入图片描述

构建一个 MongoDB 的分片集群,需要三个重要的组件,分别是分片服务器(Shard Server)、配置服务器(Config Server)和路由服务器(Route Server)。
Shard Server
每个 Shard Server 都是一个 mongod 数据库实例,用于存储实际的数据块。整个数据库集合分成多个块存储在不同的 Shard Server 中。

在实际生产中,一个 Shard Server 可由几台机器组成一个副本集来承担,防止因主节点单点故障导致整个系统崩溃。
Config Server
这是独立的一个 mongod 进程,保存集群和分片的元数据,在集群启动最开始时建立,保存各个分片包含数据的信息。
Route Server
这是独立的一个 mongos 进程,Route Server 在集群中可作为路由使用,客户端由此接入,让整个集群看起来像是一个单一的数据库,提供客户端应用程序和分片集群之间的接口。

Route Server 本身不保存数据,启动时从 Config Server 加载集群信息到缓存中,并将客户端的请求路由给每个 Shard Server,在各 Shard Server 返回结果后进行聚合并返回客户端。

以上介绍了 MongoDB 的三种集群模式,副本集已经替代了主从复制,通过备份保证集群的可靠性,分片机制为集群提供了可扩展性,以满足海量数据的存储和分析的需求。

在实际生产环境中,副本集和分片是结合起来使用的,可满足实际应用场景中高可用性和高可扩展性的需求。

MongoDB集群架构及搭建 MongoDB集群架构及搭建MongoDB分布式集群MongDB分布式集群能够对数据进行备份,提高数据安全性,以及提高集群提高读写服务的能力和数据存储能力。主要通过副本集(replica)对数据进行备份,通过分片(sharding)对大的数据进行分割,分布式存储在不同节点上。副本集(replica)副本集由若干台服务器组成,分为三种角色:主服务器、副服务器、仲裁服务器。根据集群搭建的需求,仲裁服务器 阅读详情

相关推荐

MongoDB完全指南:从CRUD到分布式集群实战

MongoDB 是一个文档数据库,为简化应用程序的开发与扩展而设计。

码农捻旧的博客 1479

《Redis篇:》《Redis持久化、主从、哨兵、集群、常见问题重点回顾》

1.Redis的持久化: RDB(默认) 二进制存储持久化数据,速度相对较快 持久化时机:save second keys RDB无法保证数据的安全 2.AOF AOF是一日志的形式持久化,用户的写操作,速度慢 AOF持久化时机:always ,everysec,no AOF相对RDB更加安全 3.官方推荐同时开启RDB和AOF两种持久化机制 在恢复数据时,AOF的持久化优先级更高 同时开启AOF和RDB ,在RDB执行持久化时,RDB数据会被AOF覆盖 4.AOF重写 自动重写:指定AOF的文件超过

qq_39773004的博客 414

MongoDB 3.2.9 分布式集群搭建

MongoDB 3.2.9最新版本分布式集群搭建一步一步实操记录,带安全认证,附带核武Ops Manager,自动化部署、管理、监控。

链上研发 3455

Python二叉树的三种深度优先遍历

Python二叉树的三种深度优先遍历

weixin_43790276的博客 4450

MongoDB4.0搭建分布式集群

搭建之前先了解一下MongoDB分片群集主要有如下三个组件: Shard:分片服务器,用于存储实际的数据块,实际生产环境中一个shard server 角色可以由几台服务器组成一个Peplica Set 承担,防止主机单点故障。 Config Server:配置服务器,存储了整个分片群集的配置信息,其中包括chunk信息。 Routers:前端路由,客户端由此接入,且让整个群集看上去像单一数...

kevinmcy的专栏 1万+

Python 算法基础篇之图的遍历算法:深度优先搜索和广度优先搜索

图的遍历是计算机科学中的一项重要任务,用于查找和访问图中的所有节点。深度优先搜索( DFS )和广度优先搜索( BFS )是两种常用的图遍历算法。本篇博客将重点介绍这两种算法的原理、应用场景以及使用 Python 实现,并通过实例演示每一行代码的运行过程。

小蓝枣的博客 1763

MongoDB分片介绍(三)——分布式集群部署及维护

我们提到过,MongoDB分片需要三个角色才能完成,一个是Config Server作为元数据存储服务器,一个是Mongos实例作为查询路由转发器,最后是MongoD实例用于存储实际用户数据。 一、初始化及启动 Config Server其实也是一个MongoDB实例,只不过我们通过启动时增加--configsvr选项将其功能专注于集群元数据的处理,每个Config Server都有一套完整且

luohongqing的专栏 2596

算法第八期——DFS(深度优先搜索)的深入应用(Python)

DFS的应用:图,排列组合和连通性判断。连通性判断:图论的一个简单问题,给定一张图,图由点和连接点的边组成,要求找到图中互相连通的部分。

荷叶田田的博客 1638

BigBlueButton集群部署指南:支持千人并发的终极架构设计

BigBlueButton是一套完整的开源网络会议系统,能够提供高清视频、实时协作和互动教学等核心功能。本指南将详细介绍如何构建支持千人并发的BigBlueButton集群架构,帮助新手用户快速掌握从单节点到分布式部署的关键技术和最佳实践。 ## 一、BigBlueButton核心架构解析 要构建高并发集群,首先需要理解BigBlueButton的基础架构。官方提供的架构图清晰展示了系统各组件

gitblog_00716的博客 1075

步进电机原理及梯形加速算法

步进电机重理解与梯形加速算法

weixin_39912966的博客 1322

windows中如何将已安装的nodejs高版本降级为低版本

第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑左面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并

weixin_44582077的博客 9万+

mongodb分布式集群架构

一、关于mongodb   MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当***能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是

mniwc的专栏 2万+

AD20/Altium designer——元器件批量命名与编号的高效技巧

本文详细介绍了在AD20/Altium Designer中实现元器件批量命名与编号的高效技巧。通过解析核心的“原理图标注”功能,从基础全局操作到进阶的按模块分区、利用标识符及合并BOM等智能方法,帮助硬件工程师彻底告别手动编号,大幅提升设计效率与文档规范性,并融入了一套完整的实战工作流。

whisky的博客 568

MongoDB中的分布式集群架构

前面我们了解了 MongoDB 中的索引,事务,锁等知识点。线上使用的 MongoDB 大部分的场景我们都会考虑使用分布式结构,这里我们来了解一下 MongoDB 中的分布式架构。MongoDB 中常用的分布式架构有下面几种:1、Replica Set 副本集模式:一个 Primary 节点用于写入数据,其它的 Secondary 节点用于查询数据,适合读写少的场景,是目前较为主流的架构方式,Primary 节点挂了,会自动从 Secondary 节点选出新的 Primary 节点,提供数据写入操作;

sdgfafg_25的博客 1757

模型参考自适应控制(MRAC):让PID参数动态优化

本文深入解析模型参考自适应控制(MRAC)技术,它通过实时调整PID参数,使控制系统能自动适应系统特性变化和外部干扰。文章详细介绍了MRAC的工作原理、数学基础,并提供了用C语言实现的实战代码示例,帮助工程师解决传统PID控制在非线性、时变系统中参数整定繁琐的难题。

tequila的博客 903

导数在工程与AI中的12个实战应用解析

导数作为数学中的基本概念,本质是描述变化率的工具,其核心价值在于将非线性问题局部线性化处理。从原理上看,通过极限过程捕捉函数瞬时变化特性,使工程师能精确控制系统动态行为,帮助科学家量化自然规律变化速率。在技术实现层面,现代符号计算(如Mathematica)、数值计算(如MATLAB)和自动微分(如PyTorch)工具链的发展,大幅提升了导数计算的效率与精度。典型应用场景涵盖机械控制(如ABS防抱死系统)、金融工程(如期权希腊值计算)、医疗影像(如Canny边缘检测)等领域。特别在机器学习中,反向传播算法依

weixin_35509395的博客 316

MongoDB - MongoDB分片集群:处理海量数据的“分布式方案”

MongoDB分片集群:处理海量数据的分布式方案 核心要点 MongoDB分片集群通过水平扩展解决海量数据存储问题,由三大组件构成: 分片(Shard) - 数据存储单元,每个分片都是高可用的副本集 路由服务器(mongos) - 查询路由网关,负责请求分发和结果聚合 配置服务器 - 存储集群元数据的"大脑",部署为副本集确保高可用 关键技术 分片键决定数据分布,需考虑高基数、写入分布和查询模式 **数据块(Chunk)**是基本分配单元,默认64MB大小 均衡器自动监控并迁移数据块,保

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

【沃顿商学院学习笔记】商业基础——Financing:05 名义利率和实际利率 APR& EAR

商业基础——名义利率和实际利率 本章主要是从名义利率和实际利率的相关概念和计算方法进行学习。 名义利率和实际利率 APR& EAR 根据下图可以直到: APR,QUOTED RATE在精算中又叫名义利率,比如一个房产贷款quoted rate or APR是12%,且按月复利,那么说明它的月实际利率是12%/12=1% EAR是effecive annual rate,在精算中叫实际利率,...

ECNU乐扣老师——区块链、可计算情感 1万+

mysql集群和mongodb集群_mongodb分布式集群架构

一、关于mongodbMongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当***能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点...

weixin_28927927的博客 440

基于ZYNQ的HP总线与DDR交互:实现PL与PS高效数据传输的完整指南

本文将深入探讨如何通过AXI HP总线实现PL与PS的DDR交互,结合代码示例、硬件配置与创新优化,助力开发者掌握这一关键技术。ZYNQ内部通过AXI HP接口直接连接PL与DDR控制器,PL通过AXI协议发送读写请求,绕过PS的CPU直接操作DDR。通过AXI HP总线实现PL与PS的DDR交互,开发者可充分发挥ZYNQ异构架构的优势。在Xilinx ZYNQ系列芯片中,PS(Processing System)与PL(Programmable Logic)的协同设计是其核心优势。

QQ_778132974的博客 1223

五种音频器件综合对比——《器件手册--音频器件》

音频器件当在蜂鸣片的两片电极之间接通交流音频信号时,蜂鸣片会根据信号的大小和频率发生振动,从而产生相应的声音。结构简单、造价低廉。广泛应用于玩具、电子表、电子仪器、电子钟表、定时器等电子电器方面。蜂鸣器是一种一体化结构的电子讯响器,采用直流电源供电,广泛应用于各种电子产品中作发声器件有源蜂鸣器:内部带震荡源,通电即发声,程序控制方便。无源蜂鸣器:内部不带震荡源,需用方波驱动,声音频率可控,价格相对便宜。计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品。

XU157303764的博客 1535

MongoDB 中的分布式集群架构

MongoDB 中的分布式集群架构

m0_60259116的博客 1187

cyclone-13.0.0.156.qdz.zip

cyclone-13.0.0.156.qdz.zip

Centos7上安装分布式集群mongodb的方法

Centos7上安装分布式集群mongodb的方法 来源地址:https://blog.youkuaiyun.com/supermapsupport/article/details/78953080 mongodb的集群搭建方式主要有三种: (1) Replica set模式, (2) sharding模式, (3)主从模式, 三种模式各有优劣,适用于不同的场合, 属Replica set应用最为广泛, 主从...

hsg77的专栏 2911

H5源码大全+视频教程.rar

首先,H5这个词,来自“HTML5”,且是国内的专门称呼,所以老外是完全不知道“H5”是什么的。 所谓“HTML5”,是指“HTML”的第5个版本 H5源码大全+视频教程

DirectX7.0

DirectX7.0,英文版,用于Windows95.

8.MongoDB之分片集群

一、mongodb分片与各角色与概念介绍 Mongodb的分片机制是mongodb数据库的核心机制,也是其可用性高,扩展性好的原因,分片—sharding 的意思就是将数据库数据分散存贮到不同的服务器上,来缓解高并发访问,均衡负载。举例来说一下,比如说一个collection有TB级别的数据,在传统方式下如果有两个线程要访问其中的数据,即使这个线程访问的数据是不同的,为保证同步需要排队等待,分片机制可以很好的解决这个问题,分片机制其实就是分布式的集群,比如现在有五台服务器作为集群,mongodb可以将一.

mijichui2153的博客 1万+

无线充电系统仿真.pdf

无线充电系统仿真.pdf无线充电系统仿真.pdf无线充电系统仿真.pdf无线充电系统仿真.pdf无线充电系统仿真.pdf无线充电系统仿真.pdf

MongoDB分布式集群搭建手记

一、架构简介 目标 单机搭建mongodb分布式集群(副本集 + 分片集群),演示mongodb分布式集群的安装部署、简单操作。 说明 在同一个vm启动由两个分片组成的分布式集群,每个分片都是一个PSS(Primary-Secondary-Secondary)模式的数据副本集; Config副本集采用PSS(Primary-Secondary-Secondary)模式。 二、配置说明 端口通讯 当前集群中存在mongos、config、shard共12个进程节点,端口矩阵编排如下: |编号|实

力挽狂澜的POWER 488
上一篇: MongoDB 索引(二)
下一篇: Postgres 快速入门(一)
达文西wgj
博客等级 码龄9年 4粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值