MongoDB分片简介

1、MongoDB分片

ps: 1. 由于最近遇到了一些问题,使我不得不对mongodb的分片机制做一个总结。后续将会写一篇mongodb 聚合查询优化的文章。 2. 本文是对mongodb分片知识点的梳理以及一些个人经验之谈,其中分片理论知识大部分来源于官方资料:https://www.mongodb.com/docs/v4.2/core/ranged-sharding/

1.1、分片概念简介

分片(Sharding): 是指将数据拆分,分散在不同机器上的过程,使用分片可以将 读和写 操作分散到不同的机器上(前提是分片键选择合适),从而有效减少单台机器的CPU和存储的压力,提高QPS,使整个集群能够处理更大的负载。

自动水平扩展: MongoDB提供了一种称为Auto-Sharding的机制,该机制可以自动实现系统的水平扩展。虽然分片的概念源于关系型数据库的分区,但还是有一些差别。最大的差别是MongoDB自动完成所有的工作,不需要人工介入,并且当各个分片中的数据分布不平衡时,自动保持数据平衡。

1.2、分片集群组成

下边我们看下mongoddb分片部署时,都由哪几部分组成:

image.png

1. shard: 称为,每个shard 可以是一台服务器上的一个Mongod实例,但是为了提高系统的可靠性实现自动故障恢复,一个Shard应该是一个复制集(官方原话:从MongoDB 3.6版本开始,每个分片必须部署为副本集架构。)。

2. mongos(路由/代理): 充当路由或者说代理人 的角色,为 应用程序和分片集群间的通信 提供一个通道,可以理解成:应用程序和mongodb库之间的代理人,通过他,应用程序可以不关心分片集群的具体底层分片逻辑,也就是说在应用程序进行 读/写 数据

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值