【发布时间】:2018-07-31 07:38:40
【问题描述】:
令人兴奋的是 MongoDB 4.0 支持多文档 ACID 事务!但我想知道新功能会解决我的问题吗?
背景:我有几个微服务,它们共享同一个mongdb,所以我们必须面对它们之间的事务问题。
示例:A 启动事务然后通过 http 调用 B 服务和 C 服务,B 将调用 D。如果 B、C、D 之一失败,我们需要回滚。在这个分布式系统中很难达到这个目标,所以我想知道 mongodb 4.0 是否会有简单的方法来解决这个问题。
A
/ \
B C
\
D
我从这里阅读了规范:https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst,我发现 mongo 使用 lsid、txnNumber 来识别交易。那么,这是否意味着如果我开发一个特殊的 Mongo-Driver,它接受 lsid、txnNumber 作为参数来构建特殊命令,这将达到我的目标:如果一步引发错误,则回滚所有内容!
【问题讨论】:
标签: mongodb distributed-transactions