從我的經驗來看,這是我想出的。如何存儲用戶在大型服務器上的日誌最佳做法
我目前正在將用戶和統計類保存到MongoDb中,並且所有工作都可以正常工作。
但是,我如何保存每個用戶生成的日誌?
正在考慮使用LogBack SiftingAppender
並委託日誌信息
來分隔MongoDb Collections
。就像每個MongoDb Collection
都有用戶的ID一樣。
這樣我就不必創建高級mapreduce查詢了,因爲日誌整齊堆疊。
或使用SiftingAppender
與FileAppender,因此每個用戶有一個單獨的日誌文件。
如果MongoDB有一百萬個日誌集合,每個用用戶標識命名,那麼這個問題就出現了。 (它甚至可以btw)
如果一切都存儲在MongoDb MongoDb主從複製使得 很容易,如果主節點死亡。
怎麼樣FileAppender方法。感覺像將有一大堆日誌文件 管理。根據字母表,可以將它們保存在文件夾中。文件夾A 供用戶/編號的名稱/編號以A開頭。
有什麼其他選項可以使其工作?
是的,這是一個很好的ide。已經有其他幾個嵌入式文檔。每個用戶都有他的日誌嵌入當然。它只爲原木創造一個鑽孔新的Db感覺很誘人。 dontno – Erik 2012-02-21 06:57:48
如果您擔心開銷,您可以使用DBRef(ObjectIds)的數組來分隔不同集合中的日誌文檔,以便每次查詢用戶文檔時都不會加載所有日誌。 – 2012-02-21 07:04:01
是否知道如果slf4j,log4j,LogBack等不是附加到文件或控制檯,而是可以將日誌條目即時插入嵌入式文檔中,就像您所描述的那樣。有一種感覺,我必須做一些自定義MongoDBAppender的東西? – Erik 2012-02-21 17:58:50