0

MongoDB を使用してクリック カウンターを実装したいと考えています (たとえば、ユーザーがリンクをクリックすると、合計クリック数がカウントされます)。

私の直感的なアプローチは、クリック メッセージのブロッキング キューを処理し、それをバックグラウンドで非同期的に MongoDB に永続化する優先度の低いスレッド プールをメモリ内に用意することです。

だから私の質問は - MongoDB のネイティブ Java ドライバーには、まさにそれを行う非同期機能がありますか?

そうでない場合、独自の非同期コードをロールするよりも利点がある代替の Mongo ドライバーはありますか?

4

1 に答える 1

1

実際には非同期ではありませんが、NONE の WriteConcern を使用すると、ソケットのバッファにデータを取得するだけで挿入が返されるという点で、一種の非同期です。マイナス面は、挿入が機能したかどうかわからないことです。失敗に直面した場合、黙って多くのクリックを落とすことができます。

フューチャーまたはコールバックを使用して挿入の結果を取得できるAsynchronous Java Driverがあります。そのアプローチでは、独自のキューをロールしたり、バックグラウンド スレッドを用意したりする必要はありません (ドライバーには独自の受信スレッドがあります)。

HTH - ロブ。

PS 完全開示 - 私は Asynchronous Java Driver に取り組んでいます。

于 2013-05-21T02:54:18.947 に答える