【问题标题】:Mule+JMS: Preserving Queue Order on RedeliveryMule+JMS:在重新投递时保留队列顺序
【发布时间】:2014-06-27 17:59:46
【问题描述】:

我有一个场景,如果端点关闭,ActiveMQ 存储将消息排入队列,并且我尝试在接收到新请求时重新传递所有排入队列的消息。因此,最新消息将是最后一个要处理的消息。如果端点仍处于关闭状态,则最新消息也会入队,如果收到新消息,该进程将再次启动。

我在使用这种方法时遇到的问题是,如果在我弹出消息并重新尝试处理时端点仍然关闭,那么最终可能会出现无序队列,因为消息将重新插入到而是队列(例如从 MSG1、MSG2 到 MSG2、MSG1)。

到目前为止,我考虑在弹出之前添加服务器状态检查,但我很想知道是否有其他方法可以解决这个问题,或者我是否只是错误地处理了重新传递方法。

【问题讨论】:

    标签: jms mule message-queue mule-studio


    【解决方案1】:

    【讨论】:

    • 感谢您的建议。为了使重定序器有任何效果,那不是需要一次检索多条消息吗?
    • 是的,当然。如果这不是一个选项,那么消息队列可能不适合您的用例......
    • 知道了——我也一直在想。吞吐量不是优先事项,但持久性才是。然而,在这一点上,有序保证的必要性还有待商榷。不过,感谢您的回复;我会接受答案。 PS:Mule in Action 非常有帮助! :)
    • 更新:我研究了 RabbitMQ,似乎它们提供了“足够高”的重新排队排序保证,当且仅当有一个消费者时。我相信我会尝试用它来代替 ActiveMQ。
    • 是的!到目前为止,已经安装和测试是积极的。 :)
    猜你喜欢
    • 2012-10-13
    • 2012-10-09
    • 2016-03-15
    • 2019-07-15
    • 2016-05-13
    • 2014-12-09
    • 1970-01-01
    • 2011-07-01
    • 2011-06-14
    相关资源
    最近更新 更多