MongoDB-Sharding konfigurieren
Diese Anleitung erklärt, wie Sie über die Hikube-Konsole einen geshardeten MongoDB-Cluster erstellen und Ihre Collections auf die Shards verteilen.
Voraussetzungen
- Ein Hikube-Projekt mit ausreichenden Quotas: Eine geshardete Topologie verbraucht deutlich mehr Ressourcen als ein Replica Set (siehe unten)
- Die Shell
mongoshund ein Benutzer mit dem Recht Administrator auf der betreffenden Datenbank
Über das Sharding wird bei der Erstellung entschieden: Es kann danach weder aktiviert noch deaktiviert werden. Um einen bestehenden Cluster umzuwandeln, wenden Sie sich an den Support.
Die bereitgestellte Topologie verstehen
Wenn die Option Sharding (Distributed Topology) aktiviert ist, stellt die Konsole Folgendes bereit:
| Komponente | Anzahl | Ressourcen |
|---|---|---|
| Shards | 2 | Jeweils mit der gewählten Number of replicas und Disk size (GB) |
| Konfigurationsserver | 1 Gruppe | Gleiche Anzahl Replicas und gleiche Disk-Größe |
| Mongos-Router | 1 Gruppe | Gleiche Anzahl Replicas |
Ihre Anwendungen verbinden sich mit den Mongos-Routern, die jede Anfrage an den oder die betroffenen Shards weiterleiten.
Schritte
1. Den geshardeten Cluster erstellen
- Öffnen Sie DB & Messaging → MongoDB und klicken Sie auf Create a cluster.
- Schritt General: Geben Sie den Cluster Name ein.
- Schritt Configuration: Wählen Sie die MongoDB Version, das Preset, die Disk size (GB) und die Number of replicas (
3empfohlen) und aktivieren Sie anschließend Sharding (Distributed Topology). - Prüfen Sie die Estimated Cost und die Auswirkung auf die Quotas, die die zusätzlichen Komponenten berücksichtigen.
- Schritt Users: Fügen Sie mindestens einen Benutzer mit der Role Administrator hinzu.
- Schritt Summary: Prüfen Sie, ob die Zeile Sharding Enabled anzeigt, und klicken Sie dann auf Create cluster.
2. Die Topologie prüfen
Sobald der Cluster den Status Ready hat, zeigt die Karte Network and Connection auf seiner Seite Sharding: Enabled an.
3. Sharding für eine Collection aktivieren
Das über die Konsole vergebene Recht Administrator entspricht den MongoDB-Rollen readWrite und dbAdmin auf einer Datenbank. Es gewährt nicht die Cluster-Privilegien, die sh.status() und sh.shardCollection() erfordern (Aktionen listShards und enableSharding). Um eine Collection zu sharden, wenden Sie sich an den Support und geben Sie die Collection und den gewünschten Sharding-Schlüssel an.
Das Sharding wird Collection für Collection konfiguriert, indem ein Sharding-Schlüssel gewählt wird. Beispiele für Befehle, die von einem Konto mit diesen Privilegien ausgeführt werden:
// Gehashter Schlüssel: gleichmäßige Verteilung der Schreibvorgänge
sh.shardCollection("myapp.events", { deviceId: "hashed" })
// Bereichsschlüssel: effizient für Abfragen über Intervalle
sh.shardCollection("myapp.orders", { customerId: 1, createdAt: 1 })
Wählen Sie einen Schlüssel mit hoher Kardinalität, der in den meisten Ihrer Abfragen vorkommt. Ein monotoner Schlüssel (nur Erstellungsdatum, inkrementelle Kennung) konzentriert die Schreibvorgänge auf einen einzigen Shard.
Überprüfung
db.events.getShardDistribution()
Erwartetes Ergebnis: Die Dokumente und Chunks verteilen sich auf die beiden Shards.
Weiterführende Informationen
- MongoDB-Konzepte: Replica Set und Sharding
- MongoDB-Dokumentation zum Sharding