English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MongoDB 分片

Sharding è il processo di memorizzazione dei record di dati su più macchine, è il metodo che MongoDB utilizza per soddisfare le esigenze di crescita dei dati. Con l'aumento della dimensione dei dati, un singolo computer potrebbe non essere sufficiente per memorizzare i dati e non essere in grado di fornire un throughput di lettura e scrittura accettabile. Sharding risolve il problema della scalabilità orizzontale. Attraverso lo sharding, è possibile aggiungere più computer per supportare le esigenze di crescita dei dati e delle operazioni di lettura e scrittura.

Perché shardizzare?

  • In una replica, tutte le scritture vengono indirizzate al nodo principale

  • Le query sensibili alla latenza continuano a essere indirizzate al nodo principale

  • Il limite di un singolo set di replica è di 12 nodi

  • Quando il set di dati attivo è molto grande, la memoria non può essere abbastanza grande

  • 本地磁盘不够大

  • 垂直扩展太昂贵了

MongoDB中的Shards

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

在下图中,有三个主要组件-

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

  • Config Servers−Config Servers存储集群的元数据。该数据包含集群数据集到分片的映射。Query Routers使用此元数据将操作定向到特定的分片。在生产环境中,分片集群恰好具有3个Config Servers。

  • Query Routers−Query Routers sono基本上是mongo实例,可与客户端应用程序接口并将操作直接引导至适当的分片。Query Routers处理操作并将其定位到分片,然后将结果返回给客户端。分片集群可以包含多个Query Routers来划分客户端请求负载。客户端将请求发送到一个Query Router。通常,分片集群具有许多Query Routers。