Nesta página, descrevemos a alta disponibilidade (HA, na sigla em inglês) para instâncias do Memorystore para Redis no nível Padrão.
Visão geral
O nível Standard protege as instâncias do Redis contra falhas comuns replicando dados para uma ou mais réplicas, além de fornecer failover automático rápido para uma réplica.
O nível Standard é provisionado com uma principal e uma ou mais réplicas. Uma
instância do nível Standard com o readReplicaMode
desativado tem
uma única réplica que não é de leitura. Uma instância de nível Standard com a
readReplicaMode
ativada tem de 1 a 5 réplicas de leitura. Para determinar se
o readReplicaMode
está ativado, consulte Como visualizar informações de réplica de leitura.
O Memorystore para Redis fornece alta disponibilidade ao replicar uma instância primária do Redis para uma ou mais réplicas. As alterações feitas nos dados na instância principal são copiadas para réplicas usando o protocolo de replicação assíncrona do Redis. Devido à natureza assíncrona da replicação, as réplicas podem ficar atrasadas em relação à principal, dependendo da taxa de gravação nela.
Em caso de falha da instância principal, a instância faz o failover automaticamente para uma réplica. Para instâncias configuradas com mais de uma réplica, a instância faz o failover automaticamente para uma réplica com o menor atraso de replicação íntegro.
Se uma instância for configurada com apenas uma réplica não lida, todas as conexões de aplicativos serão direcionadas para o endpoint principal. Se uma instância for configurada usando réplicas de leitura, os aplicativos também poderão aproveitar o endpoint de leitura para distribuir consultas de leitura em todas as réplicas.
Quando um failover é acionado
Um failover ocorre quando o Redis principal falha. Durante um failover, o endpoint primário e de leitura redirecionam automaticamente para o novo primário e para as réplicas. Todas as conexões com o endpoint principal são descartadas e as conexões do endpoint de leitura também são descartadas na réplica de leitura promovida.
Como um failover afeta seu aplicativo
Quando o failover principal é feito para a réplica, as conexões atuais com o endpoint principal da instância são descartadas. A instância ficará indisponível por alguns segundos enquanto a nova instância primária se reconecta. Ao reconectar, seu aplicativo é redirecionado automaticamente para a nova instância principal usando a mesma string de conexão ou endereço IP. Você não precisa atualizar seu aplicativo após um failover.
Durante o failover, se houver conexões com o endpoint de leitura, as conexões com a réplica que está sendo promovida para primária serão descartadas. As conexões com as outras réplicas continuam sendo exibidas durante o failover. Depois que o failover é concluído e a nova réplica fica disponível, as conexões são redirecionadas para a nova réplica.
Como repetir a conexão de instância após o failover
Quando ocorre um failover, todas as conexões do endpoint primário são descartadas e, dependendo do número de réplicas de algumas conexões de leitura.
Devido a essa perda de conexão, seu aplicativo precisa tentar restabelecer a conexão. A lógica de repetição precisa usar espera exponencial para garantir que você não sobrecarregue a instância com muitas solicitações de novas tentativas. Além de incluir a lógica de repetição, você precisa testar como um failover afeta seu aplicativo testando um failover manual.
A maioria dos clientes do Redis tem recursos de repetição incorporados que você deve aproveitar no caso de uma queda de conexão devido ao failover.
Um failover ocorre nos seguintes cenários:
- Como escalonar sua instância
- Como fazer upgrade da versão do Redis de uma instância
- Como iniciar um failover manual
- Atualizações de manutenção
Se você implementar a lógica de repetição no aplicativo para processar quedas de conexão causadas por failovers, sua instância não deverá ter um impacto significativo no desempenho. Normalmente, os problemas surgem apenas por não haver lógica de repetição.
Como visualizar o status da alta disponibilidade
É possível ver as métricas de alta disponibilidade para sua instância do Redis usando o Cloud Monitoring. Para informações sobre as métricas que o Cloud Monitoring fornece para o Memorystore para Redis, consulte Como monitorar instâncias do Redis e Métricas de monitoramento.
Para mais informações, consulte a documentação do Cloud Monitoring.
Para ver o status da replicação nativa que o Redis fornece, é possível emitir o comando INFO do Redis (em inglês) para a instância do Cloud Memorystore para Redis.