Questa pagina descrive l'alta disponibilità (HA) per le istanze Memorystore for Redis nel livello Standard.
Panoramica
Il livello Standard protegge le istanze Redis da errori comuni replicando i dati su una o più repliche e fornendo un failover rapido automatico a una replica.
Viene eseguito il provisioning del livello Standard con una replica principale e una o più repliche. Un'istanza del livello Standard in cui readReplicaMode
è disabilitato ha una singola replica non di lettura. Un'istanza di livello Standard in cui è abilitato readReplicaMode
ha da una a cinque repliche di lettura. Per determinare se readReplicaMode
è abilitato, consulta la sezione Visualizzazione delle informazioni sulla replica di lettura.
Memorystore for Redis offre l'alta disponibilità replicando un elemento principale Redis su una o più repliche. Le modifiche apportate ai dati nell'istanza principale vengono copiate nelle repliche utilizzando il protocollo di replica asincrona Redis. A causa della natura asincrona della replica, le repliche possono subire un ritardo rispetto all'unità principale a seconda della frequenza di scrittura su quest'ultima.
In caso di errore dell'istanza principale, l'istanza esegue automaticamente il failover su una replica. Per le istanze configurate con più di una replica, l'istanza esegue automaticamente il failover su una replica con il ritardo di replica minimo che sia integro.
Se un'istanza è configurata con una sola replica non di lettura, tutte le connessioni delle applicazioni vengono indirizzate all'endpoint principale. Se un'istanza è configurata utilizzando repliche di lettura, le applicazioni possono anche utilizzare l'endpoint di lettura per distribuire le query di lettura su tutte le repliche.
Quando viene attivato un failover
Un failover si verifica in caso di errore dell'istanza primaria Redis. Durante un failover, l'endpoint primario e di lettura reindirizzano automaticamente alla nuova replica principale e alle nuove repliche. Tutte le connessioni all'endpoint principale vengono eliminate e anche le connessioni degli endpoint di lettura alla replica di lettura promossa vengono eliminate.
In che modo un failover influisce sull'applicazione
Quando l'istanza principale esegue il failover sulla replica, le connessioni esistenti all'endpoint principale dell'istanza vengono eliminate. L'istanza non sarà disponibile per alcuni secondi mentre la nuova istanza principale si riconnette. Al momento della riconnessione, l'applicazione viene reindirizzata automaticamente alla nuova piattaforma principale utilizzando la stessa stringa di connessione o lo stesso indirizzo IP. Non è necessario aggiornare la richiesta in caso di errore.
Durante il failover, se esistono connessioni all'endpoint di lettura, quelle alla replica promossa a principale vengono eliminate. Le connessioni alle altre repliche continuano a essere servite durante il failover. Una volta completato il failover e disponibile la nuova replica, le connessioni vengono reindirizzate alla nuova replica.
Nuovo tentativo di connessione dell'istanza dopo il failover
Quando si verifica un failover, tutte le connessioni dell'endpoint primario vengono ignorate e, a seconda del numero di repliche, alcune connessioni di lettura vengono terminate.
A causa della perdita della connessione, l'applicazione deve riprovare per ristabilire la connessione. La logica di nuovo tentativo dovrebbe utilizzare il backoff esponenziale per evitare di sovraccaricare l'istanza con troppe richieste di nuovo tentativo. Oltre a includere la logica per i nuovi tentativi, devi testare in che modo un failover influisce sulla tua applicazione eseguendo un failover manuale.
La maggior parte dei client Redis dispone di funzionalità integrate per i tentativi che devono essere sfruttate in caso di interruzione della connessione dovuta al failover.
Un failover si verifica nei seguenti scenari:
- Scalabilità dell'istanza
- Upgrade della versione Redis di un'istanza
- Avvio di un failover manuale
- Aggiornamenti di manutenzione
Se implementi la logica dei nuovi tentativi nell'applicazione per gestire i cali di connessione dovuti ai failover, l'istanza non dovrebbe notare un impatto significativo sulle prestazioni. In genere, i problemi nascono solo a causa della mancanza di una logica per i tentativi.
Come visualizzare lo stato per l'alta disponibilità
Puoi visualizzare le metriche di alta disponibilità per l'istanza Redis utilizzando Cloud Monitoring. Per informazioni sulle metriche fornite da Cloud Monitoring per Memorystore for Redis, vedi Monitoraggio delle istanze Redis e Metriche di Monitoring.
Per ulteriori informazioni, consulta la documentazione di Cloud Monitoring.
Per visualizzare lo stato di replica nativo fornito da Redis, puoi inviare il comando Redis INFO all'istanza Memorystore for Redis.