Freigeben über


Einrichten einer global verteilten Datenbank mit der Azure Cosmos DB-API für MongoDB

GILT FÜR: Mongodb

Von Bedeutung

Möchten Sie eine vorhandene MongoDB-Anwendung migrieren oder MongoDB Query Language (MQL)-Features verwenden? Betrachten Sie Azure DocumentDB.

Suchen Sie nach einer Datenbanklösung für hochskalige Szenarien mit einer Vereinbarung über verfügbarkeitsbasierte Servicelevels (Service Level Agreement, SLA) von 99,999% Verfügbarkeit, sofortige Automatische Skalierung und automatisches Failover über mehrere Regionen hinweg? Betrachten Sie Azure Cosmos DB für NoSQL.

In diesem Artikel wird veranschaulicht, wie Sie über das Azure-Portal eine global verteilte Datenbank einrichten und mit der Azure Cosmos DB-API für MongoDB eine Verbindung damit herstellen.

In diesem Artikel werden die folgenden Aufgaben behandelt:

Hinzufügen globaler Datenbankregionen über das Azure-Portal

Azure Cosmos DB ist in allen Azure-Regionen weltweit verfügbar. Nachdem Sie die Standardkonsistenzebene für Ihr Datenbankkonto ausgewählt haben, können Sie dem Konto eine oder mehrere Regionen zuordnen (je nachdem, welche Konsistenzebene Sie ausgewählt haben und welche Anforderungen an eine globale Verteilung bestehen).

  1. Klicken Sie im Azure-Portal auf der linken Leiste auf Azure Cosmos DB.

  2. Wählen Sie auf der Seite Azure Cosmos DB das zu ändernde Datenbankkonto aus.

  3. Klicken Sie auf der Kontoseite im Menü auf Daten global replizieren.

  4. Wählen Sie auf der Seite Daten global replizieren die Regionen aus, die Sie hinzufügen oder entfernen möchten. Klicken Sie hierzu auf die Regionen auf der Karte, und klicken Sie anschließend auf Speichern. Für das Hinzufügen von Regionen entstehen Kosten. Weitere Informationen hierzu finden Sie auf der Seite mit Preisinformationen sowie im Artikel Globale Verteilung von Daten mit Azure Cosmos DB.

    Hinzufügen oder Entfernen von Regionen per Klick auf die Regionen auf der Karte

Nachdem Sie eine zweite Region hinzugefügt haben, wird im Portal auf der Seite Daten global replizieren die Option Manuelles Failover aktiviert. Sie können diese Option verwenden, um den Failovervorgang, zu testen oder die primäre Schreibregion zu ändern. Nachdem Sie eine dritte Region hinzugefügt haben, wird auf der gleichen Seite die Option Failoverprioritäten aktiviert, sodass Sie die Failoverreihenfolge für Lesevorgänge ändern können.

Auswählen von globalen Datenbankregionen

Es gibt zwei gängige Szenarios zum Konfigurieren von mindestens zwei oder mehr Regionen:

  1. Bereitstellung von niedriger Latenz beim Datenzugriff für Endbenutzer, unabhängig davon, wo auf der Welt sie sich befinden.
  2. Hinzufügen von regionaler Resilienz für Geschäftskontinuität und Notfallwiederherstellung (Business Continuity & Disaster Recovery, BCDR)

Zur Gewährleistung geringer Wartezeiten für Endbenutzer empfiehlt es sich, sowohl die Anwendung als auch Azure Cosmos DB in den Regionen bereitzustellen, in denen sich die Benutzer der Anwendung befinden.

Für BCDR empfiehlt es sich, die Regionen basierend auf den Regionspaaren hinzuzufügen, die im Artikel Regionsübergreifende Replikation in Azure: Geschäftskontinuität und Notfallwiederherstellung beschrieben sind.

Überprüfung der regionalen Konfiguration

Eine einfache Möglichkeit zur Überprüfung Ihrer globalen Konfiguration mit der Azure Cosmos DB-API für MongoDB ist die Ausführung des Befehls isMaster() in der Mongo Shell.

Von Ihrer Mongo Shell aus:

   db.isMaster()

Beispielergebnisse:

   {
      "_t": "IsMasterResponse",
      "ok": 1,
      "ismaster": true,
      "maxMessageSizeBytes": 4194304,
      "maxWriteBatchSize": 1000,
      "minWireVersion": 0,
      "maxWireVersion": 2,
      "tags": {
         "region": "South India"
      },
      "hosts": [
         "vishi-api-for-mongodb-southcentralus.documents.azure.com:10255",
         "vishi-api-for-mongodb-westeurope.documents.azure.com:10255",
         "vishi-api-for-mongodb-southindia.documents.azure.com:10255"
      ],
      "setName": "globaldb",
      "setVersion": 1,
      "primary": "vishi-api-for-mongodb-southindia.documents.azure.com:10255",
      "me": "vishi-api-for-mongodb-southindia.documents.azure.com:10255"
   }

Herstellen einer Verbindung mit einer bevorzugten Region

Die Azure Cosmos DB-API für MongoDB ermöglicht es Ihnen, Voreinstellungen für Lesevorgänge in Ihrer Sammlung für eine global verteilte Datenbank anzugeben. Sowohl für Lesevorgänge mit niedriger Latenz als auch für globale Hochverfügbarkeit empfehlen wir, die Lesepräferenz Ihrer Sammlung auf nearest festzulegen. Die Lesepräferenz nächste ist konfiguriert, um aus der nächstgelegenen Region zu lesen.

var collection = database.GetCollection<BsonDocument>(collectionName);
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.Nearest));

Bei Anwendungen mit einer primären Lese-/Schreibregion und einer sekundären Region für Notfallwiederherstellung empfiehlt es sich, die Lesepräferenz Ihrer Sammlung auf Primär bevorzugt festzulegen. Die Lesepräferenz Primär bevorzugt wird konfiguriert, um aus der sekundären Region zu lesen, wenn die primäre Region nicht verfügbar ist.

var collection = database.GetCollection<BsonDocument>(collectionName);
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.SecondaryPreferred));

Zuletzt, falls Sie Leseregionen manuell angeben möchten. Legen Sie das entsprechende Regionstag in Ihrer Voreinstellung für Lesevorgänge fest.

var collection = database.GetCollection<BsonDocument>(collectionName);
var tag = new Tag("region", "Southeast Asia");
collection = collection.WithReadPreference(new ReadPreference(ReadPreferenceMode.Secondary, new[] { new TagSet(new[] { tag }) }));

Das ist alles, und dieses Tutorial ist abgeschlossen. Informationen dazu, wie Sie die Konsistenz Ihres global replizierten Kontos verwalten, finden Sie unter Konsistenzebenen in Azure Cosmos DB. Weitere Informationen zur Funktionsweise der globalen Datenbankreplikation in Azure Cosmos DB finden Sie unter Globale Verteilung von Daten mit Azure Cosmos DB.

Nächste Schritte

In diesem Tutorial haben Sie die folgenden Aufgaben ausgeführt:

  • Konfigurieren der globalen Verteilung mit dem Azure-Portal
  • Konfigurieren der globalen Verteilung mit der Azure Cosmos DB-API für MongoDB

Sie können jetzt mit dem nächsten Tutorial fortfahren, um zu erfahren, wie Sie mit dem lokalen Azure Cosmos DB-Emulator lokal entwickeln können.

Versuchen Sie, die Kapazitätsplanung für eine Migration zu Azure Cosmos DB durchzuführen? Sie können Informationen zu Ihrem vorhandenen Datenbankcluster für die Kapazitätsplanung verwenden.