如何快速掌握MongoDB? | Sharding篇

随着MongoDB在国内的推广,越来越多的开发人员开始使用MongoDB,但是由于缺乏培训和指导,很多人不清楚MongoDB在建模、复制集以及分片等方面的使用原则和技巧。在实际工作中踩到了很多的坑。

我由于工作的关系,需要使用MongoDB进行海量地图数据的存储和快速查询。通过翻阅Mongodb官方手册,跟官方工程师近距离请教,自己实践验证,我总结了一些MongoDB的使用经验,现在分享给大家,希望对大家在使用MongoDB的过程中有借鉴价值。

今天分享的是有关MongoDB分片的使用经验。

一、何时需要分片

我们在考虑分片时,通常是要解决两类问题

1、是存储容量受单机限制,磁盘资源遭遇瓶颈了。

2、是读写能力受单机限制了

其实 读能力也可以在复制集里加secondary节点来扩展,可能是CPU、内存或者网卡等资源遭遇瓶颈,导致读写能力无法扩展

二、如何确定sharding 和 mongos节点个数

shard、mongos的数量归根结底是由应用需求决定,如果使用sharding只是解决海量数据存储的问题,访问并不多,那么很简单,假设单个shard能存储M, 需要的存储总量是N。

分片个数= N / M / 0.75

因为对访问要求不高,至少部署2个mongos做高可用即可。

如果你使用sharding是解决高并发写入(或读取)数据的问题࿰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值