我有一個Java Web應用程序,它接收一些實時事件並將它們推送到用戶界面層。我想記錄所有感知的事件,並且因爲信息量會很大,所以我更喜歡使用NoSQL db。將實時數據記錄到NoSQL DB中的最佳實踐
我爲此設置了一個mongodb,它爲每個事件插入一個文檔。問題在於,這種方法(每個事件的磁盤訪問)會顯着降低整個過程的速度。
那麼,在這種情況下我可以採取哪些方法? mongodb有哪些選項可供選擇(例如批量插入,異步插入,緩存......)?切換到其他一些NoSQL數據庫實現有什麼不同?這裏有什麼最佳實踐?
這將是很好的瞭解預期的性能限制的更多細節。你期望有多大的吞吐量? 100/S? 10K/S? 1M/s的?平均和可能的高峯?序列化時事件的大小是多少? 100字節? 1兆字節?你是否需要很少回顧過去的事件,可能是爲了給定的時間窗口重播它們,或者你需要對它們做臨時查詢?您需要多長時間存儲它們 - 數據庫的分辨率是否會增長到數年,或者您可以每週對二級存儲進行一些清理/歸檔? –