【发布时间】:2015-08-16 05:37:12
【问题描述】:
我正在使用 activeMQ 5.10 并尝试基于 instructions here 测试代理重新交付插件。我已经在我的配置文件中设置了该部分,但现在我的问题很简单:我如何实际执行故意“破坏”消息的测试,从而导致代理重新传递它?我有一个 PHP 消费者(Stomp)阻塞直到消息到达,并且故意不确认代理,但我认为这不足以表明消息处理“失败”。 我需要做什么才能真正看到该插件的运行情况?
【问题讨论】:
我正在使用 activeMQ 5.10 并尝试基于 instructions here 测试代理重新交付插件。我已经在我的配置文件中设置了该部分,但现在我的问题很简单:我如何实际执行故意“破坏”消息的测试,从而导致代理重新传递它?我有一个 PHP 消费者(Stomp)阻塞直到消息到达,并且故意不确认代理,但我认为这不足以表明消息处理“失败”。 我需要做什么才能真正看到该插件的运行情况?
【问题讨论】:
您只需要模拟一条损坏的消息。只是强制错误或玩超时(例如,将超时设置为 1 秒并强制您的消费者花 3 秒来处理消息 - 休眠 3 秒。这些只是建议)。 然后将最大重试次数添加到您的测试脚本中,例如3,从那里你应该寻找接收者接收和丢弃的消息 3 次,但代理只显式发送一次。 希望这会有所帮助....我认为您已经解决了最困难的部分
【讨论】:
对于 NACK (Stomp 1.2),Stomp SEND 帧必须设置 persistent 标志,否则它不会出现在 ActiveMQ.DLQ 中
所以我建议发送带有 persistent:true Stomp 标头的消息并检查这是否有帮助。
【讨论】: