Alta disponibilidade

Nesta página, descrevemos a alta disponibilidade para instâncias do Memorystore para Redis no nível Padrão. O nível padrão oferece alta disponibilidade por meio da replicação e da capacidade de failover automático. O Memorystore para Redis não usa o Redis Sentinel para alta disponibilidade.

O que é alta disponibilidade

O Memorystore para Redis fornece alta disponibilidade replicando um nó principal do Redis para um nó de réplica. O nó de réplica é uma cópia do nó principal que replica as alterações feitas nele.

Cada instância do Memorystore para Redis no nível Standard é provisionada com um nó primário e um nó de réplica. Solicitações de aplicativo são direcionadas ao nó principal. As alterações efetuadas nos dados do nó principal são copiadas para a réplica com o Protocolo de replicação assíncrona do Redis.

O que a alta disponibilidade oferece

Se o nó principal falhar, o serviço do Memorystore para Redis acionará um failover. O serviço promove a réplica como um novo nó principal e, após a recuperação, o antigo nó principal passa a ser a réplica. Em essência, os nós trocam de papel.

Para tolerar falhas de zona, o nó primário e o nó de réplica estão localizados em diferentes zonas dentro da mesma região. Para especificar as zonas para os nós primários e de réplica, é necessário criar a instância do Redis usando a ferramenta gcloud.

Uma instância de nível principal preserva os dados da instância no caso de uma falha de nó único, porque os dados são salvos no nó que não falha. Se o nó principal e o nó de réplica falharem ao mesmo tempo devido a uma falha simultânea em várias zonas, os dados não poderão ser recuperados.

Quando um failover é acionado

Um failover ocorre quando o nó principal do Redis falha. Durante o failover, todas as solicitações para o nó principal são redirecionadas automaticamente para a réplica, e a instância do Memorystore para Redis continua a responder ao aplicativo.

Como o failover afeta seus aplicativos

Quando o nó principal faz o failover para a réplica, as conexões atuais com o Memorystore para Redis são descartadas. No entanto, ao reconectar, seu aplicativo é redirecionado automaticamente para ao novo nó principal usando a mesma string de conexão ou endereço IP. Você não precisa atualizar seu aplicativo após um failover.

Enquanto o serviço do Memorystore para Redis promove a réplica para principal, sua instância do Memorystore para Redis fica temporariamente indisponível. Cada nó está localizado em uma única zona, por isso, falhas zonais podem resultar em um tempo de recuperação prolongado. Durante esse tempo, há apenas uma cópia dos dados.

Como repetir a conexão de instância após o failover

Um failover sempre leva à queda da conexão. Isso é necessário porque os endereços IP e os papéis de chave de réplica são trocados internamente. No entanto, ainda é preciso acessar a instância do Redis usando o endereço IP estático dela.

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:

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 da instância do Redis usando o pacote de operações do Google Cloud. Para informações sobre as métricas que o pacote de operações do Google Cloud fornece para o Memorystore para Redis, consulte Como monitorar instâncias do Redis. Para mais informações sobre como usar o pacote de operações do Google Cloud com o Google Cloud, consulte a documentação do Stackdriver Monitoring.

Para ver o status da replicação nativa fornecida pelo Redis, emita o comando INFO do Redis para a instância do Memorystore para Redis.

A seguir