Alta disponibilidade e réplicas

Esta página explica como a arquitetura do Memorystore para Valkey oferece suporte e fornece alta disponibilidade (HA). Esta página também explica as configurações recomendadas que contribuem para melhorar a performance e a estabilidade da instância.

Alta disponibilidade

O Memorystore para Valkey é desenvolvido em uma arquitetura altamente disponível em que os clientes acessam diretamente os nós gerenciados do Memorystore para Valkey. Para isso, eles se conectam a endpoints individuais, conforme descrito em Conectar-se a uma instância do Memorystore para Valkey.

A conexão direta com os fragmentos oferece os seguintes benefícios:

  • A conexão direta evita saltos intermediários, o que minimiza o tempo de ida e volta (latência do cliente) entre o cliente e o nó Valkey.

  • No modo de cluster ativado, a conexão direta evita qualquer ponto único de falha, porque cada fragmento é projetado para falhar de forma independente. Por exemplo, se o tráfego de vários clientes sobrecarregar um slot (fragmento do keyspace), a falha do fragmento limitará o impacto ao fragmento responsável por fornecer o slot.

Recomendamos a criação de instâncias multizonas altamente disponíveis em vez de instâncias de zona única devido à maior confiabilidade que elas oferecem. No entanto, se você optar por provisionar uma instância sem réplicas, recomendamos escolher uma instância de zona única. Para mais informações, consulte Escolher uma instância de zona única se ela não usar réplicas.

Para ativar a alta disponibilidade na sua instância, provisione pelo menos um nó de réplica para cada fragmento. Você pode fazer isso ao criar a instância ou dimensionar a contagem de réplicas para pelo menos uma réplica por fragmento. As réplicas oferecem failover automático durante a manutenção planejada e falhas inesperadas de fragmentos.

Configure o cliente de acordo com as orientações em Práticas recomendadas para clientes. O uso das práticas recomendadas permite que o cliente gerencie os seguintes itens da sua instância de forma automática e sem tempo de inatividade:

  • O papel (failovers automáticos)

  • O endpoint (substituição de nó)

  • Mudanças na atribuição de slots relacionada ao modo cluster ativado (dimensionamento de saída e entrada do consumidor)

Réplicas

Uma instância do Memorystore para Valkey com alta disponibilidade é um recurso regional. Isso significa que o Memorystore for Valkey distribui nós principais e de réplica de fragmentos em várias zonas para evitar uma falha zonal. O Memorystore para Valkey oferece suporte a instâncias com 0, 1 ou 2 réplicas por nó.

É possível usar réplicas para aumentar a capacidade de leitura, mas isso pode causar a inatividade dos dados.

  • Modo cluster ativado:use o comando READONLY para estabelecer uma conexão que permita ao cliente ler as réplicas.
  • Modo de cluster desativado:conecte-se ao endpoint de leitura para se conectar a qualquer uma das réplicas disponíveis.

Formas de instâncias com modo cluster ativado

Os diagramas a seguir ilustram formas para instâncias com o modo de cluster ativado:

Com três fragmentos e nenhuma réplica por nó

Uma instância do Memorystore para Valkey com o modo cluster ativado e sem réplicas, que tem nós divididos igualmente em três zonas.

Com três fragmentos e uma réplica por nó

Uma instância do Memorystore para Valkey com o modo cluster ativado e uma réplica por nó, e os nós divididos igualmente em três zonas.

Com três fragmentos e duas réplicas por nó

Uma instância do Memorystore para Valkey com o modo de cluster ativado e duas réplicas por nó, e os nós divididos igualmente em três zonas.

Formas de instâncias com o modo de cluster desativado

Os diagramas a seguir ilustram formas para instâncias com o modo de cluster desativado:

Com duas réplicas

Uma instância do Memorystore para Valkey com o modo cluster desativado e duas réplicas e nós divididos igualmente entre três zonas.

Failover automático

As failovers automáticas em um fragmento podem ocorrer devido a manutenção ou a uma falha inesperada do nó principal. Durante um failover, uma réplica é promovida para ser a principal. É possível configurar réplicas explicitamente. O serviço também pode provisionar temporariamente réplicas extras durante a manutenção interna para evitar inatividade.

As failovers automáticas evitam a perda de dados durante as atualizações de manutenção. Para saber mais sobre o comportamento de failover automático durante a manutenção, consulte Comportamento de failover automático durante a manutenção.

Duração do failover e do reparo de nó

Os failovers automáticos podem levar dezenas de segundos para eventos não planejados, como uma falha no processo do nó principal ou uma falha de hardware. Durante esse período, o sistema detecta a falha e elege uma réplica para ser a nova principal.

O reparo de nós pode levar alguns minutos para que o serviço substitua o nó com falha. Isso vale para todos os nós principais e de réplica. Para instâncias que não são altamente disponíveis (sem réplicas provisionadas), o reparo de um nó principal com falha também leva alguns minutos.

Comportamento do cliente durante um failover não planejado

As conexões do cliente provavelmente serão redefinidas, dependendo da natureza da falha. Após a recuperação automática, as conexões precisam ser tentadas novamente com retirada exponencial para evitar a sobrecarga dos nós principais e das réplicas.

Os clientes que usam réplicas para throughput de leitura precisam estar preparados para uma degradação temporária na capacidade até que o nó com falha seja substituído automaticamente.

Gravações perdidas

Durante um failover resultante de uma falha inesperada, as gravações confirmadas podem ser perdidas devido à natureza assíncrona do protocolo de replicação do Valkey.

Os aplicativos clientes podem aproveitar o comando WAIT do Valkey para melhorar a segurança dos dados do mundo real.

Impacto do keyspace em uma falha temporária de zona única

Esta seção descreve o impacto de uma falha de zona única em uma instância do Memorystore para Valkey.

Instâncias de várias zonas

  • Instâncias de HA:se uma zona tiver uma interrupção, todo o espaço de chaves vai estar disponível para leituras e gravações, mas, como algumas réplicas de leitura estão indisponíveis, a capacidade de leitura é reduzida. Recomendamos provisionar mais capacidade do cluster para que a instância tenha capacidade de leitura suficiente no caso raro de uma única zona ficar indisponível. Quando a interrupção terminar, as réplicas na zona afetada serão restauradas, e a capacidade de leitura do cluster voltará ao valor configurado. Para mais informações, consulte Padrões para apps escalonáveis e confiáveis.

  • Instâncias sem HA (sem réplicas): se uma zona tiver uma interrupção, a parte do keyspace provisionada na zona afetada vai passar por um flush de dados e ficará indisponível para gravações ou leituras durante a interrupção. Quando a interrupção terminar, as primárias na zona afetada serão restauradas, e a capacidade do cluster voltará ao valor configurado.

Instâncias de zona única

  • Instâncias HA e não HA:se a zona em que a instância está provisionada tiver uma interrupção, o cluster ficará indisponível e os dados serão apagados. Se uma zona diferente tiver uma falha temporária, o cluster continuará a atender às solicitações de leitura e gravação.