Ostatnio patrzyłem na Zookeepera i zastanawiałem się, czy ktoś go obecnie używa i co konkretnie używa do przechowywania.
Najczęstszy przypadek użycia dotyczy informacji konfiguracyjnych, ale jakiego rodzaju i ile danych przechowujesz?
Ostatnio patrzyłem na Zookeepera i zastanawiałem się, czy ktoś go obecnie używa i co konkretnie używa do przechowywania.
Najczęstszy przypadek użycia dotyczy informacji konfiguracyjnych, ale jakiego rodzaju i ile danych przechowujesz?
Odpowiedzi:
Realizacja Apache CXF z DOSGi wykorzystuje zookeeper jego repozytorium rejestracji usługi. Poszczególne kontenery mają pakiet oprogramowania rozproszonego (dsw), który nasłuchuje wszystkich zdarzeń związanych z usługą oraz zmian stanu usługi i posiada właściwość wskazującą dystrybucję. DSw rozmawia z pakietem wykrywania, który w przypadku implementacji referencyjnej używa zookeepera do przechowywania usługi jako węzłów efemerycznych. Inne instancje będą szukać zmian w strukturze węzłów i rejestrować serwery proxy w swoich systemach lokalnych. Efektem końcowym jest to, że możesz zakodować w zwykłym OSGi i otrzymać przejrzystą dystrybucję.
Projekty wolnego oprogramowania obsługiwane przez ZooKeeper:
Projekty Apache obsługiwane przez ZooKeeper:
Źródło: https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy
HBase używa Zookeepera do koordynowania działań, za które jego „węzeł główny” odpowiadał przed obecną wersją. Przejście na korzystanie z Zookeepera oznacza, że centralne sterowanie nie jest już pojedynczym punktem awarii.
Zookeeper jest bardzo wszechstronny; oto przykład użycia go do zbudowania rozproszonej kolejki współbieżnej:
http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/
Można go oczywiście używać również do tworzenia blokad zasobów itp. W systemie rozproszonym.
Stare pytanie, ale ponieważ ta strona pojawia się jako pierwsza w wyszukiwarce Google dla przypadków użycia zookeeper, pomyślałem, że najlepiej będzie podać zaktualizowany wykaz
Norbert to dobry przykład ze skalowalnego systemu produkcyjnego. Ogólnie rzecz biorąc, integruje Netty, Protocol Buffers i Zookeeper w lekką strukturę do uruchamiania usług klastrowych. Bufory protokołów służą do określania API usługi, Netty implementuje abstrakcje warstwy transportowej, a Zookeeper jest zasadniczo odporną na błędy usługą wykrywania.
Za każdym razem, gdy uruchamiana jest instancja usługi, Norbert rejestruje ją jako dostępną instancję określonego typu usługi. Z punktu widzenia implementacji tworzy dwa drzewa Zookeeper:
Najważniejszą właściwością każdego węzła jest adres URL używany do łączenia się z odpowiednią instancją usługi. Umożliwia równoważenie obciążenia po stronie klienta - klient Norbert znajduje listę adresów URL dla danej nazwy usługi i próbuje połączyć się z jedną z nich w jakiejś kolejności (np. Cyklicznie lub losowo).
Jest dobry artykuł ZooKeeper - The King of Coordination o ZooKeeper w Elastic Cloud.
Na przykład w Found, intensywnie używamy ZooKeepera do wykrywania, alokacji zasobów, wyboru lidera i powiadomień o wysokim priorytecie. W tym artykule przedstawimy Wam tego Króla Koordynacji i przyjrzymy się bliżej, jak używamy ZooKeepera w Found
Solr pracuje również nad integracją ZooKeepera . Tutaj możesz zobaczyć, że używają do dynamicznej konfiguracji, shardingu, eliminacji SPOF (wybór master / slave), równoważenia itp.
Storm używa Zookeepera do przechowywania wszystkich stanów, dzięki czemu może odzyskać sprawność po awarii którejkolwiek ze swoich (rozproszonych) usług składowych.
Dzięki temu usługi składowe mogą być bezstanowe i po prostu pobierać lub synchronizować z serwerami Zookeeper, gdy potrzebne są dane konfiguracyjne. Jeśli kiedykolwiek musiałeś odzyskać serwer produkcyjny, wiesz, jaki to może być ból głowy!
Konsumenci kolejki Kafka mogą używać Zookeepera do przechowywania informacji (wysoki poziom wody) o tym, co zostało zużyte z kolejki.
W moim przypadku przechowujemy pliki konfiguracyjne w zespole zookeeper do użytku w klastrze. Używamy schematu lider -> obserwujący. Więc kiedy jeden z opiekunów spadnie, zostajemy przełączeni na innego (tryb replikowany)
Zookeeper był używany do wielu innych celów niż konfiguracja. Oto oficjalna lista implementacji rozproszonych prymitywów używających zookeepera.
Neo4j korzysta z Zookeepera, swojego serwera korporacyjnego o wysokiej dostępności! http://docs.neo4j.org/chunked/milestone/ha.html
datomic używa apache zookeeper do zarządzania przechowywaniem danych w oparciu o riak.
Ponieważ Riak obsługuje obecnie tylko ostateczną spójność, system Datomic działający na Riak wykorzystuje również Apache ZooKeeper, wysoce dostępną usługę koordynacji. Datomic używa ZooKeepera do koordynacji przełączania awaryjnego transakcji oraz do obsługi kilku kluczy na bazę danych, które wymagają aktualizacji za pomocą CAS. źródło: http://blog.datomic.com/2012/11/riak-and-couchbase-support.html
Oto kilka szczegółów na temat tego, jak HBase używa ZooKeepera , w tym informacje o tym, jak zamierzają go używać w przyszłości. Zwykle używają go do eliminowania SPOF na serwerach regionalnych poprzez wybory Leader zaimplementowane przy użyciu ZooKeepera.