Estoy buscando un búfer persistente simple como almacenamiento temporal para mensajes JSON en una aplicación Java. El uso de memoria debe ser relativamente constante y no depender de la cantidad de mensajes en el búfer. Sería bueno poder reproducir mensajes de un punto en el pasado. La eliminación de mensajes antiguos debe ser eficiente. Necesita ser capaz de manejar mensajes de 1 m/h.Buscando un búfer de mensaje persistente simple en Java
Actualmente mi aplicación utiliza un agente local RabbitMQ que envía mensajes a un intermediario RabbitMQ remoto. Cuando el intermediario remoto está inactivo o no acepta mensajes, el uso de la memoria del intermediario local RabbitMQ aumenta con la longitud de la cola y, finalmente, deja de aceptar mensajes. Quiero cambiar esto por un búfer basado en disco local y un hilo que copie mensajes en el broker RabbitMQ remoto.
¿Alguien tiene alguna idea? Miré a Kafka, pero parece excesivo para mi caso de uso. MongoDB es una posibilidad pero me preocupa su uso de memoria.
No estoy seguro, pero tal vez Redis? Es compatible con pub/sub también ... –
redis es increíblemente rápido, pero necesita tanta memoria. mira esto. http://nosql.mypopescu.com/post/1010844204/redis-memory-usage –
Puede considerar algo como https://github.com/peter-lawrey/Java-Chronicle Está diseñado para admitir más de 10 millones de mensajes por segundo, pero tienes que rotar los archivos para eliminarlos. –