Tôi đang tìm một bộ đệm liên tục đơn giản dưới dạng lưu trữ tạm thời cho các thư JSON trong một ứng dụng Java. Việc sử dụng bộ nhớ nên tương đối không đổi và không phụ thuộc vào số lượng thư trong bộ đệm. Thật tuyệt khi có thể phát lại tin nhắn từ một điểm trong quá khứ. Việc xóa tin nhắn cũ sẽ hiệu quả. Cần có khả năng xử lý tin nhắn 1m/h.Tìm bộ đệm tin nhắn liên tục đơn giản trong Java
Hiện tại, ứng dụng của tôi sử dụng một nhà môi giới RabbitMQ địa phương để chuyển tin nhắn đến một nhà môi giới RabbitMQ từ xa. Khi nhà môi giới từ xa ngừng hoạt động hoặc không chấp nhận tin nhắn, mức sử dụng bộ nhớ của nhà môi giới RabbitMQ tại địa phương tăng lên với độ dài hàng đợi và cuối cùng nó ngừng nhận tin nhắn. Tôi muốn trao đổi điều này cho một bộ đệm dựa trên đĩa cục bộ và một thông điệp sao chép luồng tới nhà môi giới RabbitMQ từ xa.
Bất kỳ ai có ý tưởng nào? Tôi đã nhìn Kafka nhưng có vẻ như quá mức cần thiết cho trường hợp sử dụng của tôi. MongoDB là một khả năng nhưng tôi lo lắng về việc sử dụng bộ nhớ của nó.
Không chắc chắn nhưng có thể là Redis? Nó hỗ trợ pub/sub cũng ... –
redis là blazing nhanh nhưng cần rất nhiều bộ nhớ. kiểm tra điều này. http://nosql.mypopescu.com/post/1010844204/redis-memory-usage –
Bạn có thể xem xét một cái gì đó như https://github.com/peter-lawrey/Java-Chronicle Được thiết kế để hỗ trợ hơn 10 triệu tin nhắn mỗi giây nhưng bạn phải xoay các tệp để xóa chúng. –