У меня проблемы с пониманием подтверждения RabbitMQ, я вижу следующее объяснение от RabbitMQ:
Примечания
Брокер теряет постоянные сообщения, если он вылетает перед тем, как указанные сообщения записываются на диск. При определенных условиях это заставляет брокера вести себя неожиданным образом.Например, рассмотрим этот сценарий :
клиент публикует постоянное сообщение в устойчивой очереди
, клиент потребляет сообщение из очереди (отмечая, что сообщение является постоянным, а очередь устойчивой), но еще не подтвердил это,
брокер умирает и перезапускается, а
клиент повторно подключается и начинает получать сообщения.
На этом этапе клиент может разумно предположить, что сообщение будет доставлено снова. Это не так: перезапуск привел к тому, что брокер потерял сообщение. Чтобы гарантировать постоянство, клиент должен использовать подтверждения. Если бы канал издателя находился в режиме подтверждения, издатель не получил бы подтверждения для потерянного сообщения (так как потребитель не подтверждал его и его не было { {1}} записано на диск).
Затем я использую этот http://hg.rabbitmq.com/rabbitmq-java-client/file/default/test/src/com/rabbitmq/examples/ConfirmDontLoseMessages.java , чтобы сделать некоторые базовый тест и проверка подтверждения, но получаются странные результаты:
Поскольку я новичок в RabbitMQ, может ли кто-нибудь сказать мне, в чем моя проблема с подтверждением понимания?