5

Я заинтересован в:Как сравнить CPG от Corosync, ZeroMQ и Spread для обмена сообщениями?

  • Performance
    • Задержка
    • Пропускная способность
    • использования ресурсов (CPU, памяти, ...)
  • Высокая доступность
    • Нет ни одной пои нт неудачи
  • Особенности
    • Транспорт Варианты
    • опции маршрутизации
  • СТАБИЛЬНОСТЬ
  • сообщества
    • Активное развитие
    • Широко используется
    • Полезный список рассылки, форум, IRC канал, ...
  • Простота интеграции с моим текущим кодовую
  • Gotchas возможно
  • Любая другая вещь, вы думаете, я опустил

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

ответ

6

Ну, я не использовал два других, но могу поделиться своими впечатлениями с ZeroMQ. По-моему, он превосходит всех ваших.

Скорость и пропускная способность

Это так быстро, как TCP, не используют процессор или много памяти. Он может быстро нажимать много сообщений без пота. Он насытит ваш сетевой канал до того, как вы исчерпаете память (я сомневаюсь, что вы когда-нибудь сможете максимизировать процессор). Было сравнение с RabbitMQ где-то, и ZMQ превосходит его в 2 раза. Из того, что я читал в Интернете, он используется в торговле с высокой скоростью.

RabbitMQ также является очень хорошим инструментом. Посмотрите на него - это может быть хорошо подходит для того, что вы ищете

SPOF

Если вы разрабатываете вам приложение должным образом, то вы не можете иметь единую точку отказа. Очень легко подключить два разъема к другому. Так что, если один из них терпит неудачу - другой должен обрабатывать работу. Есть такие вещи, как знаки высокой воды, которые помогут вам на этом пути. Прочтите ZeroMQ Guide, чтобы узнать, как создать приложение без SPOF.

транспорты и маршрутизации

Что касается вариантов транспорта (если я правильно понять это) - это до вас, чтобы определить свой протокол. ZeroMQ в принципе обещает вам, что он доставляет этот кадр данных на другой конец. Используйте JSON, буферы протокола, код Морзе, что угодно.

В AMQP нет встроенной маршрутизации, как в AMQP. Опять же, вам нужно указать, к какому сокету ZeroMQ подключается, но это очень просто.

Стабильность

Я развивался вместе с ним в течение нескольких месяцев (с использованием Python) и не нашел ни одного вопроса с его стабильностью. Даже когда я пытаюсь использовать его неправильно, он просто бросает хорошую ошибку, говоря мне, чтобы я этого не делал. Даже перезапуск/уничтожение некоторых сервисов и их резервное копирование не создают никаких проблем. Я бы сказал, что это очень стабильная часть программного обеспечения.

В качестве примечания: всегда используйте последнюю версию - версия 2.1 очень ориентирована на стабильность, поэтому в ней разрешено много проблем стабильности.

сообщества

Наручники для более чем 20 языков, активный список рассылки, очень хорошая документация, частые релизы. Что-нибудь еще?

Интеграция

Потому что он разработан в качестве библиотеки, это до вас, чтобы дизайн вы приложения (в отличие от случая с рамкой) и это в значительной степени выделяется из вашего пути. Он немного похож на обычный сокет TCP, гораздо более мощный и простой в использовании (он гарантирует, что сообщение будет доставлено в целом, а не только первые 128 байт, а остальные позже, как в случае с обычными сокетами).

Gotchas

Есть некоторые, но все они описаны в руководстве. (Например: вы можете пропустить первые несколько сообщений из гнезда PUB при подключении (SUB) к нему. В руководстве есть объяснение и рецепт, как с ним справиться).

Общая

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

Я рекомендую вам ознакомиться с the guide от конца до конца. Это хорошо написано, примеры на многих языках (включая C++), и он описывает множество краевых случаев и болевых точек.

+0

По вариантам транспорта Я имею в виду параметры протокола нижнего уровня, такие как TCP, UDP и т. Д. И спасибо за ваш тщательный ответ :) – Ebrahim

 Смежные вопросы

  • Нет связанных вопросов^_^