【发布时间】:2012-01-31 08:30:11
【问题描述】:
我正在开发/准备一个基于生产者/消费者模型的应用程序。在我的例子中,会有一个生产者生成数个百万(非平凡的)任务,并且会有可配置数量的消费者。
生产者和消费者之间的通信基本上是基于队列的。但是我担心内存消耗:可以想象,任务的数量会超过 JVM 的可用内存。所以我想要一个队列实现,它只在内存中保留“top-X”数量的队列项目,并将其余的存储在磁盘上。这不必具有弹性,因为它不需要在程序重新启动后仍然存在。
我四处搜索,但找不到似乎被广泛使用的队列实现(似乎确实有一些,我称之为概念验证实现,但我担心未来支持/继续开发这些实现)。我还查看了外部消息队列应用程序,但是(1)我不想运行第二个外部进程,(2)甚至在同一个 JVM 进程中嵌入消息代理对于这个要求来说似乎有点“头重脚轻” .
是否有人知道任何提供此功能且受良好支持的面向未来的库?
Rgds
【问题讨论】:
-
您有没有为您的问题找到可靠的解决方案。我正在寻找解决相同的情况。谢谢!
标签: java queue disk persistent fifo