Mam małą grupę serwerów, które muszę utrzymywać w synchronizacji. Początkowo myślałem o tym, aby jeden serwer był "głównym" i publikować aktualizacje za pomocą funkcji pub/sub redis (ponieważ używamy już redis do przechowywania) i zezwalamy innym serwerom w klastrze, niewolnikom, ankietować za aktualizacje w długotrwałe zadanie. To wydawało się być prostą metodą, aby wszystko było zsynchronizowane, ale wtedy pomyślałem o oczywistym problemie: Co jeśli mój "mistrz" zejdzie? Tam właśnie zacząłem szukać technik, aby upewnić się, że zawsze istnieje mistrz, który doprowadził mnie do czytania o pomysłach takich jak wybory przywódców. Wreszcie, natknąłem się Apache Zookeeper (przez pytona wiązania „pettingzoo”), który podobno zajmuje dużo logiki tolerancji błędu dla ciebie. Być może uda mi się napisać własny kod wyboru lidera, ale sądzę, że nie byłby on tak dobry jak coś, co zostało sprawdzone i przetestowane, jak Zookeeper.Synchronizacja zookeepera z serwerem redis
Moim głównym problemem z użyciem Zookeeper jest to, że jest to tylko kolejny komponent, że może być dodanie do mojej konfiguracji niepotrzebnie kiedy mogę dostać się z czymś prostszym. Czy ktokolwiek kiedykolwiek używał redis w ten sposób? Czy istnieje jakaś inna prosta metoda, której mogę użyć, aby uzyskać typ funkcji, którą próbuję osiągnąć?
Więcej informacji o pettingzoo (slideshare)