Готово ли производство ZeroMQ? - PullRequest
32 голосов
/ 02 февраля 2011

Какой у вас опыт использования ZeroMQ в качестве промежуточного программного обеспечения для обмена сообщениями общего назначения?

  1. Вы сталкивались с какими-либо ошибками, мешающими показу, или с неочевидными "особенностями"? Например. 2.0 не сбрасывал сообщения должным образом, и руководство по устранению неполадок , кажется, дает самый ужасный обходной путь из всех: "sleep(1) перед выходом".
  2. API уменьшил сложность приложений или оказался проблематичным?
  3. Часто ли нарушается обратная совместимость?

Ответы [ 3 ]

30 голосов
/ 23 февраля 2011

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

  1. Настройка jzmq в OS X / Eclipse ... не нравится.
  2. Запуск приложения будетиногда вызывает ошибку утверждения в коде ZeroMQ C, поэтому мне нужно обернуть свое приложение во что-то, что проверяет это исключительное состояние.
  3. Ошибки часто очень неописательны.У меня было слишком много незаконных исключений состояния без пояснительного сообщения.
  4. TLS не поддерживается.Для меня это почти нарушает условия сделки, и я мог легко заметить, что это исключает его доступность для ряда приложений.
  5. Документация отключена. Официальное руководство хорошо, но если у вас есть специфическая проблема, она обычно не помогает.И у меня уходит больше времени, чем обычно, чтобы найти ответы на вопросы, когда гуглюсь.Список рассылки, однако, довольно активен.

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

14 голосов
/ 09 августа 2011

Я также использую ZeroMQ в «полупроизводственной» среде (прототипирование для DARPA). До сих пор это было действительно превосходно для "связывания кошек", особенно когда эти кошки написаны на разных языках и живут на разных машинах. Имеющиеся идиомы сокетов делают размышление о проблеме распределенных вычислений очень простым. Сила ZeroMQ в эргономике: надежная модель мышления и множество языковых связей.

Однако будьте осторожны, если вы сталкиваетесь с жесткими ограничениями производительности. Я работаю над системой реального времени и обнаружил, что, хотя ZeroMQ стремится быть высокопроизводительным решением, оно не готово к прайм-тайм. Я думаю, что у архитектуры есть большой потенциал; кажется, ему мешают какие-то нерешительные ошибки. Я, вероятно, следовало ожидать, что от библиотеки, которая развивалась так быстро, переходя от 0,0 до 3,0 за относительно короткое время. Тем не менее, я подумал, что смогу получить замену моего собственного стека протоколов с ручным управлением и немедленно ударить некоторых нарушителей. Если вы решили использовать ZeroMQ, имейте в виду, что вы работаете намного выше транспортного уровня, и если производительность ниже желаемой, с этим мало что можно поделать.

При этом болтовня в списке рассылки и на канале IRC довольно велика. Кажется, разработчики искренне заинтересованы в создании чего-то, что является абсолютно современным. Им нравится, что в их библиотеке есть шум и она привыкла к серьезным, интересным вещам. Они занятые люди, поэтому не ожидайте, что вы будете держаться за них. Однако если у вас есть настоящая проблема, они хотят знать, что происходит.

Итог: Отличный швейцарский армейский нож для повседневных задач распределенных вычислений. Будьте осторожны, если вы ищете передовые характеристики; это по крайней мере один основной релиз. Тем не менее, будущее выглядит великолепно для этого проекта, поэтому используйте его и поддержите.

0 голосов
/ 29 августа 2012

отказ от ответственности: это от лица, которое никогда ранее не использовало AMQP или любой другой подобный продукт.

Плохая документация - это плохо. (C # было бы плохо, если бы не было документации для .Net и C #). Так что ZMQ может быть лучшим решением, если вы знаете, как его использовать, но документация то, что существует (не так много), довольно плохо (мы такие умные, это так хорошо, Эрланг, бла-бла, ни один пример из руководства n-to-n в руководстве ...).
Вы говорите так, что большинство проектов ОС имеют плохую документацию или ее нет. Да, но для нескольких проектов ОС вы можете найти массу вещей (учебники, примеры ...). С ZMQ это: ноль для документации. Так как я разработчик C ++, я скажу это так. Прежде чем пытаться использовать ZMQ, я подумал, что boost имеет плохую документацию и сравнительно мало примеров в интернете. Но по сравнению с ZMQ Boost документация великолепна, и примеров много.

РЕДАКТИРОВАТЬ: чтобы сделать вещи веселее (гражданская война: P): http://www.infoq.com/news/2012/03/Crossroads-IO

Martin Sustrik и Martin Lucina, создатели оригинального ZeroMQ, решили восстановить контроль над проектом, разветвив его. Новый проект под названием Crossroads I / O находится в стадии коммерческая экосистема, которая лучше способна удовлетворить их долгосрочные финансовые потребности.

EDIT2: копирование и запуск примеров из руководства (cpp-версия «Брокер-запрос-ответ») не работает Вы можете видеть, насколько хорош процесс разработки библиотеки по тому факту, что они не имеют своих примеров в качестве тестов. : P
РЕДАКТИРОВАТЬ3: некоторые из примеров в v2. *, Последняя версия ofc v3.2. Опять же, это пахнет как гнилой проект не поддерживаемой ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...