mongodb 为大写量设计数据库

mongodb design database for high volume of writing

我在 mongo db 中设计数据库时遇到问题。

所以一般来说,系统会不断从不同的社交网站 apis(推特 api 、instagram api 、 fb api) 每个通道的速率不同。同时还将每个小时的每个洞察力保存为历史数据。用户应该在网站上查看这些当前的实时见解。 我应该将洞察数据保存在缓存中,将历史洞察数据保存在文档中吗?

预期的写入率和查询率是多少? 数据集将以什么速度增长?这些是决定 MongoDB 集群的大小和拓扑结构的关键问题。如果您的写入速率不超过单个节点的写入容量,那么您应该能够将数据托管在单个 replica set 上。但是,这假设您的数据集不大 (>1TB)。在这种规模下,从单个节点故障中恢复可能非常耗时(它不会导致中断,但单个节点停机时间越长,第二个节点故障的风险就越高)。

在这两种情况下(写入容量超过单个节点或数据集大于 1TB)粗略的指导是这是考虑 [sharded cluster][2] 的时候了。分片集群的设计超出了单个 Whosebug 答案的范围。