我正在寻找允许我执行以下操作的开源排队平台: 我有多个生产者,多个消费者将数据放入具有特定用例的多线程环境中的队列中: 我希望消费者能够做到以下几点
我一直在关注RabbitMQ,hornetQ,ActiveMQ,但我不确定我是否可以开箱即用这个功能,系统上的任何建议都能给我这个功能?
答案 0 :(得分:2)
除了基于超时的重新传递外,RabbitMQ开箱即用。如果在未确认消息时删除连接,则该消息将被重新排队以传递给队列的其他某个使用者。您可以使用拉模式(“Basic.Get”)或推模式/订阅模式(“Basic.Consume”)来让服务器为您提供消息。
答案 1 :(得分:2)
这就是hornetq在自动确认模式下的工作方式。它不是真正“偷看”,而是将消息传递给侦听器,并且任何其他侦听器都不可见。如果侦听器未能完成事务,因为它死了,抛出异常等,则消息会重新出现在队列中并重新传递给另一个侦听器。如果侦听器成功完成,则消息将从队列中删除。
对不起,刚刚意识到这个帖子已经有一年多了。好吧,也许这会帮助别人...
答案 2 :(得分:1)
您要求的是标准的JMS行为 - 任何兼容的JMS实现都可以直接实现。
答案 3 :(得分:0)