Брокер сообщений
Брокер сообщений (англ. 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
Ссылки
- Samtani, G. Integration Brokers and Web Services // Web Services Business Strategies and Architectures / Samtani, G., Sadhwani, D.. — Apress, 2013. — P. 71–84. — ISBN 9781430253563.