如何快速掌握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是解决高并发写入(或读取)数据的问题࿰

你可能感兴趣的:(MongoDB,mongodb,开发人员)