Это дополнительный вопрос для Difference между режимом AUTO_ACKNOWLEDGEMENT с Spring JMS и без него.
Я использую DMLC, и число моих одновременных потребителей равно 1. Предел предварительной выборки > 1. Я получил сообщение, и оно подтверждено до выполнения прослушивателя. Таким образом, пока прослушиватель выполняется, у брокера есть больше сообщений, и он отправляет их потребителю в соответствии с настройками предварительной выборки. Поскольку прослушиватель все еще выполняется, как будут работать потребление и подтверждение для последующих сообщений?
Будет ли вызываться метод receive() для всех новых сообщений, будут ли они подтверждены и будут ли они ожидать завершения выполнения слушателя? [Если это так, то я не понимаю, почему я получаю количество неподтвержденных сообщений в статистике потребителей] ИЛИ Будет вызван метод receive(), но следующее сообщение не будет подтверждено до тех пор, пока предыдущий слушатель не завершит свое выполнение? [это потенциально может объяснить неподтвержденные сообщения, если выполнение моего прослушивателя заблокировано по какой-либо другой причине] ИЛИ Что-то еще происходит под капотом.
Может кто-нибудь объяснить это? Это мне очень поможет.
Спасибо и ура!