Disponibilità elevata in Cache nel ruolo di Azure
Importante
Microsoft consiglia tutti i nuovi sviluppi che usano Cache Redis di Azure. Per la documentazione e le indicazioni correnti sulla scelta di un'offerta di Cache di Azure, vedere Quale offerta di Cache di Azure è adatta per l'utente?
In-Role Cache consente di mantenere la disponibilità elevata per gli oggetti memorizzati nella cache. Usare le proprietà del ruolo di Azure per abilitare la disponibilità elevata per ogni cache che richiede questa funzionalità. Non è necessario apportare modifiche al codice. È sufficiente ricalcolare la capacità di memoria richiesta per il carico di lavoro. È possibile eseguire questa operazione attivando l'impostazione relativa alla disponibilità elevata nel foglio di calcolo per la pianificazione della capacità. Per altre informazioni, vedere Considerazioni sulla pianificazione della capacità per Cache di In-Role di Azure.
Con la disponibilità elevata, gli oggetti memorizzati nella cache vengono replicati nella stessa distribuzione del servizio cloud per garantire la resilienza in caso di errore hardware. Per aumentare la disponibilità, le copie secondarie vengono inoltre posizionate in domini di errore e di aggiornamento differenti. Se una delle macchine virtuali nel cluster di cache diventa inattiva per un qualsiasi motivo, il cluster di cache può usare le copie secondarie per impedire la perdita dei dati.
Architecture
La disponibilità elevata richiede più istanze del ruolo associato. Una seconda copia dell'elemento memorizzato nella cache viene mantenuta in un'istanza separata che appartiene a un dominio di errore e a un dominio di aggiornamento differenti. In questo modo, se un'istanza non risulta più attiva, è disponibile una copia di backup in un'altra istanza. In uno scenario di questo tipo, la copia secondaria viene impostata come principale e viene creata una nuova copia secondaria in una delle istanze rimanenti, in modo da mantenere la disponibilità elevata.
Per implementare la disponibilità elevata, tutte le operazioni di scrittura della cache vengono eseguite sia sulla copia principale sia su quella secondaria.
Nota
Tenere presente che, anche se la disponibilità elevata è disabilitata, il cluster di cache tenta di mantenere i dati nei casi di arresto pianificato, ad esempio se viene eseguito un riavvio. In questo scenario, il cluster di cache tenta di trasferire gli elementi memorizzati nella cache ad altri server prima dell'arresto. Tuttavia, a seconda della quantità di dati da trasferire, non è garantito il completamento dell'arresto normale. Inoltre, diversamente dagli scenari con disponibilità elevata, nei casi di arresto imprevisto i dati non vengono mantenuti.
Considerazioni
Il ruolo che ospita In-Role cache deve essere configurato per l'esecuzione in almeno quattro istanze. La disponibilità elevata può essere abilitata sui ruoli configurati per due o tre istanze in esecuzione, ma non è consigliabile per i due motivi seguenti.
Azure a volte riavvia le macchine virtuali per la manutenzione di routine. Anche gli aggiornamenti sul posto di un'applicazione comportano la disconnessione delle macchine virtuali. In entrambi gli scenari è preferibile avere almeno tre server nel cluster di cache. In questo modo, se uno dei server non risulta più attivo, il cluster di cache disporrà comunque di altri tre server in cui creare copie primarie e secondarie degli oggetti memorizzati nella cache. Con un solo server in esecuzione, la cache è comunque accessibile, ma non è possibile usufruire della disponibilità elevata.
Anche se tre server sono in grado di soddisfare il precedente requisito, è consigliabile l'uso di quattro server. Questo consente una distribuzione più uniforme delle copie principali nei domini di errore, contribuendo così a una distribuzione più efficiente dei dati nel cluster di cache e di conseguenza al miglioramento dei modelli e delle prestazioni del traffico di rete.
Se un'istanza non risulta più disponibile, per un breve intervallo di tempo le copie secondarie vengono impostate come principali e le informazioni di routing vengono aggiornate. Durante tale periodo, i client ricevono eccezioni DataCacheException con un ErrorCode of RetryLater. In-Role le applicazioni cache devono usare la normale gestione degli errori e la logica di ripetizione dei tentativi per reagire correttamente a questa condizione.
Poiché tutte le attività di scrittura vengono eseguite sia sulla copia principale che su quella secondaria, la disponibilità elevata determina un aumento della latenza e una diminuzione della velocità effettiva. Questo può rappresentare un ragionevole compromesso per le cache che usufruiscono dei vantaggi della disponibilità elevata.
Importante
Per definizione, l'utilizzo della disponibilità elevata moltiplica per due la quantità di memoria necessaria per ogni elemento memorizzato nella cache. Tenere in considerazione l'impatto di questi fattori sulla memoria durante le attività di pianificazione della capacità. Per altre informazioni, vedere Considerazioni sulla pianificazione della capacità per Cache di In-Role di Azure.
Per abilitare la disponibilità elevata
Fare doppio clic sul ruolo con In-Role Cache abilitata.
Nella scheda Configurazione verificare che Conteggio istanze sia impostato su
4
o su un valore superiore.Se per una cache è necessaria la disponibilità elevata, nella scheda Caching selezionare la casella di controllo Disponibilità elevata. La seguente schermata mostra l'opzione Disponibilità elevata abilitata per due delle tre cache.