DTM 是首款 golang 的开源分布式事务管理器,优雅的解决了幂等、空补偿、悬挂等分布式事务难题。提供了简单易用、高性能、易水平扩展的分布式事务解决方案。
受邀参加中国数据库大会分享多语言环境下分布式事务实践
目前开源的分布式事务框架,暂未看到非 Java 语言有成熟的框架。而 Java 语言的较多,有阿里的 SEATA 、华为的 ServiceComb-Pack,京东的 shardingsphere,以及 himly,tcc-transaction,ByteTCC 等等,其中以 seata 应用最为广泛。
下面是 dtm 和 seata 的主要特性对比:
特性 | DTM | SEATA | 备注 |
---|---|---|---|
支持语言 | Golang 、python 、php 及其他 | Java | dtm 可轻松接入一门新语言 |
异常处理 | 子事务屏障自动处理 | 手动处理 | dtm 解决了幂等、悬挂、空补偿 |
TCC 事务 | ✓ | ✓ | |
XA 事务 | ✓ | ✓ | |
AT 事务 | ✗ | ✓ | AT 与 XA 类似,性能更好,但有脏回滚 |
SAGA 事务 | 简单模式 | 状态机复杂模式 | dtm 的状态机模式在规划中 |
事务消息 | ✓ | ✗ | dtm 提供类似 rocketmq 的事务消息 |
通信协议 | HTTP | dubbo 等协议,无 HTTP | dtm 后续将支持 grpc 类协议 |
star 数量 | dtm 从 20210604 发布 0.1,发展快 |
从上面对比的特性来看,如果您的语言栈包含了 Java 之外的语言,那么 dtm 是您的首选。如果您的语言栈是 Java,您也可以选择接入 dtm,使用子事务屏障技术,简化您的业务编写。
如果您觉得不错,请给个 star 支持吧
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.