MongoDB - Scherben
Beim Sharding werden Datensätze auf mehreren Computern gespeichert, und MongoDB verfolgt den Ansatz, die Anforderungen des Datenwachstums zu erfüllen. Mit zunehmender Datengröße reicht eine einzelne Maschine möglicherweise nicht aus, um die Daten zu speichern oder einen akzeptablen Lese- und Schreibdurchsatz bereitzustellen. Sharding löst das Problem mit der horizontalen Skalierung. Mit Sharding fügen Sie weitere Maschinen hinzu, um das Datenwachstum und die Anforderungen von Lese- und Schreibvorgängen zu unterstützen.
Warum Scherben?
Bei der Replikation werden alle Schreibvorgänge an den Masterknoten gesendet
Latenzempfindliche Abfragen werden weiterhin an den Master gesendet
Einzelne Replikatsätze sind auf 12 Knoten begrenzt
Der Speicher kann nicht groß genug sein, wenn der aktive Datensatz groß ist
Die lokale Festplatte ist nicht groß genug
Vertikale Skalierung ist zu teuer
Sharding in MongoDB
Das folgende Diagramm zeigt das Sharding in MongoDB unter Verwendung eines Sharded-Clusters.
In der folgenden Abbildung gibt es drei Hauptkomponenten:
Shards- Shards werden zum Speichern von Daten verwendet. Sie bieten hohe Verfügbarkeit und Datenkonsistenz. In der Produktionsumgebung ist jeder Shard ein separater Replikatsatz.
Config Servers- Konfigurationsserver speichern die Metadaten des Clusters. Diese Daten enthalten eine Zuordnung des Cluster-Datensatzes zu den Shards. Der Abfragerouter verwendet diese Metadaten, um Vorgänge auf bestimmte Shards auszurichten. In der Produktionsumgebung haben Sharded-Cluster genau 3 Konfigurationsserver.
Query Routers- Abfragerouter sind im Grunde Mongo-Instanzen, Schnittstellen zu Clientanwendungen und direkte Operationen zum entsprechenden Shard. Der Abfrage-Router verarbeitet und zielt die Vorgänge auf Shards ab und gibt dann Ergebnisse an die Clients zurück. Ein Sharded-Cluster kann mehr als einen Abfragerouter enthalten, um die Clientanforderungslast aufzuteilen. Ein Client sendet Anforderungen an einen Abfragerouter. Im Allgemeinen verfügt ein Sharded-Cluster über viele Abfragerouter.