Подтвердить что ты не робот

Message broker против MOM (ориентированное на сообщения промежуточное ПО)

Я немного смущен относительно того, какая разница между брокером сообщений, например. RabbitMQ и ориентированное на сообщения промежуточное ПО. Я не могу найти много информации, кроме того, что в Википедии. При поиске MOM я нахожу информацию о AMQP, которая утверждает, что это протокол для MOM.. что это значит? Что такое MOM? Я также прочитал, что RabbitMQ реализует протокол AMPQ.. так почему же это делает RabbitMQ посредником-посредником? Являются ли брокеры сообщений и MOM одинаковыми?

Надеюсь, что некоторые могут разгадать мое замешательство. спасибо

4b9b3361

Ответ 1

"MOM" в широком смысле означает любую технологию, которая может доставлять "сообщения" из одного приложения для пользовательского пространства в другое. Обычно сообщение понимается как дискретная часть информации по сравнению с потоком.

Продукты MOM были довольно большими и сложными: CORBA, JMS, TIBCO, WebsphereMQ и т.д. и пытались сделать гораздо больше, чем просто доставлять сообщения.

Брокер - это определенный набор шаблонов маршрутизации и очередей, и мы обычно используем термин "брокер" конкретно в MOM (по сравнению с HTTP, электронной почтой, XMPP и т.д.). Маршрутизация означает, что одно сообщение отправляется одному одноранговому узлу, к одному из многих одноранговых узлов, ко всем многим одноранговым узлам и т.д. Очередь означает, что сообщения хранятся в памяти или на диске, пока они не могут быть доставлены (а в некоторых случаях и подтверждены).

AMQP используется для конкретных брокерских паттеров, поэтому приложение может полагаться на последовательное поведение любого AMKP-совместимого брокера (таким образом, RabbitMQ и OpenAMQ выглядели так же, как и в клиентском приложении, например, два HTTP или два сервера XMPP будут выглядеть одинаково). AMQP/1.0 указывает только соединение между узлами, поэтому у вас нет гарантий поведения. Это упрощает внедрение AMQP/1.0 для фирм, но не обеспечивает интероперабельности.

ZeroMQ - это ориентированное на сообщения промежуточное программное обеспечение, которое определяет, например AMQP/1.0, соединения между частями, а не поведение центрального брокера. Однако относительно легко писать брокеров MOM с использованием 0MQ, и мы сделали несколько из них (например, Majordomo).

Ответ 2

Обзор -

  • A протокол - набор правил.
  • AMQP - AMQP - это открытый интернет-протокол для надежной отправки и получения сообщений.
  • MOM (ориентированное на сообщения-middleware) - это подход, архитектура для распределенной системы, то есть средний уровень для всей распределенной системы, где много внутренней связи (компонент запрашивает данные, а затем необходимо отправить его другому компоненту, который будет выполнять некоторую обработку данных), поэтому компоненты должны обмениваться информацией/данными между ними.
  • Брокер сообщений - это любая система (в MOM), которая обрабатывает сообщения (отправку, а также получение), или, точнее, передает маршруты конкретному потребителю/получателю. Брокер сообщений обычно построен на MOM. MOM обеспечивает базовую коммуникацию между приложениями и такие вещи, как постоянство сообщений и гарантированная доставка. "Брокеры сообщений являются строительным блоком промежуточного программного обеспечения, ориентированного на Message".
  • Rabbitmq - брокер сообщений; реализация MOM; реализация AMQP с открытым исходным кодом; согласно Википедии:

    RabbitMQ - это программное обеспечение брокера сообщений с открытым исходным кодом (иногда так называемое ориентированное на сообщения промежуточное ПО), которое реализует расширенный Message Queuing Protocol (AMQP).


Как вы спросили:

При поиске MOM я нахожу информацию о AMQP, которая утверждает, что это протокол для MOM.. что это значит?

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

Что такое MOM?

Message-Oriented-Middleware - это подход, архитектура для распределенной системы, то есть средний уровень для всей распределенной системы, где есть много внутренней связи (компонент запрашивает данные, а затем должен отправить его другому компонент, который будет выполнять некоторую обработку данных), поэтому компоненты должны обмениваться информацией/данными между ними. Короче говоря, это способ разработки системы, например: в зависимости от общих требований нам необходимо разработать распределенную систему с некоторой внутренней связью. Самым большим преимуществом архитектуры/решения MOM является развязка компонентов, т.е. Если мы собираемся изменить компонент запроса данных, это не повлияет на компоненты обработки данных, поскольку они обмениваются данными через MOM (например, кластер Rabbitmq) компонент обработки данных получает данные в виде сообщений формы, которые затем анализируют и обрабатывают их.

MOM в конце - это просто дизайнерское решение, мы используем промежуточное программное обеспечение для склеивания наших системных (распределенных) компонентов, промежуточного программного обеспечения для обработки связи между ними в виде сообщений (например, JSON). Для реализации ориентированного на сообщения промежуточного программного обеспечения нам нужно больше - набор конкретных правил, то есть, как будут публиковаться, потребляться сообщения, как будет выполняться подтверждение, срок службы сообщения до его потребления, сохранение сообщения и т.д. AMQP - это в основном этот набор правил, то есть стандарт/протокол для реализации MOM, то есть система обмена сообщениями с использованием AMQP, означает, что он ограничивается указанными правилами. Материал из Википедии:

AMQP определяет поведение поставщика сообщений и клиента для что реализации от разных поставщиков являются взаимозаменяемыми, так же, как SMTP, HTTP, FTP и т.д. создали межоперационные системы.

Я также прочитал, что RabbitMQ реализует протокол AMPQ.. так почему это делает RabbitMQ брокером сообщений?

Да, Rabbitmq является брокером сообщений (издатель → exchange → queue → consumer). Это реализация AMQP с открытым исходным кодом, то есть система обмена сообщениями/брокера, которая ограничивается AMQP (правила AMQP) - в качестве промежуточного программного обеспечения можно использовать Rabbitmq, следовательно, MOM.

AMQP - это всего лишь набор правил, то есть сообщения будут публиковаться, сохраняться (в очереди), потребляться, подтверждения доставки и т.д.

Являются ли брокеры сообщений и MOM одинаковыми?

Простыми словами: Да. Если нам нужно идти с дизайном MOM для нашей распределенной системы, мы можем просто использовать Rabbitmq (брокер сообщений, реализацию AMQP) в качестве промежуточного программного обеспечения.

Ответ 3

Брокеры сообщений - это один (довольно популярный) вид MOM. Другой вид MOM - это брокерская MOM, как ZeroMQ. При использовании MOM на основе брокера все сообщения отправляются в одно центральное место: брокер и получают оттуда. Брокер меньше, чем MOM, обычно разрешает одноранговую передачу сообщений (но не исключает вариант центрального сервера).

AMQP - это определение протокола MOM на основе брокера (по крайней мере, все версии до 1.0, которые дрейфуют в более общую MOM), и существует несколько различных брокеров сообщений, реализующих этот протокол, RabbitMQ является лишь одним из них.