У меня есть простая тестовая программа RabbitMQ, которая случайным образом помещает сообщения в очередь, а другая их читает, все с использованием Spring-AMQP. Если потребитель умирает (для пример убийства процесса без возможности закрыть его соединение или канал), любые сообщения, которые он не подтвердил, по-видимому, остаются неподтвержденными навсегда.
Я видел ряд ссылок (например, этот вопрос ), в которых говорится, что канал умирает, когда у него нет подключений, и что оставшиеся незапакованные сообщения будут доставлены повторно. Я не вижу такого поведения - вместо этого я получаю растущий список каналов, помеченных как IDLE, и растущий список подключений, помеченных как работающие, но без активности.
Требуется ли какая-то конфигурация, чтобы заметить, что соединения не работают после того, как процесс был убит?
РЕДАКТИРОВАТЬ: Я запускал сервер rabbitmq внутри виртуальной машины VirtualBox, которая видимо не справляется с мертвым инбо и правильно подключать через NAT. Это прекрасно работает с сервером mq, работающим непосредственно на физическом хосте.