如何提高Web Service的性能
tvjody
2010-03-01
使用连接对象池将WEB服务连接缓存,采用心跳保持连接,可以提高响应
|
|
lottons
2010-03-02
dandan_5956 写道 lottons 写道 采用基于JMS消息的webservice,底层用HTTP的话性能一般。
JMS是异步的,基于JMS的Web Service在很大并发量的情况下,能够很及时响应吗? 这个没有问题的,关键看怎么处理了。一般的webservice都是采用的SOAP+HTTP的方式,也就是说底层的网络协议是HTTP的,因为HTTP比较通用。websevice的目的就是能够通用,不同的系统,不同的语言或者不同的方式都能够进行调用。因此这种方式比较普遍,如果采用SOAP+JMS相对来说就比较特殊,在apache的CXF中是可以支持JMS方式的,你可以参考一下上面的文档。我们现在的系统中也使用了这种方式,底层的这种同步或者异步的处理,已经是经过封装处理了的,不需要你来特别关注。 |
|
andot
2010-03-02
使用hprose也是基于http的,但是效率是基于SOAP的webservice的百倍多,使用也比SOAP容易的多。
|
|
dandan_5956
2010-03-08
今天刚做了一次压力测试,100个并发,平均响应时间在4秒左右,不是很理想 ,服务器环境用的单个WebSphere,没有用IHS,两台memcache服务器,分别分配10G内存,发现有一台memcache没有存上数据,客户端用的whalin/Memcached-Java-Client,
|
|
dandan_5956
2010-03-08
接口的开发还是用的CXF+Spring,基于SOAP
|
|
jinyanhui2008
2010-03-09
是不是返回数据量过大?
观察从调用函数到函数返回结果集时间,以及数据流传输占用时间。 如果是运算时间过长则考虑优化算法,如果数据流传输时间过长,考虑将数据流压缩返回。 |
|
jinyanhui2008
2010-03-10
jinyanhui2008 写道 是不是返回数据量过大?
观察从调用函数到函数返回结果集时间,以及数据流传输占用时间。 如果是运算时间过长则考虑优化算法,如果数据流传输时间过长,考虑将数据流压缩返回。 可以考虑使用spring aop统一对数据流进行二进制转换。压缩字节。 |
|
dandan_5956
2010-03-10
jinyanhui2008 写道 jinyanhui2008 写道 是不是返回数据量过大?
观察从调用函数到函数返回结果集时间,以及数据流传输占用时间。 如果是运算时间过长则考虑优化算法,如果数据流传输时间过长,考虑将数据流压缩返回。 可以考虑使用spring aop统一对数据流进行二进制转换。压缩字节。 最近在一步步的分析和测试,性能瓶颈出现在那里,多谢你的建议。 |
|
hu97086
2010-05-19
你这个命题太大了。
提高WebService性能有很大方法,具体要看你环境。 一般来,提高性能的有两大途径:集群(Cluster),缓存(Cache)。 当然,这一切还是要根据你的业务要求、现实情况展开的,在超大、复杂业务过程中,异步处理也能大大提高性能。 |
|
dandan_5956
2010-05-19
hu97086 写道 你这个命题太大了。
提高WebService性能有很大方法,具体要看你环境。 一般来,提高性能的有两大途径:集群(Cluster),缓存(Cache)。 当然,这一切还是要根据你的业务要求、现实情况展开的,在超大、复杂业务过程中,异步处理也能大大提高性能。 你提的集群(Cluster),缓存(Cache),都用到了,缓存的是接口提供的数据,用的Memcache,用的过程中发现Memcache缓存使用率到了80%,就上不去了,老的数据占用的空间会被释放掉,为新的数据提供空间 |