Я пытаюсь продемонстрировать использование механизма RabbitMQ Credit Flow в соответствии с упомянутым здесь блогом: https://www.rabbitmq.com/blog/2015/10/06/new-credit-flow-settings-on-rabbitmq-3-5-5/
В рамках своей демонстрации я хочу показать, что RabbitMQ блокирует издателя от дальнейшей публикации сообщений, если потребитель не может обработать сообщения.
Со стороны потребителя я сохраняю сообщение в базе данных. Я установил режим подтверждения RabbitMQ в РУЧНОЙ. Код на стороне потребителя ЯВНО подтверждает после того, как сообщение успешно сохраняется в базе данных.
В рамках своей демонстрации я установил для параметра credit_flow_default_credit в файле rabbitmq.config значение 2.
Соответственно, мой файл rabbitmq.config выглядит следующим образом:
[
{rabbit,[
{loopback_users, []},
{credit_flow_default_credit, {2,1}}
]
}
].
Насколько я понимаю, если RabbitMQ не может обрабатывать 2 сообщения, то третье сообщение, опубликованное издателем, должно быть заблокировано.
Чтобы достичь того, чего я хочу, я БЛОКИРУЮ таблицу в базе данных, чтобы потребитель не мог сохранить запись. В результате он также не сможет ПОДТВЕРДИТЬ.
Однако я не вижу, чтобы у издателя возникли проблемы с публикацией сообщения, даже если он уже опубликовал 2 сообщения. Почему RabbitMQ не должен блокировать дальнейшую публикацию сообщений?
Есть ли способ проверить rabbitmq.config из Spring AMQP? Я хочу убедиться, что для credit_flow_default_credit действительно установлено значение 2.