Alta disponibilità e repliche

Questa pagina spiega in che modo l'architettura del cluster di Memorystore for Valkey supporta e fornisce la disponibilità elevata (HA). Questa pagina spiega anche le configurazioni consigliate che contribuiscono a migliorare le prestazioni e la stabilità delle istanze.

Alta disponibilità

Memorystore for Valkey è basato su un'architettura ad alta disponibilità in cui i client accedono direttamente alle VM Memorystore for Valkey gestite. I client eseguono questa operazione connettendosi ai singoli indirizzi di rete dello shard, come descritto in Connettersi a un'istanza Memorystore for Valkey.

La connessione diretta ai frammenti offre i seguenti vantaggi:

  • La connessione diretta evita qualsiasi punto di errore singolo perché ogni shard è progettato per fallire in modo indipendente. Ad esempio, se il traffico di più client sovraccarica uno slot (chunk dello spazio chiavi), l'errore dello shard limita l'impatto allo shard responsabile del servizio dello slot.

  • La connessione diretta evita i hop intermedi, il che riduce al minimo il tempo di round trip (latenza del client) tra il client e la VM Valkey.

Consigliamo di creare istanze multizona ad alta disponibilità anziché istanze monozona per la maggiore affidabilità che offrono. Tuttavia, se scegli di eseguire il provisioning di un'istanza senza repliche, ti consigliamo di scegliere un'istanza a zona singola. Per ulteriori informazioni, vedi Scegliere un'istanza a zona singola se l'istanza non utilizza repliche.

Per attivare l'alta disponibilità per l'istanza, devi eseguire il provisioning di almeno un nodo replica per ogni shard. Puoi farlo durante la creazione dell'istanza oppure puoi modificare il numero di repliche in modo che sia almeno 1 replica per shard. Le repliche forniscono il failover automatico durante la manutenzione pianificata e in caso di errori imprevisti dello shard.

Devi configurare il client in base alle indicazioni riportate nelle best practice per i client. L'utilizzo delle best practice consigliate consente al cliente di gestire automaticamente e in modo corretto il ruolo (failover automatici) e le modifiche all'assegnazione degli slot (sostituzione dei nodi, scalabilità in/out dei consumatori) per l'istanza senza tempi di riposo.

Repliche

Un'istanza Memorystore for Valkey ad alta disponibilità è una risorsa di regione. Ciò significa che le VM principali e di replica degli shard sono distribuite su più zone per proteggersi da un'interruzione zonale. Memorystore for Valkey supporta istanze con 0, 1 o 2 repliche per nodo.

Puoi utilizzare le repliche per aumentare il throughput di lettura scalando le letture. Per farlo, devi utilizzare il comando READONLY per stabilire una connessione che consenta al client di leggere dalle repliche.

Forma dell'istanza con 0 repliche per nodo

Un'istanza Memorystore for Valkey senza repliche con nodi divisi equamente in tre zone.

Forma dell'istanza con 1 replica per nodo

Un'istanza Memorystore for Valkey con una replica per nodo e nodi divisi equamente in tre zone.

Forma dell'istanza con 2 repliche per nodo

Un'istanza Memorystore for Valkey con due repliche per nodo e nodi divisi equamente in tre zone.

Failover automatico

I failover automatici all'interno di uno shard possono verificarsi a causa di manutenzione o di un errore imprevisto del nodo principale. Durante un failover, una replica viene promossa a principale. Puoi configurare le repliche in modo esplicito. Il servizio può anche eseguire il provisioning temporaneo di repliche aggiuntive durante la manutenzione interna per evitare tempi di riposo.

I failover automatici impediscono la perdita di dati durante gli aggiornamenti di manutenzione. Per informazioni dettagliate sul comportamento del failover automatico durante la manutenzione, vedi Comportamento del failover automatico durante la manutenzione.

Durata del failover e della riparazione del nodo

I failover automatici possono richiedere tempi nell'ordine di decine di secondi per eventi imprevisti come un arresto anomalo del processo del nodo principale o un guasto hardware. Durante questo periodo, il sistema rileva l'errore e elegge una replica come nuova principale.

La riparazione del nodo può richiedere del tempo, nell'ordine di alcuni minuti, prima che il servizio possa sostituire il nodo in cui si è verificato l'errore. Questo vale per tutti i nodi principali e di replica. Per le istanze che non sono a disponibilità elevata (nessuna replica di cui è stato eseguito il provisioning), la riparazione di un nodo principale in stato di errore richiede anche del tempo, nell'ordine di alcuni minuti.

Comportamento del client durante un failover imprevisto

È probabile che le connessioni dei client vengano reimpostate a seconda della natura dell'errore. Dopo il recupero automatico, le connessioni devono essere riprovate con il backoff esponenziale per evitare il sovraccarico dei nodi principali e delle repliche.

I client che utilizzano le repliche per il throughput di lettura devono essere preparati a un degrado temporaneo della capacità fino alla sostituzione automatica del nodo in stato di errore.

Scritture perse

Durante un failover a seguito di un errore imprevisto, le scritture confermate potrebbero essere perse a causa della natura asincrona del protocollo di replica di Valkey.

Le applicazioni client possono utilizzare il comando Valkey WAIT per migliorare la sicurezza dei dati reali.