加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 服务器 > 系统 > 正文

MongoDB分片集群是什么?一文带你搞懂原理及搭建

发布时间:2022-04-22 10:17:21 所属栏目:系统 来源:互联网
导读:我们知道mongodb是分布式文档存储数据库,而mongodb部署架构分为单机,可复制集和分片群集。其中,分片群集是比较复杂,而且运维难度比较高的。很多人对于mongodb分片集群都不是很理解,这篇文章就给大家介绍一下MongoDB分片集群的问题。 1、什么是分片?为
  我们知道mongodb是分布式文档存储数据库,而mongodb部署架构分为单机,可复制集和分片群集。其中,分片群集是比较复杂,而且运维难度比较高的。很多人对于mongodb分片集群都不是很理解,这篇文章就给大家介绍一下MongoDB分片集群的问题。
 
  1、什么是分片?为什么要分片?
 
  我们知道数据库服务器一般出现瓶颈是在磁盘io上,或者高并发网络io,又或者单台server的cpu、内存等等一系列原因。于是,为了解决这些瓶颈问题,我们就必须扩展服务器性能;通常扩展服务器有向上扩展和向外扩展,所谓向上扩展就是给服务器加更大的磁盘,使用更大更好的内存,更换更好的cpu。这种扩展在一定程度上是可以解决性能瓶颈问题,但随着数据量大增大,瓶颈会再次出现;所以通常这种向上扩展的方式不推荐。
 
  2、数据集分片示意图
 
  提示:我们通过分片,可以将原本1T的数据集,平均分成4分,每个节点存储原有数据集的1/4,使得原来用一台服务器处理1T的数据,现在可以用4台服务器来处理,这样一来就有效的提高了数据处理过程;这也是分布式系统的意义;在mongodb中我们把这种共同处理一个数据集的部分数据的节点叫shard,我们把使用这种分片机制的mongodb集群就叫做mongodb分片集群;
 
  3、mongodb分片集群架构
 
  提示:在mongodb分片集群中,通常有三类角色,第一类是router角色,router角色主要用来接收客户端的读写请求,主要运行mongos这个服务;为了使得router角色的高可用,通常会用多个节点来组成router高可用集群;第二类是config server,这类角色主要用来保存mongodb分片集群中的数据和集群的元数据信息,有点类似mogilefs中的tracker的作用;为了保证config server的高可用性,通常config server也会将其运行为一个副本集;第三类是shard角色,这类角色主要用来存放数据,类似mogilefs的数据节点,为了保证数据的高可用和完整性,通常每个shard是一个副本集;
 
  4、mongodb分片集群工作过程
 
  首先用户将请求发送给router,router接收到用户请求,然后去找config server拿对应请求的元数据信息,router拿到元数据信息后,然后再向对应的shard请求数据,最后将数据整合后响应给用户;在这个过程中router 就相当于mongodb的一个客户端代理;而config server用来存放数据的元数据信息,这些信息主要包含了那些shard上存放了那些数据,对应的那些数据存放在那些shard上,和mogilefs上的tracker非常类似,主要存放了两张表,一个是以数据为中心的一张表,一个是以shard节点为中心的一张表;

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读