Nesta página, descrevemos a alta disponibilidade para instâncias do Memorystore para Redis no nível Padrão.
Informações gerais
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 um nó principal e um ou mais nós de
réplica. Uma instância de nível Standard com a readReplicaMode
desativada tem
uma réplica não lida. 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 um nó principal do Redis para um ou mais nós de réplica. As alterações efetuadas nos dados de nó primário são copiadas para a réplica com o Protocolo de replicação assíncrona do Redis (em inglês). Devido à natureza assíncrona da replicação, uma réplica pode ficar atrasada em relação ao nó principal, dependendo da taxa de gravação no principal.
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 nó principal do Redis 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 nó principal passa para a réplica, as conexões existentes 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 o novo nó primário 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 sobre como usar o pacote de operações do Google Cloud com o Google Cloud, 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.