Spring AMQP: проверка конфигурации RabbitMQ

Я пытаюсь продемонстрировать использование механизма 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.


person Raj    schedule 08.01.2019    source источник


Ответы (1)


Нет; это собственность брокера; клиент Java может делать только то, что поддерживается протоколом AMQP.

Я предлагаю вам задавать вопросы о внутреннем устройстве RabbitMQ (например, почему вы не видите ожидаемого поведения) в группе пользователей rabbitmq в Google, где активно работают инженеры RabbitMQ.

Время от времени они смотрят сюда, но здесь вы, скорее всего, получите более быстрый ответ.

Однако вам следует продолжать спрашивать здесь о вещах, специфичных для Spring AMQP.

person Gary Russell    schedule 08.01.2019
comment
Спасибо, Гэри! Я задал тот же вопрос группе RabbitMQ в Google. - person Raj; 08.01.2019