加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

【转】webservice性能研究

发布时间:2020-12-17 02:06:05 所属栏目:安全 来源:网络整理
导读:最近的项目会用到webservice ,以前接触过这个东东,可是也就是简单使用,对其性能方面没有过深研究过 ,最近重新拾起来把webservice的各种实现框架和原理复习了一下,发现webservice很客户化,开发实现很简单,但是性能是一个很大问题,而对于即将用于业务

最近的项目会用到webservice ,以前接触过这个东东,可是也就是简单使用,对其性能方面没有过深研究过 ,最近重新拾起来把webservice的各种实现框架和原理复习了一下,发现webservice很客户化,开发实现很简单,但是性能是一个很大问题,而对于即将用于业务应用的项目,性能问题是需要重点考虑。

webservice 提供了分布式系统之间的通讯协议 ,为应用人员提供了基本数据类型、对象、数组客户端和服务器端的通讯方式。在实际应用中客户端的并发量,数据传输量会随着业务的发展逐步升级,而我们在已经选型webservice后如何调整才能满足业务量增加的需求 。 有些人可能会说,可以去做服务器集群、平衡负载 ,对,这些都是解决方案,可是还是有个问题,我们如何预期到这个问题 。自己想了一下,可以分一下步骤去做 。

1、 webservice 选型

????? 项目启动前已经确定需要使用webservice,webservice的实现框架究竟应该选用哪一个是我们需要了解的 ,xfie? ? axis ? 还是其他的 ,看一下有位前辈的测试报告。

性能测试总结报告
Axis报告
●???? Axis在性能测试环境中共占用内存为541MB-542MB,平均541.5MB。
●???? 在性能测试的运行过程中,Axis性能良好,没有出现程序中断或者内存益处的状况。
●???? Axis在该性能测试中的运算效率为 82.05s/n。
●???? 总评,Axis性能比较稳定,占用系统资源较少,运算效率一般。
XFire报告
●???? XFire 在性能环境中共占用内存为 535MB-536MB,平均为 535.6MB。
●???? 在性能测试的运行过程中,XFire性能卓越,没有出现程序中断或者内存益处的状况。
●???? XFire在该性能测试中的运算效率为 142.86s/n。
●???? 总评,XFire性能卓越,占用系统资源较少,运算效率高。

?
暂不管前辈是怎么测试得出的结果,总体来看xfire还是优于axis的。
?
?
?
2、接口实现讨论
?
?开始我们已经提到了,webservice可以支持基本数据类型、自定义对象、数组的数据传输,可是在实际应用中应该使用那种方式呢 ,或者那种方式适合我们呢 ?
?
从网上看了一些相关的帖子,大家在使用webservice时为了避免出现性能问题,都在尽量使用传输小数据量的基本数据类型,可是在一些大型应用中对象传输是不可以避免的,我们该怎么办 ? 下边是一个对比的例子。
?
1.??? 直接返回DataSet对象
特点:通常组件化的处理机制,不加任何修饰及
??????????? 处理;
优点:代码精减、易于处理,小数据量处理较快;
缺点:大数据量的传递处理慢,消耗网络资源;
建议:当应用系统在内网、专网(局域网)的应用
??????????? 时,或外网(广域网)且数据量在KB级时的
??????????? 应用时,采用此种模式。
2.返回DataSet对象用Binary序列化后的字节数组?
特点:字节数组流的处理模式;
优点:易于处理,可以中文内容起到加密作用;
缺点:大数据量的传递处理慢,较消耗网络资源;
建议:当系统需要进行较大数据交换时采用。
3.返回DataSetSurrogate对象用Binary序列化后的字节数组?
特点:微软提供的开源组件;
???????????????? 下载地址 http://support.microsoft.com/kb/829740/zh-cn
优点:易于处理,可以中文内容起到加密作用;
缺点:大数据量的传递处理慢,较消耗网络资源;
建议:当系统需要传输中文数据或需要加密时采用此种方式
4.返回DataSetSurrogate对象用Binary序列化并Zip压缩后的字节数组
特点:对字节流数组进行压缩后传递;
优点:当数据量大时,性能提高效果明显,
???????????? 压缩比例大;
缺点:相比第三方组件,压缩比例还有待提高;
建议:当系统需要进行大数据量网络数据传递时,
???????????? 建议采用此种可靠、高效、免费的方法。?
测试用例:SqlServer2000数据库,数据量大小40000行,
看到以上内容,对于接口的定义我们心里有一些依据了。
?
?

3、 webservice服务性能测试

?? 选型也做好了,接口也定了,可是还是不放心,我们的方案能满足业务的要求吗? 或者说业务预期的业务量有多大,我们的系统什么时候就该升级了,这些不是谁凭空就可以说出来的,都需要拿数据说话 。那我们就得测试一下我们的接口究竟能支持多大的数据量 。

测试工具 soapui

  • 开发语言:Java
  • 操作系统:跨平台?
  • 项目主页:http://www.soapui.org/
  • 文档地址:http://www.soapui.org/userguide/index.html
  • 下载地址:http://sourceforge.net/project/platformdownload.php?group_id=136013

    测试方法看这位老兄的http://tech.it168.com/a2009/0806/619/000000619515.shtml

    ?

    ?

    4、服务器集群

    哈哈,终于该考虑集群的方案 ,任何软件系统的实现都不能脱离硬件,软件如何优化如果没有硬件的支持也是白搭 。 服务器集群究竟该怎么做才是最优的,现在我没有什么经验 ,到时候还是问专家吧,呵呵 。

  • (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读