Вопрос с собеседования · Брокеры сообщений

Чем SQS FIFO-очередь отличается от Standard-очереди?

MiddleRabbitMQ и SQSRabbitMQAmazon SQS
Ещё спрашивают так:
  • Когда нужна FIFO-очередь SQS?
Коротко

FIFO — порядок внутри MessageGroupId и дедупликация в окне 5 минут, но ограниченная пропускная способность. Standard — почти неограниченный поток, но возможны дубли и перестановки.

  • MessageGroupId — аналог ключа партиции в Kafka
  • Дедупликация по MessageDeduplicationId или хешу тела
  • Обработка в группе последовательна — медленное сообщение задерживает группу

А ещё Даже с FIFO потребитель лучше делать идемпотентным

Подробно

Standard SQS даёт at-least-once и «best-effort ordering»: высокая пропускная способность, но сообщения могут прийти не по порядку и продублироваться — поэтому consumer обязан быть идемпотентным. FIFO упорядочивает сообщения в пределах MessageGroupId и убирает дубли через MessageDeduplicationId в окне 5 минут (фактически exactly-once-приём), но throughput ограничен. Выбор: Standard — для независимых задач, FIFO — когда порядок и отсутствие дублей критичны (например, события одного аккаунта).

Что хотят услышать

  • Различие гарантий и пропускной способности.
  • Роль MessageGroupId.
  • Когда что выбирать.

Частые ошибки

  • Считать Standard строго упорядоченной.
  • Думать, что FIFO снимает требование идемпотентности навсегда (окно дедупа ограничено 5 минутами).

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗FIFO хранит сообщения дольше, чем Standard
  • ✓FIFO: порядок в группе и дедупликация, но ниже throughput; Standard — быстрее, без гарантий
  • ✗FIFO: строгий порядок во всей очереди и exactly-once навсегда; Standard — порядок только в группе
  • ✗Они отличаются только ценой, поведение идентично

Что спросят дальше

  • Зачем нужен MessageGroupId?
  • Как Standard SQS требует идемпотентности?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования