Nesta página, explicamos como a arquitetura do Memorystore para Valkey oferece suporte e alta disponibilidade (HA). Também explicamos as configurações recomendadas que contribuem para melhorar o desempenho e a estabilidade da instância.
Alta disponibilidade
O Memorystore para Valkey é criado em uma arquitetura de alta disponibilidade em que os clientes acessam nós gerenciados do Memorystore para Valkey diretamente. Os clientes fazem isso se conectando a endpoints individuais, conforme descrito em Conectar-se a uma instância do Memorystore para Valkey.
A conexão direta a fragmentos oferece os seguintes benefícios:
A conexão direta evita saltos intermediários, o que minimiza o tempo de retorno (latência do cliente) entre o cliente e o nó do 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 (pedaço de espaço de chaves), a falha do fragmento limita o impacto ao fragmento responsável por atender ao slot.
Configurações recomendadas
Recomendamos criar instâncias multizonais de alta disponibilidade em vez de instâncias de zona única devido à melhor 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 Quando usar uma instância de zona única.
Para ativar a alta disponibilidade da instância, provisione pelo menos um nó de réplica para cada fragmento. Você pode fazer isso ao criar a instância ou escalonar 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 falha inesperada do fragmento.
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 processe os seguintes itens da instância automaticamente e sem tempo de inatividade:
O papel (failovers automáticos)
O endpoint (substituição de nó)
Mudanças na atribuição de slots relacionadas ao modo de cluster ativado (escalonamento horizontal de consumidores)
Réplicas
Uma instância de alta disponibilidade do Memorystore para Valkey é um recurso regional. O Memorystore para Valkey distribui as VMs principal e de réplica de fragmentos em várias zonas para proteger contra uma interrupção zonal. O Memorystore para Valkey oferece suporte a instâncias com 0 a 5 réplicas por nó.
É possível usar réplicas para aumentar a capacidade de leitura, mas isso pode causar dados desatualizados.
- Modo de cluster ativado:use o comando
READONLYpara estabelecer uma conexão que permita que o cliente leia das réplicas. - Modo de cluster desativado: Conecte-se ao endpoint do leitor para se conectar a qualquer uma das réplicas disponíveis.
Formas de instância com o modo de cluster ativado
Os diagramas a seguir ilustram formas de instâncias com o modo de cluster ativado:
Forma de instância com três fragmentos e zero réplicas por nó

Forma de instância com três fragmentos e uma réplica por nó

Forma de instância com três fragmentos e várias réplicas por nó

Formas de instância com o modo de cluster desativado
O diagrama a seguir ilustra uma forma de instâncias com o modo de cluster desativado:
Forma de instância com várias réplicas

Failover automático
Failovers automáticos em um fragmento podem ocorrer devido à manutenção ou a uma falha inesperada do nó principal. Durante um failover, uma réplica é promovida 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 qualquer tempo de inatividade.
Os failovers automáticos evitam a perda de dados durante as atualizações de manutenção. Para detalhes 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ós
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 minutos para que o serviço substitua o nó com falha. Isso é válido para todos os nós principal e de réplica. Para instâncias que não são de alta disponibilidade (sem réplicas provisionadas), o reparo de um nó principal com falha também leva minutos.
Comportamento do cliente durante um failover não planejado
É provável que as conexões do cliente sejam redefinidas, dependendo da natureza da falha. Após a recuperação automática, as conexões precisam ser repetidas com espera exponencial para evitar a sobrecarga dos nós principal e de réplica.
Os clientes que usam réplicas para capacidade de processamento 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 reconhecidas podem ser perdidas devido à natureza assíncrona do protocolo de replicação do Valkey.
Os aplicativos cliente podem aproveitar o comando WAIT do Valkey para melhorar a segurança dos dados reais.
Impacto de uma interrupção de zona única no espaço de chaves
Esta seção descreve o impacto de uma interrupção de zona única em uma instância do Memorystore para Valkey.
Instâncias multizonais
Instâncias de HA:se uma zona tiver uma interrupção, todo o espaço de chaves estará disponível para leituras e gravações, mas, como algumas réplicas de leitura estão indisponíveis, a capacidade de leitura será reduzida. Recomendamos o provisionamento excessivo da capacidade do cluster para que a instância tenha capacidade de leitura suficiente, no caso raro de uma interrupção de zona única. Quando a interrupção terminar, as réplicas na zona afetada serão restauradas e a capacidade de leitura do cluster retornará ao valor configurado. Para mais informações, consulte Padrões para aplicativos escalonáveis e confiáveis.
Instâncias não HA (sem réplicas) : se uma zona tiver uma interrupção, a parte do espaço de chaves provisionada na zona afetada passará por uma descarga de dados e ficará indisponível para gravações ou leituras durante a interrupção. Quando a interrupção terminar, as instâncias principais na zona afetada serão restauradas e a capacidade do cluster retornará ao valor configurado.
Instâncias de zona única
- Instâncias HA e não HA:se a zona em que a instância é provisionada tiver uma interrupção, o cluster ficará indisponível e os dados serão descarregados. Se uma zona diferente tiver uma interrupção, o cluster continuará atendendo às solicitações de leitura e gravação.
Práticas recomendadas
Esta seção descreve as práticas recomendadas para alta disponibilidade e réplicas.
Adicionar uma réplica
A adição de uma réplica requer um snapshot RDB. Os snapshots RDB usam um fork de processo e um mecanismo de "cópia na gravação" para fazer um snapshot dos dados do nó. Dependendo do padrão de gravações nos nós, a memória usada dos nós aumenta à medida que as páginas afetadas pelas gravações são copiadas. A memória ocupada pode ser até o dobro do tamanho dos dados no nó.
Para garantir que os nós tenham memória suficiente para concluir o snapshot, mantenha ou
defina maxmemory em 80% da
capacidade do nó para que 20% sejam reservados para a sobrecarga. Essa sobrecarga de memória, além de monitorar snapshots, ajuda a gerenciar sua carga de trabalho para ter snapshots bem-sucedidos. Além disso, ao adicionar réplicas, reduza o tráfego de gravação o máximo possível. Para mais informações, consulte Monitorar o uso da memória de uma instância.