I valori predefiniti sono spesso suggeriti come parte del meccanismo di failover per i microservizi. A un livello elevato, per qualsiasi servizio (ad esempio microservizi qui) la natura dell'operazione può essere classificata in termini di lettura o scrittura.
- Avere valori predefiniti per le operazioni di scrittura non sembra affidabile.
-
I valori di ritorno per le operazioni di lettura in termini di dimensioni dei dati possono (??) essere classificati come segue:
- Leggi i dati di ritorno di piccole / medie dimensioni
- Leggi restituendo una grande quantità di dati
Supponiamo che la fonte dei dati sia una cache altamente disponibile [utilizzata per prestazioni, evitamento round trip ecc. e che abbia il proprio ciclo di aggiornamento].
Ora, quando la cache è inattivo, il piano di failover può essere:
- Quando la dimensione dei dati è piccola - Tornando al sistema attuale per recuperare i dati, (supponendo che il tempo impiegato sia compreso nell'intervallo milli sec) su un'invocazione in tempo reale, sembra ok.
- Quando la dimensione dei dati è enorme e una chiamata in tempo reale richiede diversi minuti, eseguendo una chiamata sincrona, non sembra essere corretta.
Le soluzioni a cui posso pensare sono le seguenti:
- Conserva i dati reali in una memoria persistente che è supportata dalla disponibilità elevata e la usa come riserva. Pertanto, la disponibilità dei dati sarà ora controllata dal criterio HA dello spazio di archiviazione persistente
- Utilizza un tipo di memorizzazione nella cache per richiesta . La cache può avere un limite superiore fisso per dimensione e può essere utilizzata solo per mantenere la ultima richiesta. La cache può essere ripristinata periodicamente (con la stessa frequenza dell'aggiornamento della cache HA) dopo aver controllato lo stato della cache HA. Se la cache HA è disponibile, la cache di richiesta può essere ripristinata, altrimenti può conservare il suo ultimo stato. Ciò sostanzialmente sposta la sicurezza della disponibilità dei dati sulla piattaforma che ospita i microservizi (i)
Sarebbe davvero utile sapere dalla community, che tra i precedenti è meglio adattarsi OPPURE esiste un altro modo migliore per gestire il problema descritto in (2)?