Konfigurowanie globalnie rozproszonej bazy danych przy użyciu interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB

DOTYCZY: Mongodb

W tym artykule przedstawiono, jak za pomocą witryny Azure Portal skonfigurować globalnie rozproszoną bazę danych i nawiązać z nią połączenie przy użyciu interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB.

W tym artykule opisano następujące zadania:

Dodawanie regionów globalnej bazy danych przy użyciu witryny Azure Portal

Usługa Azure Cosmos DB jest dostępna we wszystkich regionach świadczenia usługi Azure na całym świecie. Po wybraniu domyślnego poziomu spójności dla Twojego konta bazy danych możesz skojarzyć co najmniej jeden region (w zależności od wybranego domyślnego poziomu spójności i globalnych potrzeb dystrybucji).

  1. W witrynie Azure Portal na pasku po lewej stronie kliknij pozycję Azure Cosmos DB.

  2. Na stronie usługi Azure Cosmos DB wybierz konto bazy danych do modyfikacji.

  3. Na stronie konta kliknij w menu pozycję Replikuj dane globalnie.

  4. Na stronie Globalna replikacja danych wybierz regiony do dodania lub usunięcia, klikając regiony na mapie, a następnie klikając przycisk Zapisz. Dodanie regionu nic nie kosztuje, zobacz cennik lub artykuł Globalna dystrybucja danych za pomocą usługi Azure Cosmos DB, aby uzyskać więcej informacji.

    Kliknij regiony na mapie, aby je dodać lub usunąć

Po dodaniu drugiego regionu w portalu na stronie Globalna replikacja danych zostanie udostępniona opcja Ręczne przejście do trybu failover. Ta opcja umożliwia testowanie procesu pracy awaryjnej lub zmianę podstawowego regionu zapisu. Po dodaniu trzeciego regionu na tej samej stronie zostanie udostępniona opcja Priorytety trybu failover, dzięki czemu możesz zmienić kolejność pracy awaryjnej dla odczytów.

Wybieranie regionów globalnej bazy danych

Istnieją dwa typowe scenariusze konfigurowania co najmniej dwóch regionów:

  1. Zapewnienie użytkownikom końcowym dostępu z małym opóźnieniem niezależnie od tego, gdzie znajdują się na całym świecie
  2. Dodawanie regionalnych odporności dla ciągłości prowadzenia działalności biznesowej i odzyskiwania po awarii (BCDR)

Aby zapewnić użytkownikom końcowym małe opóźnienia, zalecane jest wdrożenie zarówno aplikacji, jak i usługi Azure Cosmos DB w regionach, które odpowiadają lokalizacjom użytkowników aplikacji.

W przypadku strategii BCDR zaleca się dodawanie regionów na podstawie par regionów opisanych w artykule Replikacja między regionami na platformie Azure: Ciągłość działania i odzyskiwanie po awarii .

Weryfikowanie konfiguracji regionalnej

Prostym sposobem sprawdzenia konfiguracji globalnej przy użyciu interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB jest uruchomienie polecenia isMaster() z poziomu powłoki Mongo.

Z poziomu powłoki Mongo:

   db.isMaster()

Przykładowe wyniki:

   {
      "_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"
   }

Nawiązywanie połączenia z preferowanym regionem

Interfejs API usługi Azure Cosmos DB dla bazy danych MongoDB umożliwia określenie preferencji odczytu kolekcji dla globalnie rozproszonej bazy danych. Na potrzeby odczytów z małymi opóźnieniami i wysokiej dostępności globalnej zaleca się ustawienie preferencji odczytu kolekcji na wartość najbliższe. Preferencja odczytu najbliższe jest skonfigurowana do odczytu z najbliższego regionu.

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

W przypadku aplikacji z podstawowym regionem odczytu/zapisu i regionem pomocniczym dla scenariuszy odzyskiwania po awarii zalecamy ustawienie preferencji odczytu kolekcji na preferowaną główną. Preferencja odczytu preferowanego podstawowego jest skonfigurowana do odczytu z regionu pomocniczego, gdy region podstawowy jest niedostępny.

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

Ponadto jeśli chcesz ręcznie określić regiony odczytu, możesz ustawić tag regionu w swoich preferencjach odczytu.

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 }) }));

To wszystko — na tym kończy się ten samouczek. Aby dowiedzieć się, jak zarządzać spójnością globalnie replikowanego konta, przeczytaj Poziomy spójności w usłudze Azure Cosmos DB. Natomiast aby uzyskać więcej informacji na temat sposobu działania globalnej replikacji w usłudze Azure Cosmos DB, zobacz Dystrybuowanie danych globalnie za pomocą usługi Azure Cosmos DB.

Następne kroki

W tym samouczku wykonano następujące czynności:

  • Konfigurowanie dystrybucji globalnej przy użyciu witryny Azure Portal
  • Konfigurowanie dystrybucji globalnej przy użyciu interfejsu API usługi Azure Cosmos DB dla bazy danych MongoDB

Teraz możesz przejść do następnego samouczka, aby dowiedzieć się, jak programować lokalnie przy użyciu lokalnego emulatora usługi Azure Cosmos DB.

Próbujesz zaplanować pojemność migracji do usługi Azure Cosmos DB? Do planowania pojemności można użyć informacji o istniejącym klastrze bazy danych.