Message-брокеры — это программные компоненты, которые служат посредником при обмене сообщениями между различными приложениями или сервисами. Они позволяют деcoupled (слабосвязанным) приложениям взаимодействовать асинхронно.
Принципы работы:
- Отправители (Producers): Создают сообщения и отправляют их брокеру.
- Брокер (Broker): Получает сообщения от отправителей, хранит их и направляет подписчикам.
- Подписчики (Consumers): Получают сообщения от брокера, когда они становятся доступными.
Преимущества использования:
- Слабая связанность (Loose Coupling): Отправители и подписчики не знают друг о друге напрямую.
- Асинхронность: Отправитель может отправить сообщение и не ждать ответа, продолжая свою работу.
- Надежность: Брокер может гарантировать доставку сообщений даже при отказе одного из участников.
- Масштабируемость: Легко добавлять новых отправителей или подписчиков.
- Управление потоком: Брокер может регулировать скорость потребления сообщений.
Модели обмена сообщениями:
- Point-to-Point (Точка-точка): Сообщение доставляется одному конкретному подписчику из очереди. После прочтения сообщение удаляется из очереди.
- Publish/Subscribe (Издатель/Подписчик): Сообщение отправляется в топик (тему), и может быть получено несколькими подписчиками, подписанными на этот топик. Копия сообщения доставляется каждому подписчику.
Примеры message-брокеров:
- Apache Kafka
- RabbitMQ
- ActiveMQ
- Amazon SQS
- Google Cloud Pub/Sub