Брокер сообщений (англ. message broker, integration broker, interface engine) — архитектурный шаблон в распределённых системах; приложение, которое преобразует сообщение по одному протоколу от приложения-источника в сообщение протокола приложения-приёмника, тем самым выступая между ними посредником. Кроме преобразования сообщений из одного формата в другой, в задачи брокера сообщений также входит:

  • проверка сообщения на ошибки;
  • маршрутизация конкретному приемнику(ам);
  • разбиение сообщения на несколько маленьких, а затем агрегирование ответов приёмников и отправка результата источнику;
  • сохранение сообщений в базе данных;
  • вызов веб-сервисов;
  • распространение сообщений подписчикам, если используются шаблоны типа «издатель — подписчик».
Диаграмма последовательности для брокера сообщений

Использование брокеров сообщений позволяет разгрузить веб-сервисы в распределённой системе, так как при отправке сообщений им не нужно тратить время на некоторые ресурсоёмкие операции типа маршрутизации и поиска приёмников. Кроме того, брокер сообщений для повышения эффективности может реализовывать стратегии упорядоченной рассылки и определение приоритетности, балансировать нагрузку и прочее.


Список брокеров сообщений

править
  • Amazon Web Services (AWS) Amazon MQ
  • Amazon Web Services (AWS) Kinesis
  • Apache ActiveMQ
  • Apache Artemis
  • Apache Kafka
  • Apache Qpid
  • Apache Pulsar
  • Cloverleaf (Enovation Lifeline - NL)
  • Comverse Message Broker (Comverse Technology)
  • Eclipse Mosquitto MQTT Broker (Eclipse Foundation)
  • Enduro/X Transactional Message Queue (TMQ)
  • Financial Fusion Message Broker (Sybase)
  • Fuse Message Broker (enterprise ActiveMQ)
  • Gearman
  • Google Cloud Pub/Sub (Google)
  • HiveMQ HiveMQ MQTT Broker
  • EMQX EMQX MQTT Broker
  • HornetQ (Red Hat) (Now part of Apache Artemis)
  • IBM App Connect
  • IBM MQ
  • JBoss Messaging (JBoss)
  • JORAM
  • Microsoft Azure Service Bus (Microsoft)
  • Microsoft BizTalk Server (Microsoft)
  • MigratoryData (a publish/subscribe WebSockets message broker written to address the C10M problem )
  • NATS (MIT Open Source License, written in Go)
  • Open Message Queue
  • Oracle Message Broker (Oracle Corporation)
  • RabbitMQ (Mozilla Public License, written in Erlang)
  • Redis An open source, in-memory data structure store, used as a database, cache and message broker.
  • SAP PI (SAP AG)
  • Solace PubSub+
  • Spread Toolkit
  • Tarantool, a NoSQL database, with a set of stored procedures for message queues
  • TIBCO Enterprise Message Service
  • WSO2 Message Broker

Ссылки

править