Configurar o banco de dados distribuído globalmente usando a API do Azure Cosmos DB para MongoDB

APLICA-SE A: MongoDB

Neste artigo, mostramos como usar o portal do Azure para configurar um banco de dados distribuído globalmente e conectar-se a ele usando a API do Azure Cosmos DB para MongoDB.

Este artigo aborda as seguintes tarefas:

Adicionar regiões de banco de dados globais usando o Portal do Azure

O Azure Cosmos DB está disponível em todas as regiões do Azure pelo mundo. Após a seleção do nível de consistência padrão para sua conta de banco de dados, você pode associar uma ou mais regiões (dependendo da sua escolha do nível de consistência padrão e das necessidades de distribuição global).

  1. No Portal do Azure, na barra esquerda, clique em BD Cosmos do Azure.

  2. Na página do Azure Cosmos DB, selecione a conta do banco de dados a ser modificada.

  3. Na página da conta, clique em Replicar dados globalmente no menu.

  4. Na página Replicar dados globalmente, clicando nas regiões no mapa, selecione aquelas a serem adicionadas ou removidas e clique em Salvar. Há um custo para adicionar regiões. Veja a página de preços ou o artigo Distribuir dados globalmente com o Azure Cosmos DB para obter mais informações.

    Clicar nas regiões no mapa para adicioná-las ou removê-las

Depois de adicionar uma segunda região, a opção Failover Manual é habilitada na página Replicar dados globalmente no portal. Você pode usar essa opção para testar o processo de failover ou alterar a região de gravação principal. Depois de adicionar uma terceira região, a opção Prioridades de Failover é habilitada na mesma página para que você possa alterar a ordem de failover das leituras.

Selecionar regiões de bancos de dados globais

Há dois cenários comuns para configurar duas ou mais regiões:

  1. Fornecimento de acesso a dados de baixa latência para os usuários finais, independentemente de onde estejam localizados em todo o mundo
  2. Adição de resiliência regional para continuidade dos negócios e recuperação de desastres (BCDR)

Para oferecer baixa latência para os usuários finais, é recomendável implantar o aplicativo e o Azure Cosmos DB nas regiões que correspondem aos locais em que os usuários do aplicativo estão localizados.

Para o BCDR, é recomendável adicionar regiões com base nos pares de regiões descritos no artigo Continuidade dos negócios e recuperação de desastre (BCDR): Regiões Emparelhadas do Azure.

Verificando a configuração regional

Uma maneira simples de verificar a configuração global com a API do Azure Cosmos DB para MongoDB é executar o comando isMaster() usando o shell do Mongo.

No Shell do Mongo:

   db.isMaster()

Resultados do exemplo:

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

Conectando a uma região preferencial

A API do Azure Cosmos DB para MongoDB permite que você especifique a preferência de leitura da coleção para um banco de dados distribuído globalmente. Para leituras de baixa latência e alta disponibilidade global, recomendamos a definição de sua preferência de leitura da coleção como mais próximo. Uma preferência de leitura de mais próximo está configurada para ler a região mais próxima.

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

Para aplicativos com uma região de leitura/gravação primária e uma região secundária para cenários de DR (recuperação de desastres), recomendamos a definição da preferência de leitura da coleção como primário preferido. Uma preferência de leitura de primário preferido é configurada para ler a região secundária quando a região primária não está disponível.

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

Por fim, se você quiser especificar manualmente suas regiões de leitura. Defina a marca region dentro de sua preferência de leitura.

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

Assim, concluímos este tutorial. Aprenda a gerenciar a consistência de sua conta globalmente replicada lendo Níveis de consistência no Azure Cosmos DB. E para saber mais sobre como a replicação de banco de dados global funciona no Azure Cosmos DB, veja Distribuir dados globalmente com o Azure Cosmos DB.

Próximas etapas

Neste tutorial, você fez o seguinte:

  • Configurar a distribuição global usando o Portal do Azure
  • Configurar a distribuição global usando a API do Azure Cosmos DB para MongoDB

Agora você pode prosseguir para o próximo tutorial e aprender a desenvolver localmente usando o emulador local do Azure Cosmos DB.

Tentando fazer o planejamento da capacidade para uma migração para o Azure Cosmos DB? Você pode usar informações sobre o cluster de banco de dados existente para fazer isso.