Поделиться через


Настройка глобальной распределенной базы данных с помощью API Azure Cosmos DB для MongoDB

Область применения: MongoDB

В этой статье показано, как на портале Azure настроить глобальную распределенную базу данных и подключиться к ней с помощью API Azure Cosmos DB для MongoDB.

В этой статье рассматриваются следующие задачи:

  • настроили глобальное распределение на портале Azure;
  • Настройка глобального распределения с помощью API Azure Cosmos DB для MongoDB.

Добавление регионов глобальной базы данных с помощью портала Azure

Служба Azure Cosmos DB доступна во всех регионах Azure по всему миру. После выбора уровня согласованности по умолчанию для учетной записи базы данных вы можете связать один или несколько регионов (в зависимости от выбранного уровня согласованности по умолчанию и потребностей глобального распространения).

  1. На левой панели на портале Azure щелкните Azure Cosmos DB.

  2. На странице Azure Cosmos DB выберите учетную запись базы данных, которую нужно изменить.

  3. На странице учетной записи в меню щелкните Глобальная репликация данных.

  4. На странице Глобальная репликация данных выберите регионы для добавления или удаления, щелкнув их на карте, и нажмите кнопку Сохранить. Добавление регионов оплачивается. Дополнительные сведения см. на странице цен или в руководстве по глобальному распространению данных с помощью Azure Cosmos DB.

    Можно щелкать регионы на карте, чтобы добавить или удалить их

Когда вы добавите второй регион, на портале на странице Глобальная репликация данных активируется параметр Ручная отработка отказа. Этот параметр можно использовать для тестирования отработки отказа или изменения основного региона записи. После добавления третьего региона на той же странице активируется параметр Приоритеты при отработке отказа. Он позволяет изменить порядок отработки отказов для операций чтения.

Выбор регионов глобальной базы данных

Существуют два распространенных сценария настройки нескольких регионов:

  1. Обеспечение низкой задержки при обращении пользователей к данным по всему миру не зависимо от расположения.
  2. Добавление региональной устойчивости для непрерывности бизнес-процессов и аварийного восстановления (BCDR)

Чтобы обеспечить низкую задержку для пользователей, мы советуем развернуть приложение и Azure Cosmos DB в регионы, соответствующие расположению пользователей приложения.

Для BCDR мы рекомендуем добавлять регионы исходя из пар регионов, описанных в статье Репликация между регионами в Azure. Непрерывность бизнес-процессов и аварийное восстановление.

Проверка региональных настроек

Простой способ проверить глобальную конфигурацию с помощью API Azure Cosmos DB для MongoDB — запустить команду isMaster() из Оболочки Mongo.

Из оболочки Mongo:

   db.isMaster()

Пример результатов:

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

Подключение к предпочтительному региону

API Azure Cosmos DB для MongoDB позволяет указать параметры чтения коллекции для глобально распределенной базы данных. Для выполнения операций чтения с низкой задержкой и обеспечения глобальной высокой доступности рекомендуется задать в параметрах чтения коллекции значение Nearest (Ближайший). Параметр Nearest означает, что чтение будет выполняться из ближайшего региона.

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

Для приложений с основным регионом чтения и записи и дополнительным регионом для сценариев аварийного восстановления (АВАРИЙНОго восстановления) рекомендуется задать предпочтительный вариант чтения коллекции. Предпочтение чтения основного предпочтительного параметра настраивается для чтения из дополнительного региона, когда основной регион недоступен.

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

Наконец, вы можете вручную указать регион для чтения. Для этого задайте в параметрах чтения тег региона.

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

На этом руководство завершено. Сведения об управлении согласованностью глобально реплицируемой учетной записи Azure Cosmos DB см. в этой статье. Сведения о том, как функционирует репликация глобальной базы данных в Azure Cosmos DB, см. в статье о глобальном распределении данных в Azure Cosmos DB.

Следующие шаги

В этом руководстве вы выполнили следующее:

  • настроили глобальное распределение на портале Azure;
  • Настройка глобального распределения с помощью API Azure Cosmos DB для MongoDB.

Перейдите к следующему руководству, чтобы узнать о разработке в локальной среде с помощью локального эмулятора Azure Cosmos DB.

Если вы планируете ресурсы для миграции в Azure Cosmos DB, Для планирования ресурсов можно использовать сведения об имеющемся кластере базы данных.