Подтвердить что ты не робот

ZooKeeper и RabbitMQ/Qpid вместе - перебор или хорошая комбинация?

Привет,

Я оцениваю некоторые компоненты для распределенной системы центра данных с несколькими данными. Мы будем использовать очереди сообщений (через RabbitMQ или Qpid), чтобы агенты могли делать асинхронные запросы другим агентам, не беспокоясь о адресации, маршрутизации, балансировке нагрузки или повторной передаче.

Во многих случаях агенты будут взаимодействовать с компонентами, которые не предназначены для высокоскоростного доступа, поэтому для избежания условий гонки потребуются координация и взаимодействие между агентами. Кроме того, мы хотели бы, чтобы система автоматически реагировала на сбои агента или центра обработки данных.

С учетом вышеуказанных примеров использования ZooKeeper казалось, что это может быть хорошо. Но мне интересно, не пытается ли использовать ZK и очередность сообщений. Похоже, что Zookeeper действительно может быть выполнен моим собственным менеджером кластера с использованием обмена сообщениями AMQP, но это было бы очень сложно сделать правильно. С другой стороны, я видел несколько примеров, когда ZooKeeper использовался для реализации очереди сообщений, но я думаю, что RabbitMQ/Qpid более естественны для этого.

Кто-нибудь использовал такую ​​комбинацию?

Спасибо заранее,

-Крис

4b9b3361

Ответ 1

Вступая в это поздно, но, возможно, это будет полезно. Основное внимание следует уделить эксплуатационным характеристикам вашей системы. ZooKeeper, как вы сказали, более чем способен реализовать систему распределения задач с распределенной очередью, но в настоящее время zk более оптимизирован для чтения, чем для записи (это входит в игру только в 1000 опций в секунду), Если ваши потребности в пропускной способности меньше этого, то использование zk для реализации вашей системы уменьшит количество компонентов времени выполнения и упростит их. Конечно, вы должны всегда выполнять свои тесты производительности, прежде чем принимать решение.

Распределенная координация действительно затруднительна, поэтому я бы определенно рекомендовал использовать zookeeper для этого и не сворачивать самостоятельно.

Ответ 2

Не совсем уверен, что ZooKeeper точно, но я полагаю, что использование компонента из Apache (если оно соответствует вашим потребностям) предпочтительнее, прежде чем управлять такими вещами, как распределенная синхронизация и групповые службы по своему усмотрению. Конечно, вы могли бы нанять команду разработчиков специально для этой цели, но это не гарантирует лучшую реализацию.

Я предполагаю, что он будет реализован как отдельный компонент, потому что другой способ может принести много сложности и замедлить рабочий процесс; поэтому предпочтение ZooKeeper или что-то подобное явное (для меня).

И конечно, если вы не находитесь на этапе глобальной оптимизации вашего рабочего процесса проекта, я думаю, что было бы лучше использовать RabbitMQ или подобное (я бы даже подчеркнул, что реализация Cuz (особенно коммерческая) AMQP будет более надежный, чем все, что вы придумали).

Итак, я бы пошел для обоих, тщательно подбирая соответствующие продукты третьих сторон, но используя столько, сколько нужно. И это только мое мнение; спасибо за чтение:)