Sto scrivendo un'applicazione distribuita che coinvolge diversi nodi front-end che devono negare l'azione all'utente a meno che non facciano parte di un elenco.Ha senso utilizzare Zookeeper per memorizzare i permessi utente
In questo momento abbiamo più di 4 di questi nodi ma solo un singolo server di database che esegue DB2 che è spesso inattivo per manutenzione.
In questo momento stiamo eseguendo il polling del database per aggiornare un elenco in memoria in modo che se un utente viene rimosso dall'elenco, la modifica venga riflessa su tutti e 4 i nodi. Ma se uno dei nodi viene riavviato mentre il database è inattivo ci ritroveremmo con una lista vuota che negherebbe tutte le richieste degli utenti che non vogliamo. Possiamo accettare la richiesta da parte dell'utente anche se il database è inattivo mentre li memorizziamo in una coda di messaggi, ma vogliamo rifiutarli immediatamente se devono essere rifiutati!
Ha senso eseguire un'istanza Zookeeper su ciascuno dei nostri 4 nodi e memorizzare l'autorizzazione utente in Zookeeper. La lettura dovrebbe quindi essere veloce e i dati altamente disponibili e coerenti. Non dovremmo più eseguire il polling e anche se riavviamo il database il nodo sarà in grado di ottenere la loro configurazione da zookeeper!