更新日志
- 增加环境变量反对、部署反对,文档增加部署反对
- dtmcli 与 gin、logrus 齐全解耦,并且反对拆分到独自的仓库
- 增加事务期待后果模式
- 增加默认 DB_DRIVER 为 mysql
DTM 是首款 golang 的开源分布式事务管理器,优雅的解决了幂等、空弥补、悬挂等分布式事务难题。提供了简略易用、高性能、易程度扩大的分布式事务解决方案。
受邀加入中国数据库大会分享多语言环境下分布式事务实际
谁在应用 dtm
Ivydad 常青藤爸爸
Eglass 视咖镜小二
亮点
-
极易接入
- 反对 HTTP,提供非常简单的接口,极大升高上手分布式事务的难度,老手也能疾速接入
-
应用简略
- 开发者不再放心悬挂、空弥补、幂等各类问题,框架层代为解决
-
跨语言
- 可适宜多语言栈的公司应用。不便 go、python、php、nodejs、ruby、c# 各类语言应用。
-
易部署、易扩大
- 仅依赖 mysql,部署简略,易集群化,易程度扩大
-
多种分布式事务协定反对
- TCC、SAGA、XA、事务音讯
与其余框架比照
目前开源的分布式事务框架,暂未看到非 Java 语言有成熟的框架。而 Java 语言的较多,有阿里的 SEATA、华为的 ServiceComb-Pack,京东的 shardingsphere,以及 himly,tcc-transaction,ByteTCC 等等,其中以 seata 利用最为宽泛。
上面是 dtm 和 seata 的次要个性比照:
个性 | DTM | SEATA | 备注 |
---|---|---|---|
反对语言 | Go、Java、python、php、c#… | Java | dtm 可轻松接入一门新语言 |
异样解决 | 子事务屏障主动解决 | 手动解决 | dtm 解决了幂等、悬挂、空弥补 |
TCC 事务 | ✓ | ✓ | |
XA 事务 | ✓ | ✓ | |
AT 事务 | ✗ | ✓ | AT 与 XA 相似,性能更好,但有脏回滚 |
SAGA 事务 | 简略模式 | 状态机简单模式 | dtm 的状态机模式在布局中 |
事务音讯 | ✓ | ✗ | dtm 提供相似 rocketmq 的事务音讯 |
通信协议 | HTTP、GRPC | dubbo 等协定,无 HTTP | dtm 对云原生更加敌对 |
从下面比照的个性来看,如果您的语言栈蕴含了 Java 之外的语言,那么 dtm 是您的首选。如果您的语言栈是 Java,您也能够抉择接入 dtm,应用子事务屏障技术,简化您的业务编写。
如果您感觉 https://github.com/yedf/dtm 不错,或者对您有帮忙,请赏颗星吧!