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