MongoDB详解(二)——MongoDB架构与原理

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB详解(二)——MongoDB架构与原理

今天继续给大家介绍Linux运维相关知识,本文主要内容是MongoDB架构与原理。

一、MongoDB架构简介
MongoDB采取主从架构,官方建议3个节点组成副本集,MongoDB的架构图如下所示:

注意,在上图中,Primary主库会讲其数据信息同步到Secondary从库上,但是与MySQL主从同步架构不同的是,在MongoDB的架构中,对数据库的读和写都会发送给到Primary主库上去。

二、MongoDB副本集
MongoDB的副本集是一组配置成可自动同步数据和进行故障切换的节点。早期版本的MongoDB复制只提供数据同步,但是不支持故障切换,因此现在已经被副本集所替代。MongoDB的journaling日志功能也提供了数据保护能力,与副本集相比,journaling可以大幅度提升故障和数据恢复的速度,常与副本集一起使用。
一个MongoDB的副本集至少有三个节点组成,其中提供读写功能的Primary节点有且仅有一个,提供数据备份的副节点(Secondary)可以有一个或者多个。副节点采用长轮询(Long Polling)机制,可以准实时的从主节点local集合中获取包含数据变化的oplog,并应用于副节点库。
总的来看,MongoDB的副本集优点有以下三点:
1、提供数据保护、负载均衡和容灾能力。
2、可以进行节点心跳的检查,以检测和维护副本集。
3、通过选举机制完成故障切换。

三、MondoDB存储引擎
MongoDB中有一个核心组件——存储引擎,其负责管理和组织数据采取什么样的格式存储在硬盘和内存上。MongoDB支持的存储引擎有wiredTiger、MMAPv1、In-memory,在MongoDB3.2版本以前,默认的存储引擎是wiredTiger,在3.2版本之后和4.0版本之前,默认的存储引擎是MMAPv1,在4.0版本之后,默认的存储引擎是In-memory。
MMAPv1引擎是一种多数据引擎,即在一个MongoDB复制集中,可以有多种存储并存,这可以满足应用更为复杂的需求。In-memeor引擎即可以将数据只存储的内存中,还可以将数据持久化到硬盘中。当只将数据存储到内存中时,只会讲少量的元数据和诊断文件存储到硬盘中,这样减少了磁盘I/O的消耗,大大降低了数据查询的延时。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/124812623

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
2月前
|
存储 缓存 NoSQL
MongoDB内部的存储原理
这篇文章详细介绍了MongoDB的内部存储原理,包括存储引擎WiredTiger的架构、btree与b+tree的比较、cache机制、page结构、写操作流程、checkpoint和WAL日志,以及分布式存储的架构。
70 1
MongoDB内部的存储原理
|
4天前
|
SQL Java 数据库连接
Mybatis架构原理和机制,图文详解版,超详细!
MyBatis 是 Java 生态中非常著名的一款 ORM 框架,在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。本文详细解析了MyBatis的架构原理与机制,帮助读者全面提升对MyBatis的理解和应用能力。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Mybatis架构原理和机制,图文详解版,超详细!
|
18天前
|
开发者 容器
Flutter&鸿蒙next 布局架构原理详解
本文详细介绍了 Flutter 中的主要布局方式,包括 Row、Column、Stack、Container、ListView 和 GridView 等布局组件的架构原理及使用场景。通过了解这些布局 Widget 的基本概念、关键属性和布局原理,开发者可以更高效地构建复杂的用户界面。此外,文章还提供了布局优化技巧,帮助提升应用性能。
78 4
|
18天前
|
存储 Dart 前端开发
flutter鸿蒙版本mvvm架构思想原理
在Flutter中实现MVVM架构,旨在将UI与业务逻辑分离,提升代码可维护性和可读性。本文介绍了MVVM的整体架构,包括Model、View和ViewModel的职责,以及各文件的详细实现。通过`main.dart`、`CounterViewModel.dart`、`MyHomePage.dart`和`Model.dart`的具体代码,展示了如何使用Provider进行状态管理,实现数据绑定和响应式设计。MVVM架构的分离关注点、数据绑定和可维护性特点,使得开发更加高效和整洁。
146 3
|
1月前
|
容器
Flutter&鸿蒙next 布局架构原理详解
Flutter&鸿蒙next 布局架构原理详解
|
9天前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB复制集的体系架构
MongoDB的复制集是一种集群技术,由一个Primary节点和多个Secondary节点组成,实现数据的高可用性。Primary节点处理写入请求,Secondary节点同步数据。当Primary节点故障时,Secondary节点可通过选举成为新的Primary节点。视频讲解和示意图详见正文。
|
1月前
|
前端开发 Java 应用服务中间件
21张图解析Tomcat运行原理与架构全貌
【10月更文挑战第2天】本文通过21张图详细解析了Tomcat的运行原理与架构。Tomcat作为Java Web开发中最流行的Web服务器之一,其架构设计精妙。文章首先介绍了Tomcat的基本组件:Connector(连接器)负责网络通信,Container(容器)处理业务逻辑。连接器内部包括EndPoint、Processor和Adapter等组件,分别处理通信、协议解析和请求封装。容器采用多级结构(Engine、Host、Context、Wrapper),并通过Mapper组件进行请求路由。文章还探讨了Tomcat的生命周期管理、启动与停止机制,并通过源码分析展示了请求处理流程。
|
1月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
53 3
|
1月前
|
消息中间件 分布式计算 druid
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
38 2
|
1月前
|
消息中间件 监控 Java
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
65 1