Grüße,ZooKeeper und RabbitMQ/Qpid zusammen - Overkill oder eine gute Kombination?
Ich evaluiere einige Komponenten für ein verteiltes Multi-Data-Center-System. Wir werden Nachrichtenwarteschlangen verwenden (über RabbitMQ oder Qpid), sodass Agenten asynchrone Anforderungen an andere Agenten stellen können, ohne sich um Adressierung, Routing, Lastverteilung oder erneute Übertragung kümmern zu müssen.
In vielen Fällen interagieren die Agenten mit Komponenten, die nicht für hochgradig gleichzeitigen Zugriff ausgelegt sind, sodass eine Sperr- und Kreuzagentenkoordination erforderlich ist, um Race-Bedingungen zu vermeiden. Außerdem möchten wir, dass das System automatisch auf Fehler von Agenten oder Rechenzentren reagiert.
Mit den oben genannten Anwendungsfällen schien ZooKeeper wie es eine gute Passform sein könnte. Aber ich frage mich, ob der Versuch, ZK und Message Queuing zu verwenden, übertrieben ist. Es scheint so, als ob der Zookeeper könnte von meinem eigenen Cluster-Manager mit AMQP Messaging durchgeführt werden, aber das wäre schwer, wirklich richtig zu bekommen. Auf der anderen Seite habe ich einige Beispiele gesehen, wo ZooKeeper verwendet wurde, um Message Queuing zu implementieren, aber ich denke, dass RabbitMQ/Qpid dafür eher geeignet ist.
Hat jemand da draußen eine Kombination wie diese verwendet?
Vielen Dank im Voraus,
-Chris
Hey Chris, hast du die Antwort auf diese Frage herausgefunden? Was hast du am Ende? Danke, Ilya – Ilya
Dies sind wahrscheinlich einige der Beispiele, auf die Sie sich beziehen, indem Sie hier die Links für andere Benutzer hinzufügen: http: //www.cloudera.com/blog/2009/05/Erstellen-eine-verteilt-gleichzeitige-Warteschlange-mit-Apache-zookeeper/und http://zookeeper-user.578899.n2.nabble.com/Task-Job-distribution-using-ZooKeeper -td6096815.html – dgorissen
Wir gingen mit Qpid für Messaging und haben die Implementierung eines verteilten Koordinationsdienstes wie ZooKeeper verschoben. Ich bin immer noch ein großer Fan von ZK, aber unser Durchsatz ist nicht hoch genug, um die zusätzliche Komplexität zu rechtfertigen. Wir betrachten einen einfachen verteilter Locking-Mechanismus innerhalb des Datenzentrums, der wahrscheinlich von MySQL oder Redis unterstützt wird. Die Straße hinunter können wir zu ZooKeeper graduieren. –