我正在寻找一个简单的持久缓冲区作为Java应用程序中JSON消息的临时存储。内存使用情况应该相对稳定,并且不依赖于缓冲区中的消息数量。能够从过去的某个点重播消息会很好。删除旧邮件应该是有效的。需要能够处理1米消息/小时。在Java中寻找简单的持久消息缓冲区
目前我的应用程序使用本地的RabbitMQ代理其铲消息发送到远程的RabbitMQ经纪人。当远程代理关闭或不接受消息时,本地RabbitMQ代理的内存使用量随着队列长度的增加而增加,并最终停止接受消息。我想交换一下本地基于磁盘的缓冲区和线程将消息复制到远程RabbitMQ代理。
任何人有任何想法?我曾看过卡夫卡,但对我的使用案例来说似乎有些过火。 MongoDB是一种可能性,但我担心它的内存使用情况。
不知道,但也许Redis?它支持pub/sub也... – 2012-08-13 13:59:26
redis正在快速发展,但需要如此多的内存。看一下这个。 http://nosql.mypopescu.com/post/1010844204/redis-memory-usage – 2012-08-13 14:19:21
你可能会考虑像https://github.com/peter-lawrey/Java-Chronicle其目的是支持每秒超过10M的消息,但你必须旋转文件来删除它们。 – 2012-08-13 14:23:12