我有一组需要由多个客户端节点处理的文档。基本上,每个文档应该只由一个客户端节点处理。
因此,我想的是为每个节点创建一个唯一的clientId,并将clientId设置为正在处理的文档,以便告诉其他客户端正在处理该文档。
几年前,我已经使用Mongodb实现了这种方法,使用了findAndModify操作符,它保证了将clientId设置为文档并返回的原子性。现在,我正在寻找一个可能类似的方法,在Couchbase,但找不到。
知道怎么做吗?
发布于 2020-02-25 18:17:54
我认为您正在搜索的是名为getAndLock的方法。它将保证只有一台服务器正在读取此文档。
如果服务器在此过程中失败,使用属性更新文档可能是个坏主意,因为没有其他服务器将接管已经分配给故障文档的文档。
发布于 2020-02-25 14:42:08
在我们的项目中,我们使用了类似的场景。我们要做的是创建一个文档,并在其中保存其他处理文档。如果该文档不在该文档中,则可以防止其他客户端更新该文档。
https://stackoverflow.com/questions/60393901
复制相似问题