Ich bin auf der Suche nach einem einfachen persistenten Puffer als temporärer Speicher für JSON-Nachrichten in einer Java-Anwendung. Die Speicherbelegung sollte relativ konstant sein und nicht von der Anzahl der Nachrichten im Puffer abhängen. Es wäre schön, Nachrichten von einem Punkt in der Vergangenheit wiedergeben zu können. Das Löschen alter Nachrichten sollte effizient sein. Muss 1m Nachrichten/h verarbeiten können.Suche nach einfachen persistenten Nachrichtenpuffer in Java
Derzeit verwendet meine Anwendung einen lokalen RabbitMQ-Broker, der Nachrichten an einen entfernten RabbitMQ-Broker schaufelt. Wenn der Remote-Broker inaktiv ist oder keine Nachrichten akzeptiert, steigt die Speicherbelegung des lokalen RabbitMQ-Brokers mit der Warteschlangenlänge und hört schließlich auf, Nachrichten zu akzeptieren. Ich möchte dies für einen lokalen Datenträger-basierten Puffer austauschen und einen Thread, der Nachrichten an den entfernten RabbitMQ-Broker kopiert.
Wer hat irgendwelche Ideen? Ich habe Kafka angeschaut, aber es scheint mir ein Overkill für meinen Anwendungsfall zu sein. MongoDB ist eine Möglichkeit, aber ich mache mir Sorgen um die Speichernutzung.
Nicht sicher, aber vielleicht Redis? Es unterstützt Pub/Sub auch ... –
Redis ist blitzschnell aber braucht so viel Speicher. check das aus. http://nosql.mypopescu.com/post/1010844204/redis-memory-usage –
Sie könnten etwas wie https://github.com/peter-lawrey/Java-Chronicle betrachten Es wurde entwickelt, um über 10M Nachrichten pro Sekunde zu unterstützen Sie müssen die Dateien drehen, um sie zu löschen. –