Различия между AMQP и ZeroMQ
недавно начал изучать эти технологии AMQP (RabbitMQ, ActiveMQ) и ZeroMQ, интересуясь распределенными системами/вычислениями. Был в Гугле и StackOverflow, не мог найти определенного сравнения между ними.
самое дальнее, что я получил, это то, что они не сопоставимы, но я хочу знать различия. Мне кажется, ZeroMQ более децентрализован (нет брокера сообщений, играющего посредника, обрабатывающего сообщения/гарантирующую доставку) и как таковой это быстрее, но не означает, что это полноценная система, а что-то, что нужно обрабатывать более программно, что-то вроде актеров.
AMQP, с другой стороны, кажется более полноценной системой, с центральным брокером сообщений, обеспечивающим надежную доставку, но медленнее, чем ZeroMQ из-за этого. Однако центральный брокер создает единую точку отказа.
возможно, метафорой будет клиент / сервер против P2P?
мои выводы верны? Кроме того, что бы будут ли преимущества, недостатки или случаи использования одного над другим? Сравнение использования *MQ против чего-то вроде актеров Akka также было бы неплохо.
редактировать еще немного осмотрелся.. ZeroMQ, кажется, новый претендент на AMQP, кажется, намного быстрее, только проблема будет принятие/реализации?
6 ответов
AMQP-это протокол. ZeroMQ-библиотека обмена сообщениями.
AMQP предлагает регулирование потока и надежную доставку. Он определяет стандартные, но расширяемые метаданные для сообщений (например, reply-to, time-to-live, Плюс любые заголовки, определенные приложением). ZeroMQ просто обеспечивает разграничение сообщений (т. е. разбиение потока байтов на атомарные единицы) и предполагает, что свойства базового протокола (например, TCP) достаточны или что приложение создаст дополнительную функциональность для потока управление, надежность или что-то еще поверх ZeroMQ.
хотя более ранние версии AMQP были определены по линиям клиент / сервер и поэтому требовали брокера, это больше не верно для AMQP 1.0, который по своей сути является симметричным одноранговым протоколом. Правила для посредников (таких как брокеры) накладываются поверх этого. Ссылка от Alexis, сравнивающая брокера и брокера, дает хорошее описание преимуществ, которые могут предложить такие посредники. AMQP определяет правила для взаимодействие между различными компонентами-клиентами, "умными клиентами", брокерами, мостами, маршрутизаторами и т. д - таким образом, система может быть составлена путем выбора полезных частей.
вот довольно подробное сравнение AMQP и 0MQ:http://www.zeromq.org/docs:welcome-from-amqp
обратите внимание, что 0MQ также является протоколом (ZMTP) с несколькими реализациями и сообществом.
в ZeroMQ вообще нет очередей сообщений, таким образом, имя. Он просто предоставляет способ использовать семантику обмена сообщениями над обычными сокетами.
AMQP-стандартный протокол для очереди сообщений, который предназначен для использования с брокером сообщений, обрабатывающим все сообщения, отправляемые и получаемые. Он имеет множество функций, которые доступны, потому что он направляет весь трафик сообщений через брокера. Это может показаться медленным, но на самом деле это довольно быстро при использовании внутри центра обработки данных, где задержки между хостами крошечные.
Я не совсем уверен, как ответить на ваш вопрос, который сравнивал много разных вещей... но посмотрите, что может помочь вам начать копаться в этих вопросах:http://www.rabbitmq.com/blog/2010/09/22/broker-vs-brokerless/
Broker-less-неправильное название по сравнению с брокерами сообщений, такими как ActiveMQ, QPid, Kafka для простой проводки.
Он полезен и может быть применен к горячим точкам для уменьшения сетевых скачков и, следовательно, задержки, поскольку мы добавляем надежность, храним и перенаправляем функцию и требования высокой доступности, вам, вероятно, понадобится распределенная брокерская служба вместе с очередью для обмена данными для поддержки свободной связи-развязанной во времени-эта топология и архитектура могут быть реализованы с помощью ZeroMQ, вы должны рассмотреть свои варианты использования и посмотреть, требуется ли асинхронный обмен сообщениями, и если да, то где ZeroMQ подойдет, он играет хорошую роль в решении, и разумное знание TCP/IP и программирования сокетов поможет вам оценить все другие, такие как ZeroMQ, AMQP и т. д.
AMQP (Advanced Message Queuing Protocol) - это стандартный протокол уровня двоичного провода, который позволяет соответствующим клиентским приложениям взаимодействовать с соответствующими брокерами промежуточного программного обеспечения обмена сообщениями. AMQP позволяет кросс-платформенным службам / системам между различными предприятиями или внутри предприятия легко обмениваться сообщениями между собой независимо от поставщика брокера сообщений и платформы. Есть много брокеров, которые реализовали протокол AMQP, как RabbitMQ, Apache QPid, Apache Аполлон и др.
ZeroMQ-это высокопроизводительная библиотека асинхронных сообщений, предназначенная для использования в масштабируемых распределенных или параллельных приложениях. Он предоставляет очередь сообщений, но в отличие от промежуточного программного обеспечения, ориентированного на сообщения, система ØMQ может работать без выделенного брокера сообщений.