Старый вопрос, ну да ладно ..
Я публикую все сообщения в очередь и получаю сообщения одно за другим, затем останавливаю сервер rabbitmq во время процесса потребления, и теперь я ожидаю, что оставшиеся сообщения будут потеряны после перезапуска сервера rabbitmq, поскольку канал не в режиме подтверждения, но я все еще вижу все другие сообщения в очереди после перезапуска сервера.
Это на самом деле так и должно работать, ЕСЛИ постоянство включено. Если сервер выходит из строя или что-то еще идет не так, сообщения не могут быть подтверждены и, следовательно, не будут удалены из очереди.
Сообщения будут удаляться из очереди только в том случае, если подтверждено, что они обработаны, или если брокер еще не записал их в память или на диск до сбоя сервера.
Подтверждение и подтверждение могут быть отключены при желании, и производитель не будет ждать подтверждения. Я не могу найти точную команду для него прямо сейчас, но она существует.
Подробнее о подтверждениях и подтверждениях: https://www.rabbitmq.com/reliability.html