Rabbit MQ блокирует вызов, чтобы отправить сообщение и убедиться, что он дает правильный код ответа для превышенного лимита сообщений или превышения лимита размера сообщения

Привет, я ищу простое решение на кролика MQ. Ниже приведены настройки, сделанные на кролике.

  1. Запустите кролик-сервер
  2. создать обмен (myexchange) типа topic с прочной опцией.
  3. создайте очередь (myqueue) с длительным параметром и байтами x-max-length, установленными в 4, и длиной x-max-length, установленными в 2.
  4. Свяжите myexchange с myrouting в myqueue.
  5. Публикация сообщения с использованием basic_publish с использованием канала aqmp (channel.basicPublish(myexchange, myrouting, true, null, "test".getBytes("UTF-8"));
  6. Используйте параметры подтверждения издателя, такие как channel.confirmSelect(); и channel.waitForConfirmsOrDie();

Фрагмент кода ниже

channel = connectionFactory.getChannel();
channel.queueDeclarePassive("myqueue");
channel.confirmSelect();
channel.basicPublish("myexchange", "myrouting", true, 
        null, "test".getBytes("UTF-8"));
channel.waitForConfirmsOrDie();

Теперь кролик mq не отвечает с ошибкой из-за превышения количества сообщений / превышения размера. Я мог бы отправить 1000 сообщений / размером 1 КБ, и потребитель также потребляет все эти сообщения. Так как я могу получить код ошибки? Любая помощь по этому вопросу, пожалуйста?

1 ответ

Команда RabbitMQ отслеживает этот список рассылки и только иногда отвечает на вопросы по Stackru.


Здесь нужно рассмотреть два момента. Во-первых, ваш потребитель может потреблять сообщения достаточно быстро, чтобы предел никогда не достигался.

Во-вторых, при достижении предела длины очереди сообщения отбрасываются из начала очереди, чтобы освободить место для новых сообщений. Это означает, что вы потеряете самые старые сообщения в очереди - документы. Это поведение будет настраиваться в 3.7.0,

Однако ни в коем случае не будет возвращена ошибка, поэтому я не знаю, почему вы думаете, что ошибка будет возвращена. В документации ясно, что происходит, когда достигается предел очереди.

Другие вопросы по тегам