我知道,我可以使用JMS和ActiveMQ的限制,但我真正需要的東西很簡單,沒有大量的開銷,可以將數據保存到硬盤驅動器。我用ActiveMQ做了一些測試,並且不太喜歡持久隊列的性能。是否有任何Java阻塞隊列,當達到
我正在尋找的是基本實現任何阻塞隊列與存儲在HDD(理想情況下),如果達到一定的大小限制信息的能力。然後,它應該能夠從HDD讀取存儲的消息,並且如果可能的話,停止向HDD寫入新的內容(在內存使用中恢復)。
我的方案很簡單 - 消息(JSON)從外界傳來。我做了一些處理,然後將它們發送到另一個REST服務。當目標REST服務關閉或者我們之間的網絡不好時,可能會發生問題。在這種情況下,準備好的事件將存儲在可能填滿所有可用內存的隊列中。我不希望/不需要將所有消息寫入HDD/DB - 只有那些不適合內存的消息。
謝謝!
你所要求的不是'東西很simple'。你可能想要'可靠的東西'。 – 2013-03-06 17:52:35
ehcache是我知道的透明地將數據移入或移出磁盤的最簡單的方法。如果隊列順序很重要,你需要自己處理。 – Affe 2013-03-06 18:01:45
是的,隊列順序很重要。另外,當我說 - 「非常簡單的事情」時,我的意思是我不需要羣集企業解決方案(因爲我可以使用ActiveMQ)。所有的魔法都應該發生在1個JVM中。另外一個很好的功能 - 如果JVM停止 - 如果有任何消息,則從HDD填充隊列。 – Alex 2013-03-06 18:26:48