ZeroMQ PUB / SUB фильтрация и производительность - PullRequest
2 голосов
/ 30 марта 2012

Я пытаюсь реализовать брокер, используя zeromq PUB / SUB (python eventlets).zeromq 2.1, похоже, не реализует фильтрацию на издателе, и все сообщения передаются всем подписчикам, которые применяют фильтр.Есть ли какое-то решение для фильтрации в издательстве.Если нет, то насколько плоха производительность, если ~ 25 издателей и 25 подписчиков обмениваются сообщениями с максимальной скоростью 200 сообщений в секунду, где msg_size ~ = 5 КБ через посредника.

Существуют ли какие-либо хорошо проверенные реализации брокера с нулевым набором ресурсов с открытым исходным кодом .??

Ответы [ 3 ]

3 голосов
/ 26 апреля 2012

zeromq 3.1 включает фильтрацию на стороне публикации.

zeromq включает в себя понятие брокера в том, что они называют устройством. Вы можете установить его в ~ 3 строки кода. Смотри http://zguide.zeromq.org/page:all#Built-in-Devices

3 голосов
/ 30 марта 2012

У вас есть 3 вопроса:

  • Могу ли я отфильтровать себя на издателе?- да
  • Насколько плоха производительность отправки 200 м / с на 25 узлов?- это зависит от того, насколько велики ваши сообщения.Но нет, в этом диапазоне ставок у вас не возникнет никаких проблем;проблема возникает, когда вы начинаете максимизировать пропускную способность ввода-вывода (1 Гбит / с / 8 = 125 МБ / с. 125 * .7 (верх) = 87 МБ / с. 87 МБ / 5 КиБ (на мсг) = 17000 м / сЭто 712 мсг / с на узел до того, как вы начнете заполнять свой допуск ввода-вывода. Но тогда, если у вас возникла эта проблема, вы могли бы просто использовать PGM и делать многоадресную рассылку со скоростью 17000 м / с.о реализации брокера OSS ZMQ? - они не существуют на самом деле - но руководство описывает, как вы можете создать надежного «брокера» с шаблоном Majordomo .

.нужно указать больше деталей в своем вопросе:

  • Требования?
  • Что для вас "плохая производительность"?
  • Размер сообщения?
  • Пропускная способностьтребования?
  • Скорость магистрали (10 Гбит / с)?

Тем не менее, если вам нужен брокер, почему бы вам просто не использовать RabbitMQ и разговаривать с RMQ как ZMQ-device

2 голосов
/ 19 февраля 2015

Из руководства ØMQ:

В ZeroMQ v3.x фильтрация происходит на стороне издателя при использовании подключенного протокола (tcp:// или ipc://). При использовании протокола epgm:// фильтрация происходит на стороне абонента. В ZeroMQ v2.x вся фильтрация происходила на стороне подписчика.

...