Введение в основные концепции RabbitMQ

Диаграмма концепций RabbitMQ

Диаграмма концепций RabbitMQ

Объяснение концепций

Сообщение

Сообщение состоит из заголовка сообщения (т.е. дополнительной конфигурационной информации) и тела сообщения (т.е. содержания сообщения).

Издатель

Производитель сообщения, который представляет собой клиентское приложение, публикующее сообщения в обмен.

Обмен

Обмен используется для приема сообщений, отправляемых производителями, и маршрутизации этих сообщений в очереди на сервере.

Существуют четыре типа обменов:

  • Тип прямого обмена: Сравнивает маршрутный ключ в сообщении с маршрутными ключами, связанными со всеми связками обмена. Если они совпадают, сообщение отправляется в соответствующую очередь этой связки.

  • Тип тематического обмена: Сравнивает маршрутный ключ в сообщении с маршрутными ключами, связанными со всеми связками обмена. Если есть совпадение, сообщение отправляется в соответствующую очередь этой связки.

  • Тип обмена "все публикуют": Непосредственно направляет сообщения в соответствующие очереди всех связок, игнорируя маршрутный ключ во время маршрутизации.

  • Тип обмена "заголовки": Сравнивает заголовки в сообщении с параметрами, связанными со всеми связками обмена. Если есть совпадение, сообщение отправляется в соответствующую очередь этой связки (менее часто используется, аналогично типу прямого обмена).

Примечание: Подробные объяснения типов обменов будут предоставлены в последующих разделах о режимах работы. Это всего лишь обзор.

Связывание

Отношение, используемое для установления связи между сообщенческими очередями и обменами.

Очередь

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

Соединение

Сетевое соединение, например, TCP-соединение.

Канал

Канал представляет собой виртуальное соединение, установленное в реальном TCP-соединении. Все команды AMQP отправляются через каналы, будь то публикация сообщений, подписка на очереди или получение сообщений. Этот дизайн вводит концепцию каналов для повторного использования одного TCP-соединения, поскольку установка и разрыв TCP-соединений затратны для операционной системы.

Потребитель

Потребитель сообщений, представляющий клиентское приложение, извлекающее сообщения из сообщенческих очередей.

Виртуальный хост

Виртуальный хост представляет собой набор обменов, сообщенческих очередей и связанных объектов. Это независимая доменная область сервера, разделяющая ту же самую среду идентификации и шифрования. Каждый виртуальный хост, по сути, является мини-версией сервера RabbitMQ со своими очередями, обменами, связями и механизмами разрешений.

Виртуальные хосты являются фундаментальным концепцией в AMQP и должны быть указаны при установлении соединения. По умолчанию виртуальный хост для RabbitMQ - /.

Примечание: Виртуальный хост представляет собой форму стратегии изоляции ресурсов, позволяющую разделить несколько изолированных областей в одном сервере RabbitMQ.

Брокер

Представляет собой физическую сущность сервера сообщений.