TCC 几个框架的测试情况记录

1 篇文章 0 订阅

TCC 实现框架的压力测试记录

国内主要的开源TCC分布式事务框架包括

框架名称Github地址star数量
tcc-transactionhttps://github.com/changmingxie/tcc-transaction2446
Hmilyhttps://github.com/yu199195/hmily1381
ByteTCChttps://github.com/liuyangming/ByteTCC1300
EasyTransactionhttps://github.com/liuyangming/ByteTCC904

分布式事务研究以及功能测试相关结果(RPC、事务日志没有全部验证)

框架名称幂等性嵌套调用RPC框架支持默认支持事务日志存储方式可靠性验证
tcc-transaction框架不支持嵌套调用尝试失败不耦合RPC框架,提供:dubbo、http的相关demoDB、redis、zk、file通过
Hmily框架不支持嵌套调用尝试失败dubbo、motan、springcloud,提供:dubbo相关demoredis、mongodb、zk,file,DB通过
ByteTCC框架支持嵌套调用尝试失败dubbo、springcloudfile通过
EasyTransaction框架支持,业务可选择启用(框架支持情况下影响性能)支持嵌套调用Dubbo、SpringCloud、Ribbon/EurekaDB、Redis通过

压力测试环境说明

环境说明硬件相关框架相关业务场景
Mac上基于Eclipse的开发环境,数据库和应用运行在同一个机子上CPU:2.9 Core i5 ,硬盘:SSD 内存:8GSpringboot+Dubbo 搭建的最简单框架,jdbc均使用Spring的默认数据源订单、存货、支付 三个服务。模拟:A->B\C 三个服务的调用

压力测试结果(因为开发环境,没办法做大数据量测试)

测试内容(Average)基准(本地事务)TccTransactionHmilyEasyTransaction
10线程500次循环216510154
20线程500次循环40173161112
50线程500次循环95441402337
10线程3000次循环1984.38757
20线程3000次循环3722616118
50线程3000次循环106452396331
测试内容(Tps)基准(本地事务)TccTransactionHmilyEasyTransaction
10线程500次循环463.8150.597.6182.5
20线程500次循环493.9115122.7176.0
50线程500次循环520.4112.9124.6147.2
10线程3000次循环502.1118.0114.4171.9
20线程3000次循环524.788.3120.1167.9
50线程3000次循环468.3110.0126.1151.0

测试结果说明

此次的测试相对比较简单,且在此次测试之前也看了海信的开发团队的测试结果,这里也算一个验证以及补充。在测试EasyTransaction时需注意的是,在服务调用时,业务可指定框架是否启用幂等性支持(启用不启用二者的性能差别较大)。

结论

相比TccTransaction、Hmily而言,EasyTransaction的性能上表现抢眼(在框架不提供幂等性支持情况下)。EasyTransaction启用框架幂等性后性能下降较多。嵌套调用的简单测试来看(A->B->C,三个服务的调用),TccTransaction\Hmily均有测试出不同的问题,EasyTransaction在嵌套测试时,没有发现严重的问题。因时间问题,此次的测试还没有做的特别全面,特别是在嵌套调用、以及幂等性验证方面做的还不够,还有在测试方面使用的是开发环境也没有做到数据库和应用分离。今后有时间会继续补上。以上的测试结果以及结论都是个人观点并在此做个记录,仅供参考:)。
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值