基于dubbo框架下的RPC通讯协议性能测试

12 public OrderInfo LoadOrder(OrderInfo order);

13 }




[![复制代码](https://img-blog.csdnimg.cn/img_convert/4a8ed466875739b55bd7d29955919d91.gif)](https://jonhuster.blog.csdn.net/article/details/53374718 "复制代码")



  2、服务实现相关代码,测试数据在服务器端不做任何处理原样返回:



![](https://img-blog.csdnimg.cn/img_convert/126b261f7a58ba59f7976bd6ad6161f4.gif)  View Code



五、单线程测试

=======



  1、测试仅记录rpc调用时间,测试数据的读取组装以及首次建立连接等相关耗时时间不作统计,循环执行100次取平均值。  



  2、服务消费方测试代码



![](https://img-blog.csdnimg.cn/img_convert/c04d821290e95791b03688aa05de6cc1.gif)  View Code



  3、测试数据耗时记录



A、dubbo 协议、netty 传输、hessian2 序列化



<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="hessian2"  />



<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.958毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合&nbsp;(100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.438毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.68毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">4.262毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">32.473毫秒&nbsp;</td></tr></tbody></table>



B、dubbo 协议、netty 传输、dubbo 序列化



<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="dubbo" /> 



<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.45毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合&nbsp;(100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">3.42毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.94毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">4.35毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">27.92毫秒</td></tr></tbody></table>



C、dubbo 协议、netty 传输、java 序列化



<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="java" /> 



<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.91毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合&nbsp;(100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">4.48毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.0毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">3.3毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">18.09毫秒</td></tr></tbody></table>



D、RMI 协议、netty 传输、java 序列化 



<dubbo:protocol name="rmi" server="netty" port="1099" serialization="java" />   



<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.63毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合&nbsp;(100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">5.15毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.77毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">2.15毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">15.21毫秒</td></tr></tbody></table>



E、RMI 协议、netty 传输、hessian2 序列化 



<dubbo:protocol name="rmi" server="netty" port="1099" serialization="hessian2"  /> 



<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.63毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合&nbsp;(100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">5.12毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">0.76毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">2.13毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">15.11毫秒</td></tr></tbody></table>



F、Hessian协议、servlet(tomcat容器)、hessian2 序列化 



<dubbo:protocol name="hessian" port="8080" server="servlet" serialization="hessian2" /> 



<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.6毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合&nbsp;(100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">5.98毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1.88毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">5.52毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">39.87毫秒</td></tr></tbody></table>



G、WebService协议、servlet(tomcat容器)、SOAP序列化



<dubbo:protocol name="webservice" port="8080" server="servlet" /> 



<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">7.4毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合&nbsp;(100)</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">34.39毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">6.0毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">7.43毫秒</td></tr><tr><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="color:rgb(69,69,69); font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; border:1px solid silver; border-collapse:collapse; padding:3px">34.61毫秒</td></tr></tbody></table>



  4、性能对比



![](https://img-blog.csdn.net/20161128103723998?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)



  



六、线程测试



1、由于测试机器配置较低,为了避免达到CPU瓶颈,测试设定服务消费方Consumer并发10个线程,每个线程连续对远程方法执行5次调用,服务提供方设置允许最大连接数100个,同时5个连接并行执行,超时时间设置为5000ms, 要求所有事务都能正确返回没有异常,统计包含首次建立连接的消耗时间。



2、服务消费方测试代码



2、测试数据耗时记录



A、dubbo 协议、netty 传输、hessian2 序列化



<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="hessian2"  /> 



<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1165毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合&nbsp;(100)</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1311毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1149毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1273毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">2141毫秒</td></tr></tbody></table>



B、dubbo 协议、netty 传输、dubbo 序列化



<dubbo:protocol name="dubbo" server="netty" port="30001" serialization="dubbo" /> 



<table border="1" style="border:1px solid silver; border-collapse:collapse; word-break:break-word; width:300px"><tbody><tr><td width="150" style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">单个POJO</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1220毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">POJO集合&nbsp;(100)</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1437毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1K String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1145毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">100K String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1253毫秒</td></tr><tr><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">1M String</td><td style="font-family:Verdana,Geneva,Arial,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">2065毫秒</td></tr></tbody></table>



C、dubbo 协议、netty 传输、java 序列化
al,Helvetica,sans-serif; color:rgb(69,69,69); border:1px solid silver; border-collapse:collapse; padding:3px">2065毫秒</td></tr></tbody></table>



C、dubbo 协议、netty 传输、java 序列化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值