Поскольку я только что ответил на несколько похожий вопрос - я хотел бы ответить на ваш, но с несколькими дополнительными терминологиями, в конце, чтобы прояснить, что такое MOM на практике.Вот несколько простых английских определений нескольких компонентов (поскольку чем больше вы копаетесь в MOM, эти термины придут снова и снова, а также вопрос будет помечен rabbitmq
):
- MOM - это подход, архитектура для распределенной системы, т. Е. Промежуточный уровень для всей распределенной системы, где много внутренней коммуникации (компонент запрашивает данные, а затем должен отправить их другому компоненту, который будетвыполнять некоторую обработку данных), поэтому компоненты должны обмениваться информацией / данными между ними.
- Брокер сообщений - это любая система (в MOM) с обработкой сообщений, или, если быть более точным,который направляет сообщения конкретному потребителю / получателю.Message Broker обычно строится на MOM.MOM обеспечивает базовую связь между приложениями и такие вещи, как постоянство сообщений и гарантированная доставка.«Брокеры сообщений являются строительным блоком промежуточного программного обеспечения, ориентированного на сообщения».
- Rabbitmq - брокер сообщений;реализация MOM;реализация AMQP с открытым исходным кодом;согласно Википедии:
RabbitMQ - это программное обеспечение брокера сообщений с открытым исходным кодом (иногда называемое промежуточным программным обеспечением, ориентированным на сообщения), которое реализует расширенный протокол очереди сообщений (AMQP).
Я упомянул Rabbitmq здесь, чтобы уточнить MOM, как он используется вокруг нас.
Message-Oriented-Middleware - это подход, архитектура дляраспределенная система, т. е. промежуточный уровень для всей распределенной системы, где существует много внутренних связей, поэтому компонентам приходится обмениваться информацией / данными между собой, например, компонент запрашивает данные, а затем должен отправить их другому компоненту, которыйбудет делать некоторую обработку данных.Короче говоря, это способ проектирования системы, и да, в зависимости от общих требований, то есть мы будем разрабатывать распределенную систему с некоторой внутренней связью.Самым большим преимуществом архитектуры / решения MOM является разделение компонентов, т.е. если мы собираемся изменить компонент запроса данных, это не повлияет на компоненты обработки данных, так как они взаимодействуют через MOM (например, Rabbitmq Cluster) -компонент обработки данных получает данные в сообщениях формы.
В конце концов, MOM - это просто проектное решение, в котором мы используем промежуточное программное обеспечение для склеивания наших системных (распределенных) компонентов, промежуточное программное обеспечение для обработки связи между ними,в форме сообщений (например, JSON).
Очень важный вопрос и ответ SO - Посредник сообщений и MOM (промежуточное ПО, ориентированное на сообщения)