Этот вопрос проверяет понимание семантики доставки сообщений и того, как брокер ведет себя при падении потребителя до ack.
Короткий ответ
Если воркер получил сообщение и упал до подтверждения, сообщение не считается обработанным. В RabbitMQ оно останется в состоянии unacked (если уже было доставлено) и после разрыва соединения/канала будет переотправлено другому воркеру или тому же воркеру после восстановления. Это означает модель доставки “как минимум один раз” (at-least-once), поэтому возможны дубликаты обработки. Чтобы избежать повторных эффектов, обработку делают идемпотентной и подтверждают сообщение только после успешного завершения.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.