2013-05-20 44 views
0

我想使用MongoDB實現點擊計數器(例如,用戶點擊一個鏈接,統計總點擊次數)。使用MongoDB點擊計數器實現 - 異步寫入

我的直觀方法是擁有一個內存中的低優先級線程池,該線程池將處理阻塞的單擊消息隊列,並在後臺異步地將其持久保存到MongoDB中。

所以我的問題是 - 是否MongoDB的本地Java驅動程序有一些異步功能,做到這一點?

如果沒有,是否有一個替代的Mongo驅動程序可能比滾動我自己的異步代碼有好處?

回答

1

好吧,不是真正的異步,但如果你使用一個NONE的WriteConcern它是一種異步的,因爲你只有數據進入套接字的緩衝區和插入返回。不利的一面是你不知道插入是否有效。面對失敗,你可以默默地放棄很多點擊。

有一個Asynchronous Java Driver,允許您使用期貨或回調來獲得插入的結果。採用這種方法應該不需要推出自己的隊列或者擁有後臺線程(驅動程序擁有自己的接收線程)。

HTH - Rob。

P.S.充分披露 - 我從事異步Java驅動程序。