Различия между ZeroMQ и WebSockets

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

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

И в этом случае мне интересно, было бы неплохо использовать WebSockets вместо чего-то вроде ZeroMQ для сообщений в режиме реального времени.

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

Ответ 1

A: Real-Time-Messaging - хороший тег, однако

Возможно, вы скоро поймете, что, попав на территорию реального времени, нет никаких оснований тратить такты на завершение любого сообщения в XHT ML- Matrjoska-in-Another-Matrjoska-inside -другие-матрешки, как конверты-внутри-конверты и связанные с ними недостатки.

В режиме реального времени борется за работу в режиме реального времени, поэтому тратить/терять минимально достижимое время, необходимое для обработки taskUnit.

Хотя есть попытки перефразировать вещи подобным * ML- "сексуальным" образом, результирующая производительность просто ухудшается, выходя "за пределы" территории в реальном времени, вместо какой-либо существенной помощи в улучшении результатов там.

Очень хорошим примером этого является бессмыслица, связанная с "квази-IT-гуру-толпой" усилиями по созданию стандартного "расширения" FIX-протокола финансовых рынков для кодированных полезных нагрузок XHT ML-, в то время как крем-а-ла-крем усилия в области высокочастотной торговли R & D тратят огромные средства/время/усилия на то, как сократить наносекунды, связанные с каждой разгрузкой проводов IP-пакетов и усилением; максимально быстрое устранение/декодирование ожидаемого в реальном времени data -elements, содержащегося в минималистичном дизайне оригинальной спецификации prefixTag:value.

A: Различия в протоколах принципиальны

В то время как WebSockets фокусируется на упаковке port:80 HTML/XHTML -alike и кадрировании некоторого высокоуровневого содержимого полезной нагрузки, ZeroMQ идет прямо в противоположном направлении. Это "скрывает" & "разгрузить" код от любых низкоуровневых деталей на транспортных средствах (таким образом, прозрачно обслуживаемых через INPROC/IPC/TCP/PGM/EPGM/UDP/VMCI/... Транспортные классы, будь то локально, в облаке или сочетание обоих типов)

Протокол WebSocket имеет фиксированную роль клиента и сервера, а также протокол HTTP -s для установления связи.

WebSocket Фокус заканчивается на форматировании контента UTF-8/CRLF, кадрирование между парой 0×00 & 0xff байт и основывается на способности WebBrowsers анализировать такие буферизованные сообщения, которые браузер должен был делать).

В случае, если вы никогда не работали с ZeroMQ,
здесь можно сначала посмотреть "Принципы ZeroMQ Principles менее чем за пять секунд", прежде чем погрузиться в дальнейшие подробности


ZeroMQ предоставляет дизайнеру открытую архитектуру для построения на строительных блоках, которые были разработаны для взаимодействия определенным образом - да, у них есть ПОВЕДЕНИЕ - которое дизайн использует для некоторых более сложных шаблон обмена сообщениями. Это позволяет неограниченное количество абстракций верхнего уровня, которые основаны на наборе проверенных строительных блоков - ZMQ.PUBLISHER просто отправляет сообщения всем ZMQ.SUBSCRIBER -s, которые прослушивают и продемонстрировали свое желание подписаться на некоторые из новости публикуются. Другие ZMQ-примитивы помогают создавать балансировщики нагрузки на основе циклического перебора, дополнительные шаги позволяют создавать отказоустойчивые -s безопасные архитектуры и подобные передовые решения.

enter image description here

A: Функции протокола

В то время как вы спрашивали о надежности протокола, на уровне протокола есть более важные атрибуты - накладные расходы на сборку/сборку/разборку, масштабируемость производительности -s, задержку API-доступа к проводам, поток -s и ослабление атрибуты производительности при растущих уровнях нагрузки.

В то время как порт WebSocket: 80 "открыт" для любого вторжения non- WebSocket, низкоуровневые протоколы ZeroMQ были разработаны для быстрого, эффективного, эксклюзивного ZMQ-2-ZMQ, установления связи между равноправными узлами и всех усилий по проектированию. создаются на основе более высокого уровня API абстракции, с которого можно добавить программное игнорирование -s, основанное на приложениях, которое может вводить действия по исправлению/устранению, чтобы запрошенная проблема с отсутствующим сообщением не создавала никаких неблагоприятных последствий. влияние на состояние приложения.

enter image description here


Трудолюбивые программисты параллельных систем

также хотел бы получить несколько дополнительных бонусных баллов за многопоточность и нулевую копию & внутренности с нулевой задержкой из этого фрагмента глубокой проницательности от Мартина СУСТРИКА, соучредителя обоих ZeroMQ и это немного младшая POSIX-совместимая сестра nanomsg

Ответ 2

Ваш вопрос звучит как "какая разница между Apache и HTTP"

WebSockets - это всего лишь протокол (аналогичный http), тогда как ZeroMQ - это протокол и сервер, который отвечает за жизненный цикл вашего сообщения с момента его получения до его потребления.