我正在製作/準備基於生產者/消費者模型的應用程序。在我的情況下,將會有一個生產者產生幾個萬(非平凡)任務,並且將會有可配置數量的消費者。Java溢出到磁盤的FIFO隊列
生產者和消費者之間的溝通基本上是基於隊列的。我擔心的是內存消耗:可以想象的是,任務數量將超過JVM的可用內存。所以我想有一個Queue實現,它只保留內存中的「top-X」數量的隊列項目,並將其餘部分存儲在磁盤上。這並不一定要有彈性,因爲它不需要重新啓動程序。
我周圍搜索,但無法找到似乎在廣泛使用的隊列實現(似乎有一些,我稱之爲概念驗證實現,但我很擔心關於未來的支持/這些實現的持續發展)。我也研究了外部消息隊列應用程序,但是(1)我不想運行第二個外部進程,並且(2)即使在相同的JVM進程中嵌入消息代理似乎對於此要求有點「頭重腳輕」 。
有沒有人知道任何支持未來的良好支持未來的庫,它提供了這種功能?
Rgds
您是否曾經爲您的問題找到可靠的解決方案?我期待解決相同的情況。謝謝! – joe 2016-05-02 19:25:24