Какие основные компоненты есть в RabbitMQ?

«Какие основные компоненты есть в RabbitMQ?» — вопрос из категории Брокеры сообщений, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основные компоненты RabbitMQ:

  • Producer (Publisher): Приложение, которое отправляет сообщения.
  • Consumer: Приложение, которое получает и обрабатывает сообщения.
  • Queue: Буфер, хранящий сообщения. Сообщения остаются в очереди до получения потребителем.
  • Exchange: Принимает сообщения от продюсеров и маршрутизирует их в очереди на основе типа обмена и правил (bindings).
  • Binding: Правило, связывающее exchange с очередью. Часто включает ключ маршрутизации (routing key).
  • Message: Данные, передаваемые от продюсера к потребителю, состоящие из заголовков (properties) и тела (payload).
  • Channel: Виртуальное соединение внутри одного TCP-соединения. Позволяет многопоточную работу без открытия множества дорогих TCP-соединений.
  • Virtual Host: Логическая изоляция внутри одного экземпляра брокера. Имеет собственные наборы обменников, очередей и прав доступа.

Пример потока: Producer -> Exchange -> (на основе Binding) -> Queue -> Consumer.