Jump to content

НольMQ

Разработчик(и) iMatix
Стабильная версия
4.3.5 [1] / 9 октября 2023 г .; 9 месяцев назад ( 9 октября 2023 )
Репозиторий
Написано в С++
Платформа Кросс-платформенный
Тип Очередь сообщений , платформа параллелизма
Лицензия МПЛ-2.0 [2]
Веб-сайт нулевой mq .org

ZeroMQ (также пишется ØMQ , 0MQ или ZMQ ) — это библиотека асинхронного обмена сообщениями , предназначенная для использования в распределенных или параллельных приложениях. Он обеспечивает очередь сообщений , но в отличие от промежуточного программного обеспечения, ориентированного на сообщения , система ZeroMQ может работать без выделенного брокера сообщений ; ноль в названии означает нулевой брокер. [3] API библиотеки спроектирован так, чтобы напоминать сокеты Беркли .

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

Технология

[ редактировать ]

API ZeroMQ предоставляет сокеты (своего рода обобщение традиционных сокетов домена IP и Unix ), каждый из которых может представлять собой соединение «многие ко многим» между конечными точками . Работая с детализацией сообщений, они требуют использования шаблона обмена сообщениями и специально оптимизированы для такого типа шаблона.

Основные шаблоны ZeroMQ:

Запрос-ответ
Подключает набор клиентов к набору услуг. Это шаблон удаленного вызова процедур и распределения задач.
Опубликовать–подписаться
Подключает набор издателей к набору подписчиков. Это шаблон распределения данных.
Двухтактный (трубопровод)
Соединяет узлы в виде разветвления/входа, который может состоять из нескольких шагов и циклов. Это параллельный шаблон распределения и сбора задач.
Эксклюзивная пара
Соединяет две розетки в эксклюзивную пару. (Это расширенный низкоуровневый шаблон для конкретных случаев использования.)

Каждый шаблон определяет определенную топологию сети. Запрос-ответ определяет так называемую «служебную шину», публикация-подписка определяет «дерево распределения данных», а двухтактная процедура определяет «параллельный конвейер». Все шаблоны намеренно разработаны таким образом, чтобы их можно было бесконечно масштабировать и, следовательно, можно было использовать в масштабах Интернета. [4]

Любое сообщение через сокет рассматривается как непрозрачный блок данных. Доставка подписчику может автоматически фильтроваться по начальной строке большого двоичного объекта. Доступные способы передачи сообщений включают TCP , PGM (надежная многоадресная рассылка), межпроцессное взаимодействие ( IPC ) и межпотоковое взаимодействие (ITC).

Основная библиотека ZeroMQ работает очень хорошо благодаря своей внутренней модели потоков и может превосходить традиционные TCP-приложения с точки зрения пропускной способности за счет использования метода автоматической пакетной обработки сообщений. [5] [6]

ZeroMQ реализует ZMTP, протокол передачи сообщений ZeroMQ. [7] ZMTP определяет правила обратной совместимости, расширяемые механизмы безопасности, кадрирование команд и сообщений, метаданные соединения и другие функции транспортного уровня. Все большее число проектов реализует ZMTP напрямую в качестве альтернативы использованию полных реализаций ZeroMQ. [8]

Генеральный директор iMatix Питер Хинтенс зарегистрировал домен Zeromq.org в мае 2007 года и начал проект ZeroMQ вместе с Мартином Сустриком, который был его архитектором и ведущим разработчиком до декабря 2011 года.

30 марта 2010 года Хинтдженс объявил, что iMatix (первоначальный разработчик Advanced Message Queuing Protocol ) покинет рабочую группу AMQP и не планирует поддерживать AMQP/1.0 в пользу значительно более простого и быстрого ZeroMQ. [9] [10]

В 2011 году ЦЕРН изучал способы унификации решений промежуточного программного обеспечения, используемых для работы ускорителей ЦЕРН. В исследовании CERN сравнивались две реализации CORBA с открытым исходным кодом : Ice , Thrift , ZeroMQ, YAMI4, [11] RTI и Qpid (AMQP) и получил высшую оценку ZeroMQ, отчасти за его универсальность, включая легкую адаптируемость к LynxOS . [6]

