对于比堆大的基于JVM的队列,存在哪些解决方案? [英] What solutions exist for a JVM-based queue that is larger than heap?

查看:224
本文介绍了对于比堆大的基于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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