Korzystanie z Zookeeper w świecie rzeczywistym [zamknięte]

122

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?

Jon
źródło
3
Podlega grupie technologii Hadoop, tutaj jest przypadek użycia z Yahoo, który jest całkiem niezły - developer.yahoo.net/blogs/hadoop/2009/05/ ...
Jon
Nie wiem, jak jest używany, ale wiem, że najnowsza wersja HBase (implementacja BigTable typu open source) korzysta z ZooKeepera.
Leo P
10
To pytanie ma więcej głosów pozytywnych niż wszystkie odpowiedzi razem wzięte. Zookeeper potrzebuje lepszej wiki na użytek.
mixdev
1
Sprawdź, jak używa go Netflix. github.com/Netflix/curator/wiki/Recipes Curator to biblioteka opakowująca Netflix dla ZK.
eSniff
Sprawdź ten artykuł: stackextend.com/zookeeper/…
Mouad EL Fakir

Odpowiedzi:

13

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ę.

John Ellinwood
źródło
17

Projekty wolnego oprogramowania obsługiwane przez ZooKeeper:

Projekty Apache obsługiwane przez ZooKeeper:

Źródło: https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy

dln385
źródło
17

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.

SquareCog
źródło
14

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

  1. wikipedia
  2. Zookeeper wiki
  3. prawdziwi użytkownicy
manku
źródło
link „prawdziwi użytkownicy” już nie istnieje :(
ginna
10

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:

  • „/ ServiceName / Members” zawiera listę wszystkich znanych wystąpień usługi
  • „/ ServiceName / available”, który zawiera listę aktualnie dostępnych wystąpień usługi

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).

ndolgov
źródło
6

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

herodot
źródło
5

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.

phunt
źródło
3
  • Storm jest używany przez wiele firm (Twitter i Groupon to dwa najbardziej znane) i polega na Zookeeperze.
  • Kafka jest używana przez Linkedin i polega na Zookeeper.

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.

Thomas Bratt
źródło
2

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)

Oleksandr Kovtunenko
źródło
1

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

mavbozo
źródło