Вопрос проверяет знание инфраструктурных компонентов, применяемых для асинхронного взаимодействия и событийных систем.
Для асинхронных систем чаще всего используются брокеры сообщений.
Наиболее популярны RabbitMQ, Kafka и Redis Streams.
Они позволяют сервисам обмениваться сообщениями без прямых зависимостей.
Выбор брокера зависит от требований к надёжности, скорости и объёму данных.
Асинхронные системы строятся вокруг идеи передачи сообщений через промежуточный слой — брокер сообщений. Он отвечает за доставку, хранение и маршрутизацию событий.
Определение:
RabbitMQ — это брокер сообщений, реализующий модель очередей.
Основные свойства:
Очереди
Подтверждения доставки
Гибкая маршрутизация
Пример сценария:
сервис публикует сообщение
один или несколько consumers обрабатывают его
Подходит для:
фоновых задач
событий домена
надёжной доставки
Определение:
Kafka — это распределённая платформа потоковой передачи данных.
Ключевые особенности:
Лог событий
Высокая пропускная способность
Хранение сообщений на диске
Используется, когда:
важен порядок событий
нужны replay и аналитика
большой объём данных
Более лёгкое решение по сравнению с Kafka.
Особенности:
Работает поверх Redis
Простая настройка
Ограниченная долговечность данных
Подходит для:
небольших асинхронных систем
внутренних сервисов
RabbitMQ — для надёжных очередей.
Kafka — для событийных и data-driven систем.
Redis Streams — компромисс между простотой и асинхронностью.