首页 > 解决方案 > 如何处理对同一个 MongoDB 文档的并行更新?

问题描述

使用 MongoDB CrudRepository 的 Spring Boot 应用程序。
我有多个线程并行更新同一个文档。每个线程将按 ID 加载文档,进行更改并尝试保存它。

为了克服可以覆盖第一个线程所做更改的“最后胜利”行为,我实现了一个简单的版本控制机制,其中线程只能在尝试保存最新版本时保存其更改,否则会引发异常。

这解决了多次写入可能导致的数据不一致,但我正在失去工作。尝试保存具有过时版本的文档的线程没有重试机制。

这个问题有什么通用的解决方案吗?我不确定我需要采取哪种方法来处理这个问题。

标签: javamongodbspring-bootparallel-processing

解决方案


推荐阅读