我正在寻找一个简单的持久缓冲区作为 Java 应用程序中 JSON 消息的临时存储。内存使用应该是相对恒定的,并且不依赖于缓冲区中的消息数量。能够从过去的某个时间点重播消息会很高兴。删除旧消息应该是有效的。需要能够处理 1m 条消息/小时。
目前,我的应用程序使用本地 RabbitMQ 代理,它将消息铲到远程 RabbitMQ 代理。当远程代理关闭或不接受消息时,本地 RabbitMQ 代理的内存使用量会随着队列长度的增加而增加,最终它会停止接受消息。我想将其换成基于本地磁盘的缓冲区和将消息复制到远程 RabbitMQ 代理的线程。
有人有想法么?我看过 Kafka,但对于我的用例来说似乎有点过分了。MongoDB 是一种可能性,但我担心它的内存使用情况。