Ho un piccolo gruppo di server che devo tenere sincronizzati. Il mio pensiero iniziale su questo era quello di avere un server "master" e pubblicare aggiornamenti usando la funzionalità pub/sub di redis (dato che stiamo già usando redis per lo storage) e lasciando che gli altri server nel cluster, gli slave, eseguano il polling degli aggiornamenti in un compito a lungo termine. Questo sembrava essere un metodo semplice per mantenere tutto in sincrono, ma poi ho pensato all'ovvia questione: cosa accadrebbe se il mio "maestro" dovesse cadere? È qui che ho iniziato a studiare le tecniche per assicurarmi che ci sia sempre un maestro, che mi ha portato a leggere idee come l'elezione del leader. Alla fine, sono incappato su Apache Zookeeper (tramite binding Python, "pettingzoo"), che a quanto pare si occupa di gran parte della logica di tolleranza agli errori per voi. Potrei essere in grado di scrivere il mio codice di selezione del leader, ma immagino che non sarebbe vicino a qualcosa che è stato provato e testato, come Zookeeper.sincronizzazione server zookeeper vs redis
Il mio problema principale con l'utilizzo di Zookeeper è che è solo un altro componente che potrei aggiungere al mio setup inutilmente quando potrei ottenere con qualcosa di più semplice. Qualcuno ha mai usato i redis in questo modo? O c'è qualche altro semplice metodo che posso usare per ottenere il tipo di funzionalità che sto cercando di ottenere?
Maggiori informazioni su pettingzoo (slideshare)