我知道,我可以使用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