activemq: как вызвать повторную доставку брокера?

Я использую activeMQ 5.10 и пытаюсь протестировать плагин повторной доставки брокера, основанный на инструкции здесь. Я настроил раздел в моем конфигурационном файле, но теперь моя проблема проста: как мне на самом деле выполнить тест, который намеренно «ломает» сообщение, заставляя брокера повторно его доставить? У меня есть приемник PHP (Stomp), блокирующий до получения сообщений, и намеренно не ACK брокер, но я не думаю, что этого достаточно, чтобы указать, что обработка сообщения «не удалось».
Что мне нужно сделать, чтобы увидеть плагин в действии?

2

Решение

Вам нужно только издеваться над сломанным сообщением. просто вызовите ошибку или поиграйте с тайм-аутом (например, установите тайм-аут на 1 секунду и заставьте своего потребителя потратить 3 секунды на обработку сообщения — спите в течение 3 секунд. Это всего лишь предложения).
Затем добавьте в свой тестовый скрипт максимальное количество попыток, например, 3, оттуда вы должны искать сообщение, полученное и отброшенное получателем 3 раза, но брокер отправляет его явно только один раз.
Надеюсь, это поможет …. Я думаю, что вы уже решили самую сложную часть

1

Другие решения

Для NACK (Stomp 1.2) кадр Stomp SEND должен иметь стойкий флаг установлен, иначе он не будет отображаться в ActiveMQ.DLQ

Поэтому я предлагаю отправлять сообщения с постоянным заголовком Stomp: true и проверять, помогает ли это.

0