bea*_*boy 6 concurrency atomic mongodb spring-data-mongodb spring-boot
我有几个案例,其中微服务正在使用相同的文档(具有许多字段),并且许多这些字段在服务之间共享以进行某些验证。这是我们在 CrudRepo api、并发性和原子性方面遇到的问题。
用户 1 进行更新,因此它调用 API 并读取文档,并执行业务逻辑,然后最后保存它。用户 2 也使用相同的 API 进行相同的更新(使用不同的数据)。
发生的情况是,用户 1 工作得很好,并将更新保存到文档中,用户 2 在用户 1 完成更新之前读取了该文档,因此他看不到用户 1 对其进行的更改。因此,当用户 2 更新文档(他们正在更新同一数组,添加/更新元素)并保存时,他会覆盖用户 1 的更改。
理想情况下,我希望发生读取和锁定,因此用户 2 甚至不会读取文档,除非准备好读取最新更改,然后使用最新数据执行业务逻辑。这将解决user2的问题。最后进行写入(保存)和解锁,以便其他 API 可以反应性地列出,然后轮到它们获取该文档。
不过,我愿意听到针对此类问题的任何最佳实践和标准!非常感谢您的帮助!
| 归档时间: |
|
| 查看次数: |
2566 次 |
| 最近记录: |