Чем SQS FIFO-очередь отличается от Standard-очереди?
- Когда нужна 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 требует идемпотентности?
Разбор темы
- RabbitMQ, SQS и классические очереди
Модель exchange/binding/queue, ack/nack и publisher confirms, prefetch, DLQ через DLX, отложенные сообщения, SQS Standard vs FIFO и visibility timeout.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.