0

我想使用 MongoDB 实现一个点击计数器(例如用户点击一个链接,计算总点击次数)。

我直观的方法是拥有一个内存中的低优先级线程池,它将处理一个阻塞的点击消息队列,并在后台将其异步保存到 MongoDB。

所以我的问题是——MongoDB 的原生 Java 驱动程序是否有一些异步功能可以做到这一点?

如果没有,是否有替代的 Mongo 驱动程序可能比滚动我自己的异步代码有好处?

4

1 回答 1

1

好吧,不是真正的异步,但如果您使用 NONE 的 WriteConcern,它有点异步,因为您只能将数据放入套接字的缓冲区,然后插入返回。不利的一面是您不知道插入是否有效。面对失败,您可以默默地放弃很多点击。

有一个异步 Java 驱动程序允许您使用期货或回调来获取插入的结果。采用这种方法应该不需要滚动自己的队列或拥有后台线程(驱动程序有自己的接收线程)。

HTH - 抢。

PS 完全披露 - 我在异步 Java 驱动程序上工作。

于 2013-05-21T02:54:18.947 回答