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?


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

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


17

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.



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


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



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.


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)




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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.