论坛首页 Java企业应用论坛

Xfire客户端并发访问压力的问题

浏览 4232 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-05-29  

最近项目需求..利用Xfire这个经典的WebService框架,搭建了与单片机通信的桥梁...(这个WebService不是我搭建的..我只负责调用客户端).目前利用Xfire客户端并发访问的有30台服务器左右,开始每个服务器开启一条线程(包括自己写的WebService链接超时机制的线程)多线程进行对所有服务器的并发访问,获取反馈数据.因为WebService创建链接并获取反馈数据,消耗CPU量比较大.所以.通过普通线程创建访问的方式..给CPU带来非常大的压力.后来改用jdk5新加入的ThreadPoolExecutor管理线程,因为大量的线程创建也有非常大的资源消耗.所以利用线程池进行管理..xfire的通信是中断式的,并不保持链接.所以利用hashmap把链接对象缓存起来.(xfire创建对象需要消耗500毫秒,客户端不是我写的..因此无法优化).减少创建对象的消耗.因此cpu的峰值从85%降低到45%.不知道其他高手还有没有其他较好的解决方案.

   发表时间:2010-05-31  
感觉其实你已经优化了:)
0 请登录后投票
   发表时间:2010-05-31  
sillycat 写道
感觉其实你已经优化了:)

哦?无法再优化了?
0 请登录后投票
   发表时间:2010-06-04  
换了个intel的cpu.E5200...居然cpu峰值才5%....郁闷啊..RP问题?
0 请登录后投票
   发表时间:2010-06-04  
用LoadRunner压压试试

webservice高并发时,cpu必然超高,xml解析时计算密集的。
and 如果webservice操作比较耗时,可以考虑使用seda模型,服务器端也可以考虑使用异步的servlet+线程池。
0 请登录后投票
   发表时间:2010-06-08  
kimmking 写道
用LoadRunner压压试试

webservice高并发时,cpu必然超高,xml解析时计算密集的。
and 如果webservice操作比较耗时,可以考虑使用seda模型,服务器端也可以考虑使用异步的servlet+线程池。

kimmking 写道
用LoadRunner压压试试

webservice高并发时,cpu必然超高,xml解析时计算密集的。
and 如果webservice操作比较耗时,可以考虑使用seda模型,服务器端也可以考虑使用异步的servlet+线程池。

好,我去修改一下.非常感谢您的意见.!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics