Configurar o banco de dados distribuído globalmente usando a API do Azure Cosmos DB para MongoDBSet up global distributed database using Azure Cosmos DB's API for 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.In this article, we show how to use the Azure portal to setup a global distributed database and connect to it using Azure Cosmos DB's API for MongoDB.

Este artigo aborda as seguintes tarefas:This article covers the following tasks:

Adicionar regiões de banco de dados globais usando o Portal do AzureAdd global database regions using the Azure portal

O Azure Cosmos DB está disponível em todas as regiões do Azure pelo mundo.Azure Cosmos DB is available in all Azure regions worldwide. 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).After selecting the default consistency level for your database account, you can associate one or more regions (depending on your choice of default consistency level and global distribution needs).

  1. No Portal do Azure, na barra esquerda, clique em BD Cosmos do Azure.In the Azure portal, in the left bar, click Azure Cosmos DB.

  2. Na página do Azure Cosmos DB, selecione a conta do banco de dados a ser modificada.In the Azure Cosmos DB page, select the database account to modify.

  3. Na página da conta, clique em Replicar dados globalmente no menu.In the account page, click Replicate data globally from the 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.In the Replicate data globally page, select the regions to add or remove by clicking regions in the map, and then click Save. 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.There is a cost to adding regions, see the pricing page or the Distribute data globally with Azure Cosmos DB article for more information.

    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.Once you add a second region, the Manual Failover option is enabled on the Replicate data globally page in the portal. Você pode usar essa opção para testar o processo de failover ou alterar a região de gravação principal.You can use this option to test the failover process or change the primary write region. 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.Once you add a third region, the Failover Priorities option is enabled on the same page so that you can change the failover order for reads.

Selecionar regiões de bancos de dados globaisSelecting global database regions

Há dois cenários comuns para configurar duas ou mais regiões:There are two common scenarios for configuring two or more regions:

  1. Fornecimento de acesso a dados de baixa latência para os usuários finais, independentemente de onde estejam localizados em todo o mundoDelivering low-latency access to data to end users no matter where they are located around the globe
  2. Adição de resiliência regional para continuidade dos negócios e recuperação de desastre (BCDR)Adding regional resiliency for business continuity and disaster recovery (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.For delivering low-latency to end users, it is recommended that you deploy both the application and Azure Cosmos DB in the regions that correspond to where the application's users are located.

Para o BCDR, é recomendável adicionar regiões com base nos pares de regiões descritos no artigo BCDR (continuidade dos negócios e recuperação de desastres): Regiões combinadas do Azure.For BCDR, it is recommended to add regions based on the region pairs described in the Business continuity and disaster recovery (BCDR): Azure Paired Regions article.

Verificando a configuração regionalVerifying your regional setup

Uma maneira simples de verificar a configuração global com a API do Cosmos DB para MongoDB é executar o comando isMaster() usando o shell do Mongo.A simple way to check your global configuration with Cosmos DB's API for MongoDB is to run the isMaster() command from the Mongo Shell.

No Shell do Mongo:From your Mongo Shell:

   db.isMaster()

Exemplos de resultados:Example results:

   {
      "_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 preferencialConnecting to a preferred region

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.The Azure Cosmos DB's API for MongoDB enables you to specify your collection's read preference for a globally distributed database. 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.For both low latency reads and global high availability, we recommend setting your collection's read preference to nearest. Uma preferência de leitura de mais próximo está configurada para ler a região mais próxima.A read preference of nearest is configured to read from the closest region.

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 secundário preferido.For applications with a primary read/write region and a secondary region for disaster recovery (DR) scenarios, we recommend setting your collection's read preference to secondary preferred. Uma preferência de leitura de secundário preferido é configurada para ler a região secundária quando a região primária não está disponível.A read preference of secondary preferred is configured to read from the secondary region when the primary region is unavailable.

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.Lastly, if you would like to manually specify your read regions. Defina a marca region dentro de sua preferência de leitura.You can set the region Tag within your read preference.

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.That's it, that completes this tutorial. Aprenda a gerenciar a consistência de sua conta globalmente replicada lendo Níveis de consistência no Azure Cosmos DB.You can learn how to manage the consistency of your globally replicated account by reading Consistency levels in 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.And for more information about how global database replication works in Azure Cosmos DB, see Distribute data globally with Azure Cosmos DB.

Próximas etapasNext steps

Neste tutorial, você fez o seguinte:In this tutorial, you've done the following:

  • Configurar a distribuição global usando o Portal do AzureConfigure global distribution using the Azure portal
  • Configurar a distribuição global usando a API do Cosmos DB para MongoDBConfigure global distribution using the Cosmos DB's API for MongoDB

Agora você pode prosseguir para o próximo tutorial e aprender a desenvolver localmente usando o emulador local do Azure Cosmos DB.You can now proceed to the next tutorial to learn how to develop locally using the Azure Cosmos DB local emulator.