对于比堆大的基于JVM的队列,存在哪些解决方案? [英] What solutions exist for a JVM-based queue that is larger than heap?
本文介绍了对于比堆大的基于JVM的队列,存在哪些解决方案?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在研究基于JVM的系统中队列的可能技术选择(或者可能是更好的描述)。
I am looking at possible technology choices for queues (or perhaps streams are a better description) in a JVM-based system.
一些要求:
- 必须可以从JVM / Java访问。
- 队列必须支持大于JVM堆的大小,可能大于所有可用RAM。因此,隐含了对利用磁盘(或网络)进行存储的支持。
- 队列目前在流程生命周期内不需要持久。
- 队列的大多数使用将具有单个生产者和单个消费者。因此,任何特定队列的并发性都不是问题。 (显然,并发在队列中很重要。)
- 队列是临时的和临时的。它们流行存在,被填满,被排干,然后消失。
- 小队列最好留在内存中,然后根据资源可用性转移到较慢的存储。这个要求可以在排队技术之上得到满足。
- Must be accessible from the JVM / Java.
- Queues must support sizes larger than the JVM heap, possibly bigger than all available RAM. Thus, support for utilizing the disk (or network) for storage is implied.
- Queues do not currently need to be durable past the process lifetime.
- Most uses of the queue will have a single producer and a single consumer. Concurrency for any particular queue is thus not an issue. (Obviously concurrency is important across queues.)
- Queues are ad-hoc and temporary. They pop into existence, are filled, are drained, and go away.
- Small queues should preferably stay in memory, then shift to slower storage based on resource availability. This requirement could be met above the queuing technology.
我正在研究几个选项,但我很好奇我缺少哪些选项?
I am examining several options but am curious what options I am missing?
推荐答案
我考虑过使用Terracotta的BigMemory作为将队列数据推送到直接内存和堆外的工具。
I have considered using Terracotta's BigMemory as a tool for pushing queue data into direct memory and off-heap.
这篇关于对于比堆大的基于JVM的队列,存在哪些解决方案?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文