我正在制作/准备基于生产者/消费者模型的应用程序。在我的情况下,将会有一个生产者产生几个万(非平凡)任务,并且将会有可配置数量的消费者。Java溢出到磁盘的FIFO队列
生产者和消费者之间的沟通基本上是基于队列的。我担心的是内存消耗:可以想象的是,任务数量将超过JVM的可用内存。所以我想有一个Queue实现,它只保留内存中的“top-X”数量的队列项目,并将其余部分存储在磁盘上。这并不一定要有弹性,因为它不需要重新启动程序。
我周围搜索,但无法找到似乎在广泛使用的队列实现(似乎有一些,我称之为概念验证实现,但我很担心关于未来的支持/这些实现的持续发展)。我也研究了外部消息队列应用程序,但是(1)我不想运行第二个外部进程,并且(2)即使在相同的JVM进程中嵌入消息代理似乎对于此要求有点“头重脚轻” 。
有没有人知道任何支持未来的良好支持未来的库,它提供了这种功能?
Rgds
您是否曾经为您的问题找到可靠的解决方案?我期待解决相同的情况。谢谢! – joe 2016-05-02 19:25:24