主页 > 新闻资讯 > 大数据学习:MongoDB系统架构简介

大数据学习:MongoDB系统架构简介

作者:张老师 浏览次数: 2021-03-31 17:42
MongoDB作为NoSQL数据库,基于分布式环境的场景下,对于系统架构的性能是要求比较高的。面对分布式场景下的大规模数据存储,MongoDB以文档型存储任务为主。今天的大数据学习分享,我们就来讲讲MongoDB系统架构。

通常来说,数据库的整体逻辑体系架构包括:数据库实例、数据库、集合、文档、字段等。

大数据学习:MongoDB系统架构简介
 
MongoDB单实例逻辑架构

磁盘文件经过加载之后后形成MongoDB实例,一个MongoDB实例中可以存放多个数据库(图中的MongoDB数据库1、MongoDB数据库2、MongoDB数据库3),数据库中存放的是一个个Collection(集合,对应关系型数据库的table),集合中又存放Document(文档,对应关系型的记录),Document中存放Field(字段,对应关系型数据库列)。

在了解了MongoDB单实例逻辑架构基础之上,接下来我们来看MongoDB的数据复制架构。它是保障MongoDB实现数据保护的重要基础条件。如图所示:

大数据学习:MongoDB系统架构简介
 
MongoDB数据复制架构

复制集(Replica Set)是MongoDB的数据复制架构。通常是三个对等的节点构成一个复制集,有Primary和Secondary两种角色,其中Primary负责读写请求,Secondary负责读请求,可以通过配置实现。Primary和Secondary节点之间在数据写入过程当中实现数据的异步复制。节点之间通过Heartbeat实现健康侦测,当Primary失败,集群可以通过多数派选举新的Primary,并且实现Failover机制。

复制集的架构解决了数据保护的问题,但是始终没有解决数据量大的情况下带来的性能瓶颈问题,也无法解决集群横向扩展的问题。所以在了解了MongoDB数据复制架构基础之上,我们再来看现实场景当中使用比较多的相对比较复杂的分切分布式集群架构,如图所示:

大数据学习:MongoDB系统架构简介
 
MongoDB分片分布式集群架构

从图示架构可以看出,分片集群的优势在于提供类似线性增长的架构,提高数据可用性,提高大型数据库查询服务器的性能。当MongoDB单点数据库服务器存储成为瓶颈、单点数据库服务器的性能成为瓶颈或需要部署大型应用以充分利用内存时,可以使用分片技术。

整体架构有几个重要的组件:切片(Shard)、配置服务器(ConfigServer)、路由(Query Router)。那么他们的逻辑关系又是什么样的呢?各自承担了什么的角色呢?

1)Shard:用于存储实际的数据块,一个切片服务器角色可由几台机器组成,防止主机单点故障。

2)Config Server:MongoDB实例,存储了整个ClusterMetadata,其中包括chunk信息。

3)Query Routers:客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。

基于以上组件功能角色,我们来分析客户端的访问路径为:首先、客户端访问路由(Query Router)的统一接口层,由路由层将数据请求发送到特定的配置服务器(ConfigServers);接着,由配置服务器查询本地的元数据信息定位到要访问的数据在哪个切片服务器(Shard)上;最后,客户端直接访问到切片服务器的具体位置,获取自己所需的数据信息。

MongoDB的数据划分,是以集合级别为标准。分片通过Shard Key来划分集合数据。具体切片的策略可以是通过数据的范围划分来切分,也可以通过哈希策略来切分,具体需要考虑到数据的特点和集群数据访问的效率。

关于大数据学习,MongoDB系统架构,以上就为大家做了简单的介绍了。学习MongoDB,需要从架构组件的基础开始,就要理解清楚,后续才能更扎实地运用。成都加米谷大数据,专业大数据培训机构,大数据开发、数据分析与挖掘,零基础班本月正在招生中,课程大纲及学习视频,可联系客服获取!
热点排行
推荐文章
立即申请>>