Получить доступ

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

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

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

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

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

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

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

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

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

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

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

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

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

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

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

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

Разбор темы

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

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем