The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Введение в систему обмена сообщениями ZeroMQ "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от opennews on 30-Июн-10, 10:35 
Николя Пиёль (Nicolas Piël) опубликовал (http://nichol.as/zeromq-an-introduction) введение в технологию ZeroMQ (http://www.zeromq.org/) (0MQ), позволяющую организовать быстрый асинхронный обмен сообщениями между высоконагруженными приложениями и интересную тем, что сетевое взаимодействие организовано через новый уровень сетевого стека, который может использовать в качестве транспорта TCP, PGM, IPC и т.п.  API библиотеки напоминает обычные сокеты, поддерживается передача сообщений в направлениях точка-точка, издатель-подписчики, запрос-ответ, возможна параллельная рассылка. Система очень быстрая, тесты производительности (http://www.zeromq.org/area:results) показали способность обработать на обычном сервере более 8 млн. сообщений в секунду.


Ниже представлен перевод вводной статьи по ZeroMQ:

ZeroMQ (http://www.zeromq.org/) - это библиотека обмена сообщениями (Messaging Queue, MQ), которая без особых усилий позволяет создавать сложные коммуникационные решения. Сначала эта п...

URL: http://nichol.as/zeromq-an-introduction
Новость: http://www.opennet.ru/opennews/art.shtml?num=27137

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Введение в систему обмена сообщениями ZeroMQ "  +1 +/
Сообщение от klalafuda on 30-Июн-10, 10:35 

Любопытно. Нужно будет поковырять на досуге.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Введение в систему обмена сообщениями ZeroMQ "  +1 +/
Сообщение от Аноним (??) on 30-Июн-10, 10:38 
Сразу скажу, что в питоновских примерах очень не очевиден вариант с подпиской: setsockopt(zmq.SUBSCRIBE, str(messagetype)), в котором messagetype, судя по всему (документации пока нет),- есть первое слово в msg. В PyroES по крайней мере можно швырять произвольные объекты (понятно, с синхронизацией кода объектов на серверах и клиентах, иначе - никак), в которых как хочешь задавай messagetype, хоть через свойство, хоть через object.__class__.__name__ дергай.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Введение в систему обмена сообщениями ZeroMQ "  +1 +/
Сообщение от Omniton on 30-Июн-10, 13:06 
PyroES работает только python-объектами, что сильно ограничивает область использования. На самом деле отстутвие типа это как раз сильная сторона ZeroMQ. Как было описано можно использовать любой формат данных. С учетом, что ZeroMQ перетендует на самую скоростную реализацию обмена сообщениями, до кучи стоит сразу рассмотреть наиболее скоростной формат для обмена данными - MessagePack (http://msgpack.org/), который декларируется как в 4 раза более быстрый чем Protocol Biffers от Google. ZeroMQ+MessagePack = SuperJetMQ  :)
Просто как раз над этим и занимась, статья в тему.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Введение в систему обмена сообщениями ZeroMQ "  +2 +/
Сообщение от oxyum (ok) on 30-Июн-10, 18:31 
в SUBSCRIBE передаётся бинарная строка с которой должно начинаться сообщение.

Само сообщение в этом случае должно быть разделено нулевым байтом на 2 части:

<"NAME">\x00<"BODY">

Если в SUBSCRIBE передать строку с завершающим нулём, то будет полное соответствие, если без - то по началу строки. Если на примере, то примерно так:

возьмём N сообщений:
"/queue/1\x00body"
"/queue/2\x00body"
...
"/queue/10\x00body"

И маски:
"/queue/" - получит все сообщения,
"/queue/1" - получит 1 и 10е сообщения
"/queue/1\x00" - получит только 1е сообщение

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от const_cast on 30-Июн-10, 14:31 
Ну не все так радужно, как написано, в смысле производительности. Вот тут что-то люди сравнивали http://mnb.ociweb.com/mnb/MiddlewareNewsBrief-201004.html. Хотя наверно все зависит от того чего хочешь достичь меряя производительность разных систем. :)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от Crazy Alex (??) on 30-Июн-10, 15:12 
Действительно, не всё так радужно в данном случае. С другой стороны, у конкурентов я что-то не вижу поддержки UDP и мультикаста, да и реализация на полутора десятков языковых интерфейсов - тоже жирный плюс. Кроме того, тот же DDS использует Corba... Лично мне её разворачивать не очень хочется. В общем, штука интересная, буду иметь в виду.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от klalafuda on 30-Июн-10, 16:06 
> Кроме того, тот же DDS использует Corba... Лично мне её разворачивать не очень хочется. В общем, штука интересная, буду иметь в виду.

..кто юзал TAO тот в цирке не смеется? Это да, есть такое :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от const_cast on 30-Июн-10, 18:50 
В TAO есть и UDP и мултикаст, и еще несколько протоколов (shared memory, UNIX sockets, etc), но смеяться не будем, грех. :)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Введение в систему обмена сообщениями ZeroMQ "  +3 +/
Сообщение от oxyum (ok) on 30-Июн-10, 18:32 
На замену CORBA можно попробовать ZeroC Ice - мне в свое время понравилось. Не без своих проблем мидлварь конечно, но куда приятнее и понятнее корбы.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от Crazy Alex (??) on 30-Июн-10, 20:12 
Да мне замена корбы как-то без надобности. Я гляжу в сторону чего-то легковеснго и и просто натстраиваемого. В этом плане ZeroMQ приятно вполне. Ну и полтора десятка биндингов, включая перл и эрланг - радуют.
А айс... Я как слышу слово "платформа", сразу понимаю - что-то здоровое, неудобопонятное и навязывающее свои правила игры. Языков маловато, примерчиков мелких не видно - верный признак, что не просто использовать. Возможносте масса - только обычно нужно что-то гораздо более простое.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "Введение в систему обмена сообщениями ZeroMQ "  +1 +/
Сообщение от oxyum (ok) on 30-Июн-10, 20:23 
>Да мне замена корбы как-то без надобности. Я гляжу в сторону чего-то
>легковеснго и и просто натстраиваемого. В этом плане ZeroMQ приятно вполне.
>Ну и полтора десятка биндингов, включая перл и эрланг - радуют.

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

>А айс... Я как слышу слово "платформа", сразу понимаю - что-то здоровое,

Ну не такое оно и здоровое. Ядро весьма компактно, по сравнению с CORBA и вовсе миниатюрно! :)

>неудобопонятное и навязывающее свои правила игры. Языков маловато,

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

Примеры простые вроде были. Сложности возникали обычно при попытках скрестить с каким-нить Qt, у которого свой mail-loop, но тут проблемы и с ZeroMQ будут примерно такие же на самом-то деле.
> Возможносте масса - только обычно нужно что-то гораздо более простое.

разные решения, для разных задач.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "Введение в систему обмена сообщениями ZeroMQ "  +1 +/
Сообщение от Crazy Alex (??) on 30-Июн-10, 20:32 
>>Да мне замена корбы как-то без надобности. Я гляжу в сторону чего-то
>>легковеснго и и просто натстраиваемого. В этом плане ZeroMQ приятно вполне.
>>Ну и полтора десятка биндингов, включая перл и эрланг - радуют.
>
>Я писал на обоих, у каждого свои плюсы, надо неплохо изучить оба,
>чтобы суметь сделать правильный выбор для конкретной задачи.
>

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

>>А айс... Я как слышу слово "платформа", сразу понимаю - что-то здоровое,
>
>Ну не такое оно и здоровое. Ядро весьма компактно, по сравнению с
>CORBA и вовсе миниатюрно! :)

