Configurar o banco de dados distribuído globalmente usando a API do Azure Cosmos DB para MongoDB
APLICA-SE AO: 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:
- Configurar a distribuição global usando o Portal do Azure
- Configurar a distribuição global usando a API do Azure Cosmos DB para MongoDB
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).
No Portal do Azure, na barra esquerda, clique em BD Cosmos do Azure.
Na página do Azure Cosmos DB, selecione a conta do banco de dados a ser modificada.
Na página da conta, clique em Replicar dados globalmente no menu.
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.
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:
- Fornecimento de acesso a dados de baixa latência para os usuários finais, independentemente de onde estejam localizados em todo o mundo
- 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.
- Se você sabe apenas o número de vCores e servidores no cluster de banco de dados existente, leia sobre como estimar unidades de solicitação com vCores ou vCPUs
- Se souber as taxas de solicitação típicas da carga de trabalho do banco de dados atual, leia sobre como estimar unidades de solicitação usando o planejador de capacidade do Azure Cosmos DB