更新日志
- 重大更新,支持 grpc
DTM 是首款 golang 的开源分布式事务管理器,优雅的解决了幂等、空补偿、悬挂等分布式事务难题。提供了简单易用、高性能、易水平扩展的分布式事务解决方案。
受邀参加中国数据库大会分享多语言环境下分布式事务实践
亮点
-
核心技术创新
- 首创子事务屏障技术,框架层代为处理悬挂、空补偿、幂等各类问题
-
极易接入
- 支持 HTTP 、GRPC,提供非常简单的接口,极大降低上手分布式事务的难度,新手也能快速接入
-
跨语言
- 可适合多语言栈的公司使用。方便 go 、python 、php 、nodejs 、ruby 各类语言使用。
-
易部署、易扩展
- 仅依赖 mysql,部署简单,易集群化,易水平扩展
-
多种分布式事务协议支持
- TCC 、SAGA 、XA 、事务消息
与其他框架对比
目前开源的分布式事务框架,暂未看到非 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 支持吧