А по сравнению с Asio/ZeroMQ - большое весьма.

>Примеры простые вроде были. Сложности возникали обычно при попытках скрестить с каким-нить
>Qt, у которого свой mail-loop, но тут проблемы и с ZeroMQ
>будут примерно такие же на самом-то деле.

Примеров не нашел, правда, больше 5 минут не искал. А main-loop... Хорошо только fd комбинируются, всё остальное с чудесами :-)

>разные решения, для разных задач.

Святая правда.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от klalafuda on 01-Июл-10, 09:56 

Есть только одна мелочь: модель лицензирования. GPL или коммерческая. Как в свою бытность - Qt. Первое отпадает как класс, второе - как договоритесь. А так - да, наверное, приятная вещь.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от gkv311 (ok) on 30-Июн-10, 15:25 
Что-то забыли про лицензию написать - LGPL она. Любопытно - примеры выпущены под лицензией GPL, что несколько странно и необычно (хотя я эти примеры не видел ещё).
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от const_cast on 30-Июн-10, 18:44 
> Кроме того, тот же DDS использует Corba...

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от Crazy Alex (??) on 30-Июн-10, 20:13 
>> Кроме того, тот же DDS использует Corba...
>
>DDS конкурирующая технология и может взаимодействовать с CORBA, но реализация у нее
>независимая (по крайней мере в тех реализациях которые я знаю). В
>общем и целом DDS немного другой взгляд на вещи на которые
>раньше смотрели через CORBA.

Конкретно openDDS использует Corba - http://www.opendds.org/faq.html#DDS_and_CORBA

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от аноним on 30-Июн-10, 23:30 
Чем это лучше spread?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "Введение в систему обмена сообщениями ZeroMQ "  +1 +/
Сообщение от oxyum (ok) on 01-Июл-10, 01:11 
>Чем это лучше spread?

Для начала это просто разные решения. spread я не использовал, но доку почитал.

spread - это судя по всему миддлварь, zmq - это теперь просто библиотека которая даёт по сути обычный socket api к более хитрым вариантам сетевого взаимодействия.

PS: Ну а если вы хотите знать какой-то конкретный плюс, то в FAQ написано, что spread может посылать сообщения размером до приблизительно 100kb, у zmq таких ограничений нет.
PPS: у zmq больше биндингов к разным языкам, у spread python bindings давно протухли.
PPPS: а так же разработка spread по сути дела издохла, а zmq активно развивается.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

20. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от klalafuda on 01-Июл-10, 10:01 
> PPS: у zmq больше биндингов к разным языкам, у spread python bindings давно протухли.

Ну само по себе абсолютное количество биндингов - десять! двадцать! сто!!! - это сферический конь в том самом. Это все равно что абстрактное 'количество поддерживаемых платформ NetBSD'. Ага. А вот как начнешь работать с конкретным нужным биндингом там и полезут все косяки и грабли. Хотя в релизе типа 'поддерживаем'. Это так, мысли в слух.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

21. "Введение в систему обмена сообщениями ZeroMQ "  +/
Сообщение от oxyum (ok) on 01-Июл-10, 10:15 
>> PPS: у zmq больше биндингов к разным языкам, у spread python bindings давно протухли.
>
>Ну само по себе абсолютное количество биндингов - десять! двадцать! сто!!! -
>это сферический конь в том самом. Это все равно что абстрактное
>'количество поддерживаемых платформ NetBSD'. Ага. А вот как начнешь работать с
>конкретным нужным биндингом там и полезут все косяки и грабли. Хотя
>в релизе типа 'поддерживаем'. Это так, мысли в слух.

Дык это всё понятно, но товарищ аноним хотел что-то узнать, я ему что-то и ответил! :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру