Configurar a georreplicação ativa para as instâncias da Cache do Azure para Redis Enterprise
Neste artigo, você aprenderá a configurar um cache replicado geograficamente ativo usando o portal do Azure.
A replicação geográfica ativa agrupa até cinco instâncias do Cache Redis do Enterprise Azure em um único cache que abrange todas as regiões do Azure. Todas as instâncias atuam como caches locais e principais. Uma aplicação decide qual a instância ou instâncias a utilizar para os pedidos de leitura e escrita.
Nota
A transferência de dados entre regiões do Azure é cobrada a taxas de largura de banda padrão.
Âmbito da disponibilidade
Escalão de serviço | Básico, Standard | Premium | Empresa, Enterprise Flash |
---|---|---|---|
Disponível | No | No | Sim |
A camada Premium do Cache Redis do Azure oferece uma versão de replicação geográfica chamada replicação geográfica passiva. A replicação geográfica passiva fornece uma configuração ativa-passiva.
Pré-requisitos de georreplicação ativa
Existem algumas restrições quando se utiliza a georreplicação ativa:
- Apenas são suportados os módulos RediSearch e RedisJSON
- Na camada Enterprise Flash, apenas a política de remoção sem remoção pode ser usada. Todas as políticas de remoção são suportadas na camada Enterprise .
- A persistência de dados não é suportada porque a georreplicação ativa proporciona uma experiência superior.
- Não é possível adicionar um cache existente (ou seja, em execução) a um grupo de replicação geográfica. Você só pode adicionar um cache a um grupo de replicação geográfica ao criar o cache.
- Todas as caches num grupo de georreplicação devem ter a mesma configuração. Por exemplo, todas as caches têm de ter a mesma SKU, capacidade, política de expulsão, política de agrupamento, módulos e definição do TLS.
- Não pode utilizar os comandos
FLUSHALL
eFLUSHDB
do Redis quando utilizar a georreplicação ativa. A proibição dos comandos evita a eliminação não intencional de dados. Em vez disso, utilize a operação de descarga a partir do portal. - A replicação geográfica ativa não é suportada no E1 e em nenhum Flash SKUs.
Criar ou associar um grupo de georreplicação ativa
Ao criar um novo recurso do Cache do Azure para Redis, selecione a guia Avançado . Preencha a primeira parte do formulário, incluindo a política de clustering. Para obter mais informações sobre como escolher a política de clustering, consulte Clustering .
Selecione Configurar para configurar a georreplicação ativa.
Crie um novo grupo de replicação para uma primeira instância de cache. Ou, selecione uma existente da lista.
Selecione Configurar para concluir.
Aguarde até que a primeira cache seja criado com êxito. Quando terminar, irá ver Configurado definido como Georreplicação ativa. Repita os passos acima para cada instância de cache no grupo de georreplicação.
Remover de um grupo de georreplicação ativa
Para remover uma instância de cache de um grupo de georreplicação ativa, basta eliminar a instância. As restantes instâncias reconfiguram-se então automaticamente.
Forçar a desvinculação se houver uma interrupção de região
No caso de uma das caches do seu grupo de replicação estar indisponível devido a uma indisponibilidade na região, pode forçar a remoção da cache indisponível do grupo de replicação. Depois de aplicar Forçar desvinculação a um cache, não é possível sincronizar os dados gravados nesse cache de volta ao grupo de replicação após forçar a desvinculação.
Você deve remover o cache indisponível porque os caches restantes no grupo de replicação começam a armazenar os metadados que não foram compartilhados no cache indisponível. Quando isto acontece, as caches disponíveis no seu grupo de replicação podem ficar sem memória.
Aceda ao portal do Azure e selecione uma das caches no grupo de replicação que ainda está disponível.
Selecione a georreplicação ativa no menu Recursos no lado esquerdo para ver as definições no painel de trabalho.
Selecione a cache na qual necessita de forçar a desassociação, marcando a caixa.
Selecione Forçar desassociação e, em seguida, OK para confirmar.
Quando a disponibilidade da região afetada for restaurada, tem de eliminar a cache afetada e recriá-la para a adicionar novamente ao grupo de replicação.
Configurar a georreplicação ativa utilizando a CLI do Azure ou o PowerShell
CLI do Azure
Utilize a CLI do Azure para criar uma nova cache e um grupo de georreplicação, ou para adicionar uma nova cache a um grupo de georreplicação existente. Para obter mais informações, consulte criar az redisenterprise.
Criar nova instância Enterprise em um novo grupo de replicação geográfica usando a CLI do Azure
Este exemplo cria uma nova instância de cache do Azure Cache for Redis Enterprise E10 chamada Cache1 na região Leste dos EUA. Em seguida, a cache é adicionada a um novo grupo de georreplicação ativa chamado replicationGroup:
az redisenterprise create --location "East US" --cluster-name "Cache1" --sku "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"
Para configurar corretamente a georreplicação ativa, o ID da instância de cache que está a ser criada deve ser adicionado com o parâmetro --linked-databases
. O ID está no formato:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Criar nova instância Enterprise em um grupo de replicação geográfica existente usando a CLI do Azure
Este exemplo cria uma nova instância de cache Enterprise E10 chamada Cache2 na região Oeste dos EUA. Em seguida, o script adiciona a cache ao replicationGroup
grupo de georreplicação ativa criado num procedimento anterior. Desta forma, está associado numa configuração ativo-ativo com Cache1.
az redisenterprise create --location "West US" --cluster-name "Cache2" --sku "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"
Tal como anteriormente, tem de listar a Cache1 e Cache2 utilizando o parâmetro --linked-databases
.
Azure PowerShell
Utilize o Azure PowerShell para criar uma nova cache e um grupo de georreplicação, ou para adicionar uma nova cache a um grupo de georreplicação existente. Para obter mais informações, consulte New-AzRedisEnterpriseCache.
Criar nova instância Enterprise em um novo grupo de replicação geográfica usando o PowerShell
Este exemplo cria uma nova instância de cache do Azure Cache for Redis Enterprise E10 chamada Cache1 na região Leste dos EUA. Em seguida, a cache é adicionada a um novo grupo de georreplicação ativa chamado replicationGroup:
New-AzRedisEnterpriseCache -Name "Cache1" -ResourceGroupName "myResourceGroup" -Location "East US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'
Para configurar corretamente a georreplicação ativa, o ID da instância de cache que está a ser criada deve ser adicionado com o parâmetro -LinkedDatabase
. O ID está no formato:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Criar nova instância Enterprise em um grupo de replicação geográfica existente usando o PowerShell
Este exemplo cria uma nova instância de cache Enterprise E10 chamada Cache2 na região Oeste dos EUA. Em seguida, o script adiciona o cache ao grupo de replicação geográfica ativa replicationGroup criado no procedimento anterior. Após a execução do comando, os dois caches, Cache1 e Cache2, são vinculados em uma configuração ativa-ativa.
New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'
Tal como anteriormente, tem de listar a Cache1 e Cache2 utilizando o parâmetro -LinkedDatabase
.
Dimensionamento de instâncias num grupo de georreplicação
É possível dimensionar instâncias configuradas para usar replicação geográfica ativa. No entanto, um grupo de georreplicação com uma mistura de diferentes tamanhos de cache pode criar problemas. Para evitar que esses problemas ocorram, todos os caches em um grupo de replicação geográfica precisam ter o mesmo tamanho e capacidade.
Como é difícil dimensionar simultaneamente todas as instâncias no grupo de replicação geográfica, o Cache Redis do Azure tem um mecanismo de bloqueio. Se você dimensionar uma instância em um grupo de replicação geográfica, a VM subjacente será dimensionada, mas a memória disponível será limitada ao tamanho original até que as outras instâncias também sejam dimensionadas. Quaisquer outras operações de dimensionamento para as instâncias restantes são bloqueadas até que correspondam à mesma configuração do primeiro cache a ser dimensionado.
Exemplo de dimensionamento
Por exemplo, você pode ter três instâncias em seu grupo de replicação geográfica, todas instâncias Enterprise E10:
Nome da Instância | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | Empresa E10 | Empresa E10 | Empresa E10 |
Digamos que você queira expandir cada instância desse grupo de replicação geográfica para uma instância do Enterprise E20. Primeiro, você dimensionaria um dos caches até um E20:
Nome da Instância | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | Empresa E20 | Empresa E10 | Empresa E10 |
Neste ponto, as Redis01
instâncias e Redis02
só podem ser dimensionadas para uma instância do Enterprise E20. Todas as outras operações de dimensionamento são bloqueadas.
Nota
A Redis00
instância não está impedida de escalar ainda mais neste momento. Mas ele é bloqueado uma vez Redis01
ou Redis02
é dimensionado para ser um Enterprise E20.
Depois que cada instância é dimensionada para a mesma camada e tamanho, todos os bloqueios de dimensionamento são removidos:
Nome da Instância | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | Empresa E20 | Empresa E20 | Empresa E20 |
Operação de limpeza
Devido à possibilidade de perda inadvertida de dados, não é possível utilizar os comandos FLUSHALL
e FLUSHDB
do Redis com qualquer instância de cache que resida num grupo de georreplicação. Em vez disso, utilize o botão Limpar Cache(s) localizado na parte superior do painel de trabalho Georreplicação ativa.
Métrica de replicação geográfica
A métrica Integridade da Replicação Geográfica na camada Enterprise do Cache Redis do Azure ajuda a monitorar a integridade dos clusters replicados geograficamente. Use essa métrica para monitorar o status de sincronização entre réplicas geográficas.
Para monitorar a métrica Integridade da Replicação Geográfica no portal do Azure:
Abra o portal do Azure e selecione sua instância do Cache do Azure para Redis.
No menu Recurso, selecione Métricas na seção Monitoramento.
Selecione Adicionar métrica e selecione a métrica Integridade da replicação geográfica.
Se necessário, aplique filtros para réplicas geográficas específicas.
Você pode configurar um alerta para notificá-lo se a métrica Integridade da replicação geográfica emitir um valor não íntegro (0) continuamente por mais de 60 minutos.
Selecione Nova regra de alerta.
Defina a condição a ser acionada se o valor da métrica for 0 por pelo menos 60 minutos, o tempo recomendado.
Adicione grupos de ação para notificações, por exemplo: e-mail, SMS e outros.
Salve o alerta.
Para obter mais informações sobre como configurar alertas para o cache Redis Enterprise, consulte a seção de alertas em Monitorar caches Redis.
Importante
Essa métrica pode aparecer temporariamente como não íntegra devido a operações de rotina, como eventos de manutenção ou dimensionamento, iniciadas pelo Azure ou pelo cliente. Para evitar falsos alarmes, recomendamos a configuração de uma janela de observação de 60 minutos, onde a métrica continua a permanecer insalubre como o momento apropriado para gerar um alerta, pois pode indicar um problema que requer intervenção.
Problemas comuns do lado do cliente que podem causar problemas de sincronização entre réplicas geográficas
Uso de hashtags personalizadas – O uso de hashtags personalizadas no Redis pode levar a uma distribuição desigual de dados entre fragmentos, o que pode causar problemas de desempenho e problemas de sincronização em réplicas geográficas, portanto, evite usar hashtags personalizadas, a menos que o banco de dados precise executar várias operações de chave.
Tamanho de chave grande - Chaves grandes podem criar problemas de sincronização entre réplicas geográficas. Para manter um desempenho suave e uma replicação confiável, recomendamos manter os tamanhos das chaves abaixo de 500 MB ao usar a replicação geográfica. Se o tamanho da chave individual se aproximar de 2 GB, o cache enfrentará problemas de integridade de replicação geográfica.
Limpar caches utilizando a CLI do Azure ou o PowerShell
A CLI do Azure e o PowerShell também podem ser utilizados para ativar uma operação de limpeza. Para obter mais informações sobre como utilizar a CLI do Azure, consulte limpar base de dados az redisenterprise. Para obter mais informações sobre como utilizar o PowerShell, consulte Invoke-AzRedisEnterpriseCacheDatabaseFlush.
Importante
Tenha cuidado ao utilizar a funcionalidade Limpar Caches. Selecionar o botão remove todos os dados da cache atual e de TODAS as caches associadas no grupo de georreplicação.
Faça a gestão do acesso à funcionalidade utilizando Controlo de acesso baseado em funções do Azure. Apenas os utilizadores autorizados devem ter acesso para limpar todas as caches.
Próximos passos
Saiba mais sobre os recursos do Cache do Azure para Redis.