Configurar uma base de dados distribuída global com a API do Azure Cosmos DB para MongoDB

APLICA-SE A: MongoDB

Neste artigo, mostramos como utilizar o portal do Azure para configurar uma base de dados distribuída globalmente e ligar à mesma com a API do Azure Cosmos DB para MongoDB.

Este artigo abrange as seguintes tarefas:

Adicionar regiões de base de dados globais com o Portal do Azure

O Azure Cosmos DB está disponível em todas as regiões do Azure em todo o mundo. Depois de selecionar o nível de consistência predefinido para a sua conta de base de dados, pode associar uma ou mais regiões (dependendo da sua escolha do nível de consistência predefinido e das suas necessidades de distribuição global).

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

  2. Na página Azure Cosmos DB, selecione a conta de base de dados a modificar.

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

  4. Na página Replicar dados globalmente, selecione as regiões a adicionar ou remover, clicando em regiões do mapa e, em seguida, clique em Guardar. Existe um custo para a adição de regiões, consulte a página de preços ou o artigo Distribuir dados globalmente com o Azure Cosmos DB para obter mais informações.

    Clicar em regiões do mapa para adicioná-las ou removê-las

Depois de adicionar uma segunda região, a opção Ativação Pós-falha Manual fica ativada na página Replicar dados globalmente no portal. Pode utilizar esta opção para testar o processo de ativação pós-falha ou alterar a região de escrita principal. Depois de adicionar uma terceira região, a opção Prioridades da Ativação Pós-falha fica ativada na mesma página, para que possa alterar a ordem de ativação pós-falha para as leituras.

Selecionar regiões globais de bases de dados

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

  1. Proporcionar acesso de latência baixa aos dados pelos utilizadores finais, independentemente da respetiva localização em todo o mundo
  2. Adicionar resiliência regional para continuidade empresarial e recuperação após desastre (BCDR)

Para proporcionar latência baixa aos utilizadores finais, recomenda-se que implemente a aplicação e o Azure Cosmos DB nas regiões que correspondem àquelas onde os utilizadores da aplicação estão localizados.

Para BCDR, é recomendado adicionar regiões com base nos pares de regiões descritos no artigo Replicação entre regiões no Azure: Continuidade do negócio e recuperação após desastre .

Verificar a configuração regional

Uma forma simples de verificar a configuração global com a API do Azure Cosmos DB para MongoDB é executar o comando isMaster() a partir da Shell do Mongo.

A partir da Shell de Mongo:

   db.isMaster()

Resultados de 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"
   }

Ligar a uma região preferencial

A API do Azure Cosmos DB para MongoDB permite-lhe especificar a preferência de leitura da coleção para uma base de dados distribuída globalmente. Para leituras de baixa latência e elevada disponibilidade global, recomendamos a definição da preferência de leitura da coleção como mais próxima. Está configurada uma preferência de leitura de mais próxima para ler a partir da região mais próxima.

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

Para aplicações com uma região de leitura/escrita primária e uma região secundária para cenários de recuperação após desastre (DR), recomendamos que defina a preferência de leitura da coleção como preferencial principal. Uma preferência de leitura preferencial é configurada para ler a partir da região secundária quando a região primária está indisponível.

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

Por último, se quiser especificar manualmente as regiões de leitura. Pode definir a região Etiqueta na 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 }) }));

Já está, isto conclui este tutorial. Pode saber como gerir a consistência da sua conta replicada globalmente ao ler Níveis de consistência no Azure Cosmos DB. Para obter mais informações sobre como funciona a replicação de base de dados global no Azure Cosmos DB, veja Distribuir dados globalmente com o Azure Cosmos DB.

Passos seguintes

Neste tutorial, fez o seguinte:

  • Configurar a distribuição global com o portal do Azure
  • Configurar a distribuição global com a API do Azure Cosmos DB para MongoDB

Agora, pode avançar para o próximo tutorial para saber como desenvolver localmente com o emulador local do Azure Cosmos DB.

Está a tentar planear a capacidade de uma migração para o Azure Cosmos DB? Pode utilizar informações sobre o cluster de bases de dados existentes para o planeamento de capacidade.