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

Что дают publisher confirms в RabbitMQ?

MiddleRabbitMQ и SQSRabbitMQ
Ещё спрашивают так:
  • Как убедиться, что RabbitMQ принял сообщение?
Коротко

Publisher confirms — брокер подтверждает издателю, что сообщение принято (а для persistent в durable-очереди — записано на диск). Без них о сохранности отправки судить нельзя.

  • Подтверждения асинхронные, пакетами; nack — нужно повторить
  • Для надёжности: durable exchange и queue, persistent сообщения, confirms, quorum queues
  • Транзакции AMQP — медленная альтернатива

А ещё Неподтверждённые хранят в памяти и повторяют — значит, нужна идемпотентность потребителя

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

Подробно

По умолчанию basicPublish ничего не подтверждает: метод вернулся — это ещё не значит, что брокер принял сообщение и (для durable-очереди) записал его. Publisher confirms включают асинхронные ack/nack от брокера на каждое опубликованное сообщение, так продюсер узнаёт об успехе или сбое и может переслать. Отдельно есть publisher returns (mandatory=true): брокер вернёт сообщение, которое не попало ни в одну очередь (нет подходящего binding). Confirms подтверждают приём брокером, но не доставку до consumer-а.

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

  • Что подтверждается и когда.
  • Связка с durable и persistent.
  • Повтор при nack и дубли.

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

  • Считать, что успешный basicPublish = сообщение сохранено.
  • Путать confirm (брокер принял) с ack потребителя (обработал).

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

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

Показать варианты и ответ
  • ✓Асинхронное подтверждение от брокера, что сообщение принято и сохранено; без них успешная отправка означает лишь, что байты ушли в сокет
  • ✗Гарантию, что сообщение прочитано consumer-ом
  • ✗Шифрование сообщения при передаче
  • ✗Автоматическое создание очереди под сообщение

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

  • Чем publisher returns отличается от confirms?
  • Зачем нужны durable-очереди вместе с confirms?

Разбор темы

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

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

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

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

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