在不使用事务的情况下,有哪些办法可以保证数据的原子性?
发布于 7 年前 作者 JarvisQJ 7203 次浏览 来自 问答

有些场景下,逻辑关系很复杂,往往要多个集合(表)中的数据保持一致性,大家一般用什么办法处理这种情况呢?因为我使用的mongodb不支持事务,所以希望大家给出不用事务,保证数据原子性的办法。

8 回复

可以手动回滚数据

@Fov6363 可以说具体点吗

发现一篇文章,在官方文档上: https://docs.mongodb.com/manual/tutorial/perform-two-phase-commits/

This document provides a pattern for doing multi-document updates or “multi-document transactions” using a two-phase commit approach for writing data to multiple documents. Additionally, you can extend this process to provide a rollback-like functionality.

两段提交+自动回滚+实时校验+日志监控,应该基本就可以了吧。 系统复杂到一定程度的话,数据库自身的事务机制恐怕也难保所有业务的原子性操作(跨数据库、非数据库IO等情况),有一套独立的管理原子性业务的系统可能会比依赖数据库的事务机制靠谱一些。

@zhanzhenzhen 谢了。另外,你怎么改的名字啊

我改名字了?好像没,我一直是这个ID~

@zhanzhenzhen 好吧,可能记错了

回到顶部