Sto cercando un buffer persistente semplice come memoria temporanea per i messaggi JSON in un'applicazione Java. L'utilizzo della memoria dovrebbe essere relativamente costante e non dipendere dal numero di messaggi nel buffer. Sarebbe bello essere in grado di riprodurre i messaggi da un punto nel passato. La cancellazione dei vecchi messaggi dovrebbe essere efficiente. Deve essere in grado di gestire messaggi di 1 m/h.Ricerca di un buffer dei messaggi persistente semplice in Java
Attualmente la mia applicazione utilizza un broker RabbitMQ locale che sposta i messaggi su un broker RabbitMQ remoto. Quando il broker remoto è inattivo o non accetta i messaggi, l'utilizzo della memoria del broker RabbitMQ locale aumenta con la lunghezza della coda e alla fine smette di accettare messaggi. Voglio scambiarlo con un buffer locale basato su disco e un thread che copia i messaggi sul broker RabbitMQ remoto.
Qualcuno ha qualche idea? Ho guardato Kafka ma sembra eccessivo per il mio caso d'uso. MongoDB è una possibilità, ma sono preoccupato per il suo utilizzo della memoria.
Non sicuro ma forse Redis? Supporta anche pub/sub ... –
redis è veloce ma ha bisogno di tanta memoria. controllalo. http://nosql.mypopescu.com/post/1010844204/redis-memory-usage –
Potresti prendere in considerazione qualcosa come https://github.com/peter-lawrey/Java-Chronicle È progettato per supportare oltre 10 milioni di messaggi al secondo, ma devi ruotare i file per eliminarli. –