← Назад к вопросам

Что такое брокер сообщений? Для чего он используется и какие примеры брокеров вы знаете?

1.3 Junior🔥 121 комментариев
#API и интеграции#Архитектура систем

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Брокер сообщений

Брокер сообщений это промежуточное ПО которое отвечает за приём обработку и передачу сообщений между приложениями. Это основной компонент для асинхронной коммуникации между сервисами.

Для чего используется

1. Асинхронная коммуникация

Приложения не ждут ответа друг друга.

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

2. Развязка сервисов

Сервисы не знают друг о друге напрямую. Коммуникация через брокер.

Плюсы: если один сервис упал другие продолжают работать сообщение останется в очереди пока сервис не восстановится.

3. Масштабируемость

Можно легко добавлять новых потребителей сообщений.

Пример: если нужно добавить отправку SMS при создании заказа просто добавляем новый потребитель очереди который слушает сообщения о заказах.

4. Обработка пиков нагрузки

Пико нагрузки сглаживаются. Сообщения накапливаются в очереди и обрабатываются постепенно.

5. Надежность доставки

Брокер гарантирует доставку сообщения хотя бы один раз или ровно один раз.

6. Обработка с задержкой

Сообщение может быть отправлено позже.

Примеры:

  • Отправить email через 1 час
  • Проверить статус платежа через 10 минут

Примеры брокеров сообщений

1. RabbitMQ

Один из самых популярных. Поддерживает AMQP протокол.

Основные концепции:

  • Producer: приложение которое отправляет сообщение
  • Exchange: распределитель сообщений
  • Queue: очередь сообщений
  • Consumer: приложение которое получает сообщение

Примеры использования:

  • Микросервисная архитектура
  • Обработка длительных операций
  • Система уведомлений

Плюсы: надежный стабильный хорошо документирован Минусы: требует наличия на сервере

2. Apache Kafka

Для потоков данных и высоконагруженных систем.

Отличается от RabbitMQ:

  • Хранит сообщения дольше (replay)
  • Очень высокая пропускная способность
  • Топики вместо очередей
  • Consumer groups

Примеры:

  • Логирование в реальном времени
  • Stream processing
  • Event sourcing

3. Redis (Redis Streams)

Легче чем Kafka но мощнее чем простые очереди.

Плюсы: быстрый простой использует in-memory Минусы: данные могут потеряться при перезагрузке

4. AWS SQS

Управляемый сервис от Amazon.

Плюсы: масштабируется автоматически Минусы: требует AWS и платный

5. AWS SNS

Для публикации подписки (pub-sub).

Отличается от SQS что SNS отправляет сообщение множеству подписчиков одновременно.

6. Google Cloud Pub/Sub

Аналог SNS для Google Cloud.

7. Apache ActiveMQ

Открытый исходный код поддерживает многие протоколы.

8. NATS

Легкий и быстрый брокер сообщений.

Архитектурные паттерны

1. Request-Reply

Производитель отправляет сообщение и ждет ответа.

2. Publish-Subscribe

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

3. Event Sourcing

Все события хранятся и могут быть воспроизведены.

Вывод

Брокер сообщений критичный компонент современной архитектуры микросервисов. Выбирай инструмент исходя из требований: RabbitMQ для надежности Kafka для потоков данных Redis для простоты.

Что такое брокер сообщений? Для чего он используется и какие примеры брокеров вы знаете? | PrepBro