Термин · Глоссарий B2B-ПО

Очередь сообщений

Очередь сообщений – компонент промежуточного программного обеспечения (middleware) для асинхронной передачи сообщений между сервисами. Обеспечивает буферизацию, гарантии доставки и развязку производителей и потребителей сообщений.

Буква «О» В категориях: 3 Платформ: 6+

Введение

Очередь сообщений (Message Queue) – компонент промежуточного ПО, обеспечивающий асинхронную передачу сообщений между приложениями или сервисами через промежуточное хранилище. Производитель (producer) помещает сообщение в очередь, не ожидая немедленной обработки. Потребитель (consumer) забирает и обрабатывает его в своём темпе.

Очереди сообщений – фундаментальный паттерн слабой связанности (loose coupling) в распределённых системах. Они выравнивают пиковую нагрузку и изолируют сервисы от сбоев друг друга.

История и контекст

Концепция очередей сообщений восходит к мейнфреймовым системам IBM MQ (MQSeries, 1993). Стандарт AMQP (Advanced Message Queuing Protocol) разработан в 2003 году JPMorgan Chase и открыт в 2006-м. RabbitMQ, реализующий AMQP, появился в 2007 году. Apache Kafka, созданный в LinkedIn в 2011-м, переосмыслил очереди как distributed commit log с возможностью replay.

В России активно применяются RabbitMQ, Apache Kafka, а также отечественные решения – Tarantool Queue и Artemis.

Как это работает

Ключевые паттерны взаимодействия через очереди:

  • Point-to-Point (P2P) – сообщение потребляет один consumer; используется для задач-воркеров (image processing, email sending);
  • Publish/Subscribe (Pub/Sub) – сообщение получают все подписчики на топик/обменник; broadcast уведомлений;
  • Request/Reply – producer ожидает ответа через отдельную очередь; используется в RPC-like сценариях.

Гарантии доставки: At-most-once (без повторов, возможна потеря), At-least-once (возможны дубликаты), Exactly-once (сложнее всего обеспечить, поддерживается Kafka Transactions).

RabbitMQ vs Apache Kafka

RabbitMQ – «умный» брокер с маршрутизацией через exchanges, поддержкой приоритетов и TTL. Kafka – distributed append-only log с хранением истории и replay. Kafka предпочтительна для high-throughput event streaming, RabbitMQ – для task queues и сложной маршрутизации.

Где применяется

  • Микросервисы – асинхронная интеграция сервисов без прямых HTTP-вызовов;
  • Обработка задач – email-рассылки, генерация отчётов, ресайз изображений в фоне;
  • Event-driven системы – распространение Domain Events между сервисами;
  • IoT – сбор телеметрии с тысяч устройств через MQTT-брокеры;
  • Финтех – транзакционные очереди с гарантиями exactly-once.

Преимущества и ограничения

Преимущества: слабая связанность сервисов; выравнивание нагрузки (load leveling); отказоустойчивость (сообщения сохраняются при сбое consumer); возможность горизонтального масштабирования потребителей.

Ограничения: eventual consistency вместо немедленной согласованности; сложность отладки асинхронных цепочек; необходимость обрабатывать дубликаты (идемпотентность); инфраструктурные затраты на поддержку брокера.

Связь с другими понятиями

Event-driven Architecture строится поверх очередей сообщений и брокеров. Микросервисы используют очереди как транспорт для асинхронной интеграции. CQRS применяет очереди для синхронизации read и write моделей. WebSocket решает схожую задачу в real-time для браузерных клиентов. IIoT использует MQTT-брокеры как специализированные очереди для промышленной телеметрии.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «Очередь сообщений».

Платформы класса «Очередь сообщений»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

SP

SET Prisma 7

Управление производством (MES)
Промышленная система управления производственными и логистическими процессами с акцентом на планирование, учёт...
Цена по запросу
Подробнее →
MEScase — российское ПО для мониторинга, аналитики и оптимизации технологических, производственных и бизнес-пр...
Цена по запросу
Подробнее →
MB

MES Builder. Системное ядро

Управление производством (MES)
MES Builder. Системное ядро — гибридная платформа для разработки интегрированных MES-систем с поддержкой IIoT....
Цена по запросу
★ 4.7
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «Очередь сообщений».

Где применяется

Отрасли, в которых «Очередь сообщений» используется на практике. Откройте отраслевой раздел Цифрового маркетплейса, чтобы увидеть подходящие решения, кейсы и новости.

Частые вопросы про Очередь сообщений

Чем очередь сообщений отличается от прямого HTTP-вызова?

HTTP – синхронный запрос: caller ждёт ответа. Очередь – асинхронная: producer кладёт сообщение и продолжает работу. Consumer обрабатывает в своём темпе. Это развязывает сервисы и позволяет им работать независимо.

Что такое AMQP?

Advanced Message Queuing Protocol – открытый стандарт протокола очередей сообщений. Определяет формат сообщений, механизмы маршрутизации и гарантии доставки. RabbitMQ – наиболее известная AMQP-реализация.

Когда использовать Kafka, а когда RabbitMQ?

Kafka – для высокопроизводительного event streaming, хранения истории событий и replay. RabbitMQ – для task queues, сложной маршрутизации по правилам, приоритетных очередей и TTL сообщений.

Что такое Dead Letter Queue?

Специальная очередь, куда помещаются сообщения, которые не удалось обработать после нескольких попыток. Позволяет изолировать «отравленные» сообщения без потери и разобраться с ними отдельно.

Как обеспечить exactly-once доставку?

Exactly-once – самая сложная гарантия. В Kafka обеспечивается через транзакции (Kafka Transactions + idempotent producers). Требует поддержки как в брокере, так и на стороне consumer.