首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程化apache cxf客户端及其在高频请求上的性能

线程化apache cxf客户端及其在高频请求上的性能
EN

Stack Overflow用户
提问于 2012-07-20 11:27:30
回答 1查看 2.2K关注 0票数 2

我有一个相对简单的java服务,它从各种SOAP cxf服务中获取信息,并在幕后使用Apachecxf2.5.2实现。该服务启动20个工作线程,每小时通过1000-8000个请求,每个请求可以根据请求的性质进行2-5个webservice调用。

设置

  1. 我在webservice连接上使用连接池。
  2. 连接超时设置为2秒,以便实际有效地处理请求量。
  3. 所有连接都是通过http代理发出的。
  4. 20股线
  5. 16 cpu机箱

问题是,我开始在日志中看到“connection”错误,其中有相当多的错误,而应用程序服务似乎也在影响机器的网络性能,因为命令行的curl需要>5秒,只需建立到相同see服务的连接即可。但是,当我停止服务应用程序时,curl性能急剧提高到< 5ms

其他人是如何使用CXF处理这种情况的?是起作用了,还是换到了不同的图书馆?如果您要从头开始,您将如何设计‘小有效载荷高频’事务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-20 11:54:18

有一次,我们遇到了和你们类似的问题,请求花了很长时间才完成。这不是CXF问题,每个web服务的堆栈都将长期运行,以满足非常频繁的请求。

为了解决这个问题,我们实现了JMS EJB消息驱动bean。流程如下:当用户将请求发送到web服务时,所有的请求都被放入JMS队列中,这样用户的响应就会很快出现,请求就会留在后台处理。后来,用户能够看到他们的操作:如果他们仍然被发送到处理,如果他们正在处理,如果他们已经成功完成,或者他们由于某种原因未能完成。

如果我必须设计频繁的事务应用程序,我肯定会为此使用JMS

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11578404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档