• Русский
  • Архитектура

    Архитектура RabbitMQ основана на паттерне очереди сообщений и состоит из нескольких компонентов, включая Продюсеры, Очереди Сообщений, Потребители и Брокер.

    В RabbitMQ существуют несколько ролей:

    • Продюсеры: Продюсеры отвечают за создание и отправку сообщений в очереди сообщений RabbitMQ. Они публикуют сообщения в Обменник и указывают Ключ Маршрутизации сообщения.
    • Обменник: Обменник получает сообщения от Продюсеров и маршрутизирует их в одну или несколько Очередей Сообщений на основе Ключа Маршрутизации сообщения. Обменники бывают разных типов, таких как прямая передача, тематическая передача и рассылка, и они определяют метод маршрутизации сообщения на основе правил сопоставления Ключа Маршрутизации.
    • Очереди Сообщений: Очереди Сообщений являются основным компонентом RabbitMQ, хранящим сообщения, ожидающие обработки. Очереди Сообщений управляют сообщениями по принципу «первым пришёл — первым вышел» (FIFO), обеспечивая порядок сообщений. Потребители извлекают сообщения из Очереди Сообщений для обработки.
    • Потребители: Потребители получают сообщения из Очереди Сообщений и выполняют необходимую обработку. Они могут подписаться на одну или несколько Очередей Сообщений и при необходимости указать механизм подтверждения для сообщений, гарантируя, что сообщения подтверждаются после их получения.
    • Брокер: Брокер является основным компонентом RabbitMQ; он получает сообщения от Продюсеров и маршрутизирует их в соответствующие Очереди Сообщений. Брокер также отвечает за управление доставкой сообщений, подтверждениями и постоянным хранением.

    Архитектура RabbitMQ поддерживает различные паттерны обмена сообщениями, такие как «точка-точка», «публикация/подписка» и «запрос/ответ». Она также предоставляет гибкие правила маршрутизации, постоянное хранение, надёжную доставку сообщений и функции приоритизации сообщений для удовлетворения потребностей различных сценариев.

    Следующая диаграмма иллюстрирует процесс публикации и потребления сообщений через Обменник.

    Модель отправки и получения сообщений

    Для ознакомления с концепциями и принципами каждого компонента, пожалуйста, обратитесь к Основным Концепциям.