thrift性能测试并分析


一、测试结果分析:

经过测试发现,在性能方面thrift远远高于http协议

简单比较一下:

1http协议简单,可以通过jsonxml数据格式,数据比较臃肿,解析麻烦,不建议使用)的方式传送数据,而thrift需要设计thrift协议比http复杂。

2thrift目前文档比较少,在官网只有简单的使用说明文档,http文档一搜一大片。

3thrift是基于socket,通过tcp协议实现

(a)每次连接、关闭会比较耗性能

(b)客户端主动关闭的Socket端会进入TIME_WAIT状态,并且TIME_WAIT状态一般维持在1-4分钟。http是无连接、无状态的协议。

 

通过以上比较和测试,如果基于复杂程度比简单方面使用http,如果基于性能方面建议使用thrift

 

在使用thrift方法两点需要注意:

1server端需要封装一个模块,控制thrift最大连接数

2client端创建连接池的方式,使用长连接。否则每次请求建立、关闭连接,(a)会有1-4分钟的TIME_WAIT状态,会包连接不上的错误,(b)耗性能

 

二、测试数据以及方法

测试环境服务器采用公司linux服务器

服务器:thrifthttp的服务器端均采用nodeJs实现

客户端:

thrift测试方法,在本地用java实现多线程模拟发送请求,发送数据{'uid':1,'name':'test','age':25,'desc':'abcdssssssssssssssssssdddddddddddddfffffff'}

http的测试采用ab测试方法,不传递任何参数

 

1、总共发送10000 request 100client并发

athrift:执行五次时间如下:

681 ms; 543 ms; 604 ms; 542 ms; 576 ms;平均时间:589.2ms ,16972 request/s

 

bhttp:ab -n 10000 -c 100 http://localhost:9090/

taken for tests1.059s; 1.186s; 1.311s; 1.195s;1.361s平均时间:1.2224s8181 request/s

 

2、总共发送10000 request 200client并发

athrift执行五次时间如下:

570 ms; 582 ms; 659 ms; 570 ms; 621 ms平均时间:600.4ms, 16656 request/s

 

bhttpab -n 10000 -c 200 http://localhost:9090/

taken for tests1.139s; 1.153s;1.142s; 1.118s;1.143s;平均时间:1.1398780 request/s

 

3、总共发送100000 request 100client并发

athrift执行五次时间如下:

3060 ms; 3414 ms;2821 ms; 3915 ms; 3143 ms;平均时间:3270.6ms,30575 request/s

 

bhttpab -n 100000 -c 100 http://localhost:9090/

taken for tests11.787s;12.115s; 12.051s;11.878s; 11.954s 平均时间:11.957s8363 request/s

 

4、总共发送100000 request 200client并发

athrift执行五次时间如下:

3481 ms; 3737 ms; 3276 ms; 3145 ms;3046 ms平均时间:3337ms ,29967 request/s

 

bhttpab -n 100000 -c 200 http://localhost:9090/

taken for tests12.353s;11.808s;11.926s;13.174s; 12.254s 平均时间:12.303s 8128 request/s


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值