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 degli 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.
Configurazioni consigliate
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 errore dello shard imprevisto.
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 regionale. Ciò significa che le VM principali e di replica dei frammenti 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.
A tale scopo, 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
Forma dell'istanza con 1 replica per nodo
Forma dell'istanza con 2 repliche per nodo
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 cui si è verificato l'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.
Impatto dello spazio chiavi di un'interruzione di una singola zona
Questa sezione descrive l'impatto di un'interruzione di una singola zona su un'istanza Memorystore for Valkey.
Istanze multizona
Istanze HA: se in una zona si verifica un'interruzione, l'intero spazio chiavi è disponibile per letture e scritture, ma poiché alcune repliche di lettura non sono disponibili, la capacità di lettura è ridotta. Ti consigliamo vivamente di eseguire il provisioning eccessivo della capacità del cluster in modo che l'istanza abbia una capacità di lettura sufficiente, nel raro caso di un'interruzione di una singola zona. Al termine dell'interruzione, le repliche nella zona interessata vengono ripristinate e la capacità di lettura del cluster torna al valore configurato. Per ulteriori informazioni, consulta Modelli per app scalabili e affidabili.
Istanze non HA (senza repliche): se in una zona si verifica un'interruzione, la parte dello spazio chiavi di cui è stato eseguito il provisioning nella zona interessata viene sottoposta a uno svuotamento dei dati e non è disponibile per le scritture o le letture per la durata dell'interruzione. Al termine dell'interruzione, i principali nella zona interessata vengono ripristinati e la capacità del cluster torna al valore configurato.
Istanze a zona singola
- Entrambe le istanze HA e non HA: se si verifica un'interruzione nella zona in cui è stato eseguito il provisioning dell'istanza, il cluster non è disponibile e i dati vengono svuotati. Se si verifica un'interruzione in un'altra zona, il cluster continua a gestire le richieste di lettura e scrittura.