英语 |简体中文
分布式交易管理器
什么是DTM
DTM是一个分布式事务框架,它提供跨服务的最终数据一致性。它为各种应用场景提供saga, tcc, xa, 2-phase message, outbox模式。它还支持多语言和多存储引擎,以形成以下交易。
特点
谁在使用DTM(部分)?
烹饪书
快速启动
运行dtm
git clone https://github.com/dtm-labs/dtm
开始一个例子
假设我们想进行银行间转账。转出(TransOut)和转入(TransIn)的操作被编码在不同的微服务中。
下面是一个例子,说明dtm对这个问题的解决方案。
git clone https://github.com/dtm-labs/dtmcli-go-sample
代码
使用
当上述代码运行时,我们可以在控制台中看到TransOut、TransIn服务已经被调用。
时序图
一个成功完成的SAGA事务的时序图如下。
失败时回滚
如果任何前向操作失败,DTM会调用每个子事务的相应补偿操作来回滚,之后事务会成功回滚。
让我们故意让第二个子事务的前向操作失败,看看会发生什么
app
预期失败的时序图如下。
更多的例子
上面的例子主要演示了一个分布式事务的流程。更多的内容,包括如何与实际的数据库对接,如何做补偿,如何做回滚等实际的例子,请参考dtm-examples。
聊天组
通过discord.gg/dV9jS5Rb33 加入聊天群。
给一颗星!⭐
如果你认为这个项目很有趣,或者对你有帮助,请给一颗星!谢谢。