Java 可以在mongodb 2.6+;是否用作缓冲区/队列?
MongoDB从2.6版开始引入,我检查了API,对我来说很好 在此API之前,如果需要进行批量插入,我必须将文档存储在列表中,它们使用Java 可以在mongodb 2.6+;是否用作缓冲区/队列?,java,multithreading,mongodb,Java,Multithreading,Mongodb,MongoDB从2.6版开始引入,我检查了API,对我来说很好 在此API之前,如果需要进行批量插入,我必须将文档存储在列表中,它们使用insert()插入整个列表。在多线程环境中,还应考虑并发性 批量API中是否实现了队列/缓冲区?每次我 在execute()之前将某些内容放入批量,数据存储为int 他是队列/缓冲区,对吗 因此,我不需要编写自己的队列/缓冲区,只需使用Bulk.insert()或Bulk.find().update(),对吗 有人能告诉我更多关于排队的情况吗。我还需要关注并发
insert()
插入整个列表。在多线程环境中,还应考虑并发性
Bulk.insert()
或Bulk.find().update()
,对吗.execute()
方法之前,不会以任何方式与服务器进行通信。这是“按设计”的,实际上是重点的一半,因为我们不希望每次添加操作时都向服务器发送数据。这是一次完成的
因此,“批量操作”是一个“客户端队列”。所有内容都存储在客户端,直到.execute()
“排出”队列并将操作一次发送到服务器。然后,服务器将给出一个响应,其中包含所发送操作的所有结果,您可以按照自己的意愿处理这些结果
此外,一旦调用了.execute()
,就不能再将操作“排队”到批量对象,也不能再次调用.execute()
。根据实现的不同,您可以对“批量”对象和结果进行进一步的检查。但一般情况下,您需要发送更多的“批量”操作,然后重新初始化并重新启动,就像大多数队列系统一样
总结: