25MongoDB分片


分片是在多台机器之间存储数据记录的过程,MongoDB是满足数据增长需求的方法。 随着数据的大小增加,单个机器可能不足以存储所有数据,也不能提供可接受的读写吞吐量。 分片解决了水平缩放的问题。 使用分片,可以添加更多的机器来支持数据增长和读写操作的需求。

为什么要分片?

  • 在复制中,所有写入都转到主节点
  • 延迟敏感查询到主节点
  • 单个副本集合有12个节点的限制
  • 当活动数据集较大时,内存不足够大
  • 本地磁盘不够大
  • 垂直扩缩太昂贵了

MongoDB中的分片

下图显示了使用分片集群的 MongoDB 分片。

在上图中,有三个主要组件 –

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

  • 配置服务器(Config Servers) – 配置服务器存储集群的元数据。 该数据包含集群的数据集与分片的映射。查询路由器使用此元数据将操作定位到特定的分片。 在生产环境中,分片集群正好有3个配置服务器。

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

 关注右侧公众号,随时随地查看教程 MongoDB教程目录 
转载自:https://www.yiibai.com/mongodb/mongodb_sharding.html

You may also like...