我正在研究工作队列的新解决方案。队列(或多个队列)将包含工作项,这些工作项将由人类使用基于 Web 的软件系统来处理,该系统使用队列中的项。因此,工作队列中的项目可能会在队列中保留很长时间。队列解决方案不需要处理大吞吐量,它不需要是一个快速的系统,但应该以与消息队列相同的方式运行。即多个消费者以先进先出消息为食。
除了工作消费者之外,我还需要能够管理队列。查看队列中的工作项、编辑它们、删除它们、更改优先级等……
我研究过 ActiveMQ、RabbitMQ、HornetQ 和其他符合 JMS 的队列解决方案。这些似乎都很好,即可扩展、健壮等。但缺乏适合我要求的内置管理能力。它们似乎也是为高吞吐量而构建的。
我要替换的系统由一个简单地实现为数据库模式的队列系统组成。工作项消费者从表而不是内存队列中选择。除了可扩展性之外,我不确定内存解决方案(例如 ActiveMQ)相对于现有系统有什么好处。
我的问题是:我应该基于这些解决方案之一构建我的工作队列系统,ActiveMQ、Rabbit、Hornet.. 等等。还是有一个专门为工作队列目的而不是高吞吐量而构建的开源工作队列系统消息队列工作?或者,我应该坚持使用基于数据库模式的解决方案。
非常感谢。
约翰