Введение в основные концепции RabbitMQ
Диаграмма концепций RabbitMQ
Объяснение концепций
Сообщение
Сообщение состоит из заголовка сообщения (т.е. дополнительной конфигурационной информации) и тела сообщения (т.е. содержания сообщения).
Издатель
Производитель сообщения, который представляет собой клиентское приложение, публикующее сообщения в обмен.
Обмен
Обмен используется для приема сообщений, отправляемых производителями, и маршрутизации этих сообщений в очереди на сервере.
Существуют четыре типа обменов:
-
Тип прямого обмена: Сравнивает маршрутный ключ в сообщении с маршрутными ключами, связанными со всеми связками обмена. Если они совпадают, сообщение отправляется в соответствующую очередь этой связки.
-
Тип тематического обмена: Сравнивает маршрутный ключ в сообщении с маршрутными ключами, связанными со всеми связками обмена. Если есть совпадение, сообщение отправляется в соответствующую очередь этой связки.
-
Тип обмена "все публикуют": Непосредственно направляет сообщения в соответствующие очереди всех связок, игнорируя маршрутный ключ во время маршрутизации.
-
Тип обмена "заголовки": Сравнивает заголовки в сообщении с параметрами, связанными со всеми связками обмена. Если есть совпадение, сообщение отправляется в соответствующую очередь этой связки (менее часто используется, аналогично типу прямого обмена).
Примечание: Подробные объяснения типов обменов будут предоставлены в последующих разделах о режимах работы. Это всего лишь обзор.
Связывание
Отношение, используемое для установления связи между сообщенческими очередями и обменами.
Очередь
Сообщенческая очередь, используемая для хранения сообщений до их доставки потребителям. Она служит как контейнер для сообщений и конечная точка для сообщений. Сообщение может быть доставлено одной или нескольким очередям. Сообщения остаются в очереди в ожидании подключения пользователей и их извлечения.
Соединение
Сетевое соединение, например, TCP-соединение.
Канал
Канал представляет собой виртуальное соединение, установленное в реальном TCP-соединении. Все команды AMQP отправляются через каналы, будь то публикация сообщений, подписка на очереди или получение сообщений. Этот дизайн вводит концепцию каналов для повторного использования одного TCP-соединения, поскольку установка и разрыв TCP-соединений затратны для операционной системы.
Потребитель
Потребитель сообщений, представляющий клиентское приложение, извлекающее сообщения из сообщенческих очередей.
Виртуальный хост
Виртуальный хост представляет собой набор обменов, сообщенческих очередей и связанных объектов. Это независимая доменная область сервера, разделяющая ту же самую среду идентификации и шифрования. Каждый виртуальный хост, по сути, является мини-версией сервера RabbitMQ со своими очередями, обменами, связями и механизмами разрешений.
Виртуальные хосты являются фундаментальным концепцией в AMQP и должны быть указаны при установлении соединения. По умолчанию виртуальный хост для RabbitMQ - /.
Примечание: Виртуальный хост представляет собой форму стратегии изоляции ресурсов, позволяющую разделить несколько изолированных областей в одном сервере RabbitMQ.
Брокер
Представляет собой физическую сущность сервера сообщений.