В начале 2012 года двое первоначальных разработчиков создали форк ZeroMQ как Crossroads I/O. [12] [13] Мартин Сустрик запустил nanomsg, [14] переписанная основная библиотека ZeroMQ. [15]

В августе 2012 года Донмин Ю объявил о своем преобразовании ZeroMQ на чистую Java в JeroMQ. [16] Это вдохновило на создание полноценных портов ZeroMQ, таких как NetMQ для C#. [17] и zmq.rsдля Руста. [18]

В марте 2013 года Питер Хинтдженс объявил о новом проекте протокола проводного уровня ZMTP, добавляющем в ZeroMQ расширяемые механизмы безопасности. [19] Мартин Хертон реализовал механизм аутентификации и шифрования CurveZMQ. [20] вскоре после этого в основной библиотеке.

В 2016 году давний разработчик ZeroMQ Гаррет Д'Амор отделил Nanomsg для создания проекта NNG (Nanomsg Next Generation). [21]

Процесс разработки

[ редактировать ]

Сообщество ZeroMQ в основном использует коллективный контракт на создание кода (C4). [22] в качестве контракта на разработку. C4 вдохновлен процессами Википедии и моделью GitHub + pull request . Основное внимание уделяется упрощению участия новых участников и уменьшению зависимости от старых участников.

См. также

[ редактировать ]
  1. ^ «Выпуск 4.3.5» . 9 октября 2023 г. Проверено 20 октября 2023 г.
  2. ^ «Лицензирование ØMQ» . Проверено 8 июня 2023 г.
  3. ^ «Начни» .
  4. ^ «Уровень масштабируемости попадает в стек Интернета» . Архивировано из оригинала 28 мая 2019 г. Проверено 4 сентября 2013 г.
  5. ^ «Почему ØMQ имеет более высокую пропускную способность, чем TCP, хотя он построен на основе TCP?» . Часто задаваемые вопросы по ZeroMQ . Проверено 8 июня 2013 г.
  6. ^ Перейти обратно: а б «Тенденции промежуточного программного обеспечения и лидеры рынка 2011» . Проверено 8 июня 2013 г.
  7. ^ «Протокол передачи сообщений ZeroMQ» . Проверено 8 июня 2013 г.
  8. ^ «Поиск на GitHub: ZMTP» . Гитхаб . Проверено 8 июня 2013 г.
  9. ^ «iMatix прекратит поддержку OpenAMQ к 2011 году» . список рассылки openamq-dev. Архивировано из оригинала 05 марта 2016 г. Проверено 5 сентября 2018 г.
  10. ^ «Что не так с AMQP (и как это исправить)» . Компания iMatix . Проверено 14 июля 2012 г.
  11. ^ «Инспирел ЯМИ4» . Проверено 14 июля 2012 г.
  12. ^ «ZeroMQ и Crossroads I/O: разветвление торговых марок» . LWN.net . Проверено 14 июля 2012 г.
  13. ^ «Перекресток ввода-вывода» . Проверено 14 июля 2012 г.
  14. ^ "наномсг" . Проверено 8 июня 2013 г.
  15. ^ «Почему я должен был [так в оригинале] писать ZeroMQ на C, а не на C++» .
  16. ^ «jeromq — Java Pojo ZeromQ» . Список рассылки Zeromq-dev. Архивировано из оригинала 31 июля 2013 года . Проверено 23 мая 2013 г.
  17. ^ «НетМК» . Гитхаб . Проверено 23 мая 2013 г.
  18. ^ "zmq.rs" . Гитхаб . Проверено 24 октября 2020 г.
  19. ^ «Защита ZeroMQ: проект протокола ZMTP v3.0» . Hintjens.com . Проверено 23 мая 2013 г.
  20. ^ Curvezmq.org
  21. ^ «ННГ: Наномсг-НГ» . nanomsg.org . Проверено 4 августа 2023 г.
  22. ^ «Коллективный кодекс строительного подряда (С4.1)» . RFC ZeroMQ . Проверено 23 мая 2013 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8f1bfb47c1b1536933d90cfdb5e3320c__1720390320
URL1:https://arc.ask3.ru/arc/aa/8f/0c/8f1bfb47c1b1536933d90cfdb5e3320c.html
Заголовок, (Title) документа по адресу, URL1:
ZeroMQ - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)