MongoDB 分片

MongoDB 分片

分片是将数据记录存储在多台机器上的过程,也是MongoDB实现应对数据增长需求的方法。随着数据规模的增大,单个机器可能无法存储数据或提供令人满意的读写吞吐量。分片通过水平扩展来解决这个问题。使用分片,您可以添加更多机器以支持数据增长和读写操作的需求。

为什么选择分片

  • 在复制中,所有写操作都发送到主节点

  • 对延迟敏感的查询仍然发送到主节点

  • 单个副本集只能有12个节点的限制

  • 当活动数据集很大时,内存不足以容纳

  • 本地磁盘空间不足

  • 垂直扩展成本过高

MongoDB中的分片

下图展示了使用分片集群的MongoDB中的分片情况。

MongoDB 分片

在下面的图表中,有三个主要的组件−

  • 片(Shards) − 片用于存储数据。它们提供高可用性和数据一致性。在生产环境中,每个片都是一个独立的副本集。

  • 配置服务器(Config Servers) − 配置服务器存储集群的元数据。该数据包含将集群的数据集映射到片的映射关系。查询路由器使用这些元数据将操作定位到特定的片上。在生产环境中,分片集群的配置服务器数量为3个。

  • 查询路由器(Query Routers) − 查询路由器基本上是mongo实例,与客户端应用程序进行交互,并将操作定向到适当的片上。查询路由器处理和定位操作到片上,然后将结果返回给客户端。一个分片集群可以包含多个查询路由器来分散客户请求负载。客户端发送请求到一个查询路由器上。一般来说,分片集群有多个查询路由器。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程