2008-11-06 15 views
6

Ich war im Moment in Memcached als Möglichkeit, eine Gruppe von Servern zu koordinieren, sondern stieß auf Apache's ZooKeeper auf dem Weg. Es sieht interessant aus, und Yahoo benutzt es, also sollte es nicht schlecht sein, aber ich habe noch nie davon gehört, also bin ich etwas skeptisch. Hat jemand anderes es versucht? Irgendwelche Kommentare oder Ideen?Hat jemand versucht mit ZooKeeper?

Antwort

10

ZooKeeper und Memcached haben unterschiedliche Zwecke. Sie können memcached verwenden, um die Serverkoordination durchzuführen, aber Sie müssen die meiste Arbeit selbst erledigen. Memcached ermöglicht nur die Koordination, indem es allgemeine Datensuchvorgänge zwischenspeichert, die von mehreren Clients verwendet werden. Aus der Lektüre der Dokumentation von ZooKeeper ergibt sich ein viel breiterer Fokus. ZooKeeper bietet anscheinend Unterstützung für das Server-Clustering, das nicht mit dem von memcached bereitgestellten Cache-Clustering identisch ist.

Werfen Sie einen Blick auf Brad Fitzpatricks Linux Journal article auf Memcached, um eine bessere Idee zu bekommen, was ich meine.

5

Um einen Überblick darüber zu erhalten, was Zookeper wirklich kann, sehen Sie sich die folgende Präsentation der YouTuber an. Es ist in der Lage, so viel mehr zu erzeugen (Erstellen von Warteschlangen, Auswählen von Hauptprozessen in einer Gruppe von Peers, verteilte Hochleistungslaufkonfigurationen, Rendezvous-Punkte für dissozierte Prozesse, Bestimmen, ob Prozesse noch laufen usw.).

http://zookeeper.sourceforge.net/index.sf.shtml

Ihre Frage zu beantworten, wenn „Koordination“ ist, was Sie für Zookeeper suchen viel besser, dass als Memcached gezielt ist.

1

Zookeeper eignet sich hervorragend für die Datenübereinstimmung zwischen Servern. Es ist eine gute Aufgabe, jede Transaktion zu bestellen und Garantien zu geben, dass Transaktionen in der richtigen Reihenfolge ablaufen. Beim ersten Einbruch stinkt die Dokumentation jedoch; Es ist sehr "high-level" ohne genug konkrete Beispiele oder Erklärungen, wie man bestimmte Ereignisse richtig behandelt. Eines der enthaltenen Beispiele (ab Version 3.3.3) hatte seine eigenen Fehler.

Ihr Code muss sich auch mit ereignisgesteuerten Interaktionen und Interaktionen befassen. Bei einer massiv verteilten Architektur können Sie, wenn Sie auf "Ereignisse" reagieren, unbeabsichtigt einen Ansturm erzeugen, der für Ihre Umgebung nicht wünschenswert ist (Herdeneffekt).

Verwandte Themen