2011-01-21 6 views
3

У меня есть следующие требования:ZeroMQ против node.js против beanstalkd против Twisted

  1. Надежный обмен сообщениями: не Обеспечено доставка, в порядке, нет дублирования
  2. фильтрация сообщений и маршрутизация на основе на настраиваемый критерии
  3. сообщения многоадресной
  4. сообщения список получателей, отправлять сообщения только указанных получатель
  5. Приоритеты сообщений
  6. Встроенная безопасность

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

Если вы знаете только о одном продукте, поделитесь своими мыслями по нему.

ответ

2

0Mq и Twisted - это инструменты для построения систем связи, node.js - это веб-сервер (который имеет различные плагины для общения с другими системами через beanstalkd или 0Mq).

Из перечисленных четырех технологий только Beanstalkd на самом деле является очередью. Он мог использовать названные «пробирки», чтобы различать потенциальные пункты назначения (при необходимости все рабочие из одной или нескольких трубок). Если каждый работник читает из определенных трубок, вы можете использовать его несколько иначе, как мульти-бросок, когда отдельные рабочие вытаскивают из своего определенного источника.

Если вам действительно нужно многократное кастинг и маршрутизация, вам может понадобиться нечто более сложное. Rabbit.mq может сделать большинство из них, но если вы хотите поместить критерии в программное обеспечение очереди/маршрутизации, вам может понадобиться полный ESB.

+0

ZeroMQ не является очереди? – andho

+5

ZeroMQ - это сетевая библиотека. Он включает очереди и использует их внутренне. Вы также можете загружать программы с поддержкой ZMQ, которые также реализуют более надежные очереди на диске, такие как https://github.com/mkoppanen/pzq/wiki/An-Introduction-To-PZQ –

+10

Неверные описания. node.js - это веб-сервер, как сказать, что ruby ​​on rails является веб-сервером. Сказано, что ZeroMq - это протокол, например TCP - протокол, с реализациями на многих языках. Twisted - как nodejs, но в python. И последнее, но не менее важное: Beanstalkd - это рабочий сервер со своим собственным протоколом очереди. – graffic