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:
- Configurar a distribuição global com o portal do Azure
- Configurar a distribuição global com a API do Azure Cosmos DB para MongoDB
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).
No Portal do Azure, na barra esquerda, clique em Azure Cosmos DB.
Na página Azure Cosmos DB, selecione a conta de base de dados a modificar.
Na página da conta, clique em Replicar dados globalmente no menu.
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.
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:
- Proporcionar acesso de latência baixa aos dados pelos utilizadores finais, independentemente da respetiva localização em todo o mundo
- 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.
- Se tudo o que sabe é o número de vcores e servidores no cluster de bases de dados existente, leia sobre como estimar unidades de pedido com vCores ou vCPUs
- Se souber taxas de pedido típicas para a carga de trabalho atual da base de dados, leia sobre como estimar unidades de pedido com o planeador de capacidade do Azure Cosmos DB