Skip to main content

Модуль 1. Основы брокеров

Базовые понятия

Поставщик (Producer)

Сервис, передающий сообщения в брокер.

Сообщение (Messages)

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

Брокер сообщений (Broker)

Промежуточный софт, реализующий логику отправки и получения сообщений от внешних сервисов.

Потребитель (consumer)

Сервис, получающий сообщение из брокера.

Условия поставки

Условие поставки

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

Вот основные виды условий поставки:

FIFO

FIFO (First In — First Out)
  • Первым пришел, первым ушел. Сообщения обрабатываются в том порядке, в котором они попали в очередь.
  • Пример. Пусть продьюсер отправил в очередь сначала сообщение M1, потом M2, потом M3. Консьюмер в таком случае получит их в том же порядке: сначала M1, потом M2, затем M3.
  • Где встречается: обработка заказов, финансовые операции, последовательные изменения состояния.

LIFO

LIFO (Last In — First Out)
  • Последним пришёл, первым ушёл. Какое сообщение пришло последним, то и обрабатывается в первую очередь.
  • Пример. Пусть продьюсер отправил в очередь сначала сообщение M1, потом M2, потом M3. Консьюмер в таком случае получит их в обратном порядке: сначала M3, потом M2, затем M1.
  • Где встречается: обработка задач с приоритетом «самое свежее важнее»: например, отмена предыдущих действий или интерактивные сценарии, где актуальность важнее хронологии.

LIFO встречается редко в брокерах сообщений. И обычно реализуется не как базовое свойство очереди, а как частный приём на уровне логики обработки

Модели потребления

Один потребительМножество потребителей
Удаление при чтенииQueue (классический брокер)Pub-Sub (классический брокер)
Не удаляются при чтении

Модель с одним потребителем и чтением без удаления практически не используется. Как правило применяют Log

Log (Kafka)

Итого можно выделить 3 модели:

  • Queue (Очередь) - один потребитель, сообщения удаляются при чтении
  • Pub-Sub ()