Какие популярные брокеры очереди сообщений вы знаете
Что проверяют
Для системного аналитика важен не тюнинг брокера, а понимание, когда интеграцию делать асинхронной и как описать её в требованиях. Следом обычно спрашивают, чем Kafka отличается от RabbitMQ с точки зрения постановки задачи и как вы документируете контракт сообщения.
Как отвечать
Назовите основные и сразу разницу моделей:
- Apache Kafka: журнал событий. Сообщение не исчезает после чтения, его независимо читают несколько систем, хранится оно по сроку, порядок гарантирован внутри партиции. Подходит для событий вида «заказ создан», которые нужны многим потребителям, и для потоков в хранилище данных;
- RabbitMQ: очередь задач с маршрутизацией. Сообщение забирает один обработчик, после подтверждения оно удаляется. Подходит для команд вроде «отправь письмо» или «сформируй документ»;
- облачные сервисы: Amazon SQS, Google Pub/Sub, Yandex Message Queue, когда инфраструктура в облаке и свой брокер эксплуатировать не хотят;
- ещё встречаются: NATS, ActiveMQ в корпоративных Java-системах, IBM MQ в банках.
Затем покажите, что вы пишете в постановке. Для каждого сообщения: топик или очередь, кто публикует и кто читает, схема полей с типами и обязательностью, ключ сообщения (от него зависит порядок), гарантия доставки (почти везде at least once, значит потребитель обязан быть идемпотентным), обработка ошибок и повторов, срок хранения. Для такого описания есть стандарт AsyncAPI, аналог OpenAPI для асинхронных интерфейсов, а сам поток удобно показать диаграммой последовательности.
Добавьте, почему интеграция асинхронная: она развязывает системы по времени и выдерживает пики, но ответ приходит не сразу, и нужны статусы и итоговая согласованность.
Где спотыкаются
Представляют брокер базой данных, из которой можно делать выборки. Kafka хранит события, но искать в ней по полям без дополнительных инструментов нельзя.
Не указывают в требованиях ключ и порядок сообщений. Разработчики выбирают сами, и события одного заказа обрабатываются не в той последовательности.
Считают, что сообщение придёт ровно один раз. Дубли при повторной доставке нормальны, и в постановке должно быть написано, как система их распознаёт.