阿里云MongoDB 分片集群介绍

本文介绍了MongoDB分片集群的使用场景、shard和mongos数量确定、ShardKey的选择以及负载均衡策略。重点讨论了如何根据数据量、访问需求和性能指标来合理配置分片,以及处理jumbochunk和优化chunksize的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB分片集群技术用于解决海量数据的存储问题,本文介绍MongoDB分片集群相关的常用知识。

什么情况下使用分片集群?

当您遇到如下问题时,可以使用分片集群解决:

  • 存储容量受单机限制,即磁盘资源遭遇瓶颈。

  • 读写能力受单机限制,可能是CPU、内存或者网卡等资源遭遇瓶颈,导致读写能力无法扩展。

如何确定shard、mongos数量?

您可以根据以下方法确定shard和mongos的使用数量:

  • 分片集群仅用于解决海量数据的存储问题,且访问量不多。例如一个shard能存储M, 需要的存储总量是N,那么您的业务需要的shard和mongos数量按照以下公式计算:

    • numberOfShards = N/M/0.75 (假设容量水位线为75%)

    • numberOfMongos = 2+(对访问要求不高,至少部署2个mongos做高可用)

  • 分片集群用于解决高并发写入(或读取)数据的问题,但总的数据量很小。即shard和mongos需要满足读写性能需求,例如一个shard的最大QPS为M,一个mongos的最大QPS为Ms,业务需要的总QPS为Q,那么您的业务需要的shard和mongos数量按照以下公式计算:

    • numberOfShards = Q/M/0.75 (假设负载水位线为75%)

    • numberOfMongos = Q/Ms/0.75

    说明

    • 如果分片集群同时解决上述两个问题,则按照需求更高的指标进行预估。

    • 上述计算方法是基于分片集群中数据和请求都均匀分布的理想情况下进行预估,实际情况下,分布可能并不均匀,为了让系统的负载尽量均匀,您需要选择合理的Shard Key。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值