分片存储在多台机器上的数据记录的过程,它是MongoDB的方法来满足数据增长的需求。一台机器上的大小的数据的增加,可能并不足够来存储数据,也不能提供可接受的读取和写入通过。分片解决问题的水平缩放。通过分片,你添加更多的机器支持数据增长的读取和写入操作需求。
复制所有写转到掌握节点
延时敏感的查询还是到主节点
单副本集有12个节点的限制
内存不能足够大,当活动数据集很大
本地磁盘不够大
垂直缩放太贵
下面给出的图显示了在MongoDB中使用分片分片集群。
在上面给出的图中,有三个主要组成部分,这说明如下:
碎片: 碎片被用来存储数据。它们提供了高可用性和数据的一致性。在生产环境中,每个碎片是一个单独的副本集。
配置服务器: 配置服务器集群的元数据存储。该数据包含集群的数据碎片的映射。查询路由器使用这个元数据,操作具体的碎片。在生产环境中,有整整3分片集群配置服务器。
查询路由: 查询路由基本上是Mongos实例,客户端应用程序界面和直接操作相应的碎片。查询路由过程目标操作的碎片,然后将结果返回到客户端。分片集群可以包含多个查询路由来划分客户端请求负载。客户端发送请求到一个查询路由。一般分片集群有许多查询路由。