最近的项目会用到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性能卓越,占用系统资源较少,运算效率高。
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、服务器集群
哈哈,终于该考虑集群的方案 ,任何软件系统的实现都不能脱离硬件,软件如何优化如果没有硬件的支持也是白搭 。 服务器集群究竟该怎么做才是最优的,现在我没有什么经验 ,到时候还是问专家吧,呵呵 。