千家信息网

分布式事务框架DogTcc是怎么样的

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关分布式事务框架DogTcc是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Dog Tcc是什么?DogTcc是一个
千家信息网最后更新 2026年11月01日分布式事务框架DogTcc是怎么样的

这篇文章将为大家详细讲解有关分布式事务框架DogTcc是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Dog Tcc是什么?

  • DogTcc是一个基于注解的高性能 分布式事务 TCC框架。感谢于他的框架设计,可达到2ms/事务,支持链式调用,损耗线性增长。

框架特性

  • 高速,事务发起方损耗 2.15ms每事务,事务被调方损耗 2.13ms每事务

  • 损耗随事务链变宽[A 调用B,C,D,E..],或者变深[A 调用B,B调用C,C调用D..],线性增长

  • 对原有服务无侵入,标注是基于方法而不是RPC接口的,可以在需要回滚的最小单位方法上添加标注

  • 易用性高,使用者通过标注,和实现指定的回滚和确认接口,即可集成框架

  • 节点无本地状态,部署多台即可实现集群,无需多余配置

  • 和协议无关,使用者只要实现事务的协议注入即可集成到框架中,可参照Spring模块

  • 和消息服务器无关,框架提供了消息服务接口,使用者可使用其他消息中间件,可参考zookeeper模块

  • 支持事务链,事务链长度不影响事务性能

  • 故障恢复,任何服务节点丢失都不会影响最终一致性,丢失节点的事务会被同类节点托管,或者在丢失节点启动时候恢复

  • 错误通知,对于极端情况,Confirm或者Cancel失败,系统会通过第三方接口通知,用户需要实现该接口定义的方法

性能报告

  • 测试机配置

    cpu family : 6 model : 63 model name : Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz

    Linux version 3.10.0-327.el7.x86_64

    4G

    • 内存

    • 操作系统

    • Cpu

  • 启动配置

    • zookeeper 默认配置启动

    • 注册中心 和 Server1 Server2 Server3

      启动参数:-Xms256m -Xmx512m

  • 测试用例 [见Server1工程的Server1ApplicationController]

    • 链式调用:Server1 调用 Server2 ,Server3 ; Server2 调用 Server3

    • 单次调用:Server1 调用 Server3

    • 为了降低业务对框架性能测试的影响,Server2 和 Server3 的业务代码为空。

    • Server2 中有一个Call单元

      Call(有回滚需求的方法)定义请见: https://github.com/sunpengChina/dog/wiki/DogTcc-architecture

    • Server3 中有两个Call单元

  • 性能报告

    • [1]非线程5000次非TCC事务调用: 11325ms

    • [2]非线程5000次TCC事务单次调用: 34133ms

    • [3]10线程,各500次循环,共5000次链式,TCC事务调用:49826ms

    • [4]10线程,各500次循环,共5000次链式,非TCC事务调用:6458ms

    • [5]10线程,各500次循环,共5000次,TCC事务单次调用:35566ms

    • [6]10线程,各500次循环,共5000次,非TCC事务单次调用:2884ms

  • 结论

    设tcc单次调用,发起方损耗为x (ms),call损耗为y (ms)

    • 根据性能报告的[3]和[4],可得 x + 3y = (49826 - 6458)/5000 = 8.67 ms

    • 根据性能报告的[5]和[6], 可得 x + 2y = (35566-2884)/5000 = 6.52 ms

    • 可得tcc发起方单次损耗为:2.25 ms ; Call方损耗为 2.13 ms

快速开始

  • 准备zookeeper

    wget https://raw.githubusercontent.com/wiki/sunpengChina/dog/zookeeper-3.4.13.zip

    解压文件 unzip zookeeper-3.4.13.zip

    进入zk目录 cd zookeeper-3.4.13/bin

    启动zk服务器 ./zkServer.sh start

    打开zk客户端 ./zkCli.sh

    在zk 客户端中执行 create /dog "dog"

  • 下载源码

    https://github.com/sunpengChina/dog.git

    进入源码根目录,编译源码 mvn clean install

  • 启动服务

    启动springCloud配置中心: cd jar -jar eureka/target/eureka-1.0-SNAPSHOT.jar

    启动服务Server1:jar -jar Server1/target/Server1-1.0-SNAPSHOT.jar

    启动服务Server2:jar -jar Server2/target/Server2-1.0-SNAPSHOT.jar

    启动服务Server3:jar -jar Server3/target/Server3-1.0-SNAPSHOT.jar

  • 在浏览器中测试

    http://127.0.0.1:8081/chainTcc 一次链式事务调用,检验你的系统是否正常部署

    http://127.0.0.1:8081/noTcc5000 5000次无事务调用的时间

    http://127.0.0.1:8081/singleTcc5000 5000次简单事务单元的时间

    http://127.0.0.1:8081/chainTcc5000thread 10个线程各500次调用TCC链式事务,调用需要的时间

    http://127.0.0.1:8081/chainNoTcc5000thread 10个线程各500次调用链式非TCC事务,调用需要的时间

    http://127.0.0.1:8081/singleTcc5000thread 10个线程各500次调用非链式TCC事务,调用需要的时间

    http://127.0.0.1:8081/singleNoTcc5000thread 10个线程各500次调用非链式非TCC事务,调用需要的时间

关于分布式事务框架DogTcc是怎么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

事务 线程 框架 链式 服务 损耗 时间 性能 接口 节点 配置 报告 方法 循环 分布式 使用者 单元 发起方 消息 源码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 互联网是第几次科技革命的成果 为想互联网科技怎么样 科技股互联网 互联网金融科技创新 佰商互联网科技有限公司 卓越科技互联网 招聘 新华互联网科技校企合作 现代科技和互联网有关系吗 互联网科技热点资讯 互联网教育科技公司vipkid 互联网和黑科技的看法 福建科技产业互联网发展 彤创互联网科技有限公司 岳阳华臻互联网科技有限公司 翼展科技 首家互联网医院 恒生互联网科技业指数调整周期 富国互联网金融科技混合基金 互联网安防科技感 黑龙江互联网科技公司 互联网和科技创新 关于新基建和互联网科技 天津摩尔互联网科技 甘肃拓世互联网科技有限公司 成都仁贤领冠互联网科技有限公司 互联网科技中介 互联网科技人工智能实验室 滨湖区互联网智能科技产品有哪些 智帮互联网科技公司最近动向 杭州融税互联网科技有限公司
0