V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
dongfuye1
V2EX  ›  分享创造

分布式事务管理器 dtm v0.10.0 发布 支持 grpc 啦

  •  
  •   dongfuye1 · 2021-08-12 15:00:16 +08:00 · 1407 次点击
    这是一个创建于 1199 天前的主题,其中的信息可能已经有所发展或是发生改变。

    更新日志

    • 重大更新,支持 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 数量 github stars github stars dtm 从 20210604 发布 0.1,发展快

    从上面对比的特性来看,如果您的语言栈包含了 Java 之外的语言,那么 dtm 是您的首选。如果您的语言栈是 Java,您也可以选择接入 dtm,使用子事务屏障技术,简化您的业务编写。

    如果您觉得不错,请给个 star 支持吧

    https://github.com/yedf/dtm

    3 条回复    2021-08-13 14:09:06 +08:00
    coosir
        1
    coosir  
       2021-08-12 17:10:10 +08:00
    支持了 grpc,怎么在对比表里面没更新呢
    dongfuye1
        2
    dongfuye1  
    OP
       2021-08-12 18:11:17 +08:00
    @coosir 不好意思,漏了
    whyso
        3
    whyso  
       2021-08-13 14:09:06 +08:00
    前两天看到没 grpc 还觉得有点遗憾,没想到这么快就加上了,虽然暂时还用不到 dtm,先学习下吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1407 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 17:29 · PVG 01:29 · LAX 09:29 · JFK 12:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.