我有一个相对简单的java服务,它从各种SOAP cxf服务中获取信息,并在幕后使用Apachecxf2.5.2实现。该服务启动20个工作线程,每小时通过1000-8000个请求,每个请求可以根据请求的性质进行2-5个webservice调用。
设置
问题是,我开始在日志中看到“connection”错误,其中有相当多的错误,而应用程序服务似乎也在影响机器的网络性能,因为命令行的curl需要>5秒,只需建立到相同see服务的连接即可。但是,当我停止服务应用程序时,curl性能急剧提高到< 5ms
其他人是如何使用CXF处理这种情况的?是起作用了,还是换到了不同的图书馆?如果您要从头开始,您将如何设计‘小有效载荷高频’事务?
发布于 2012-07-20 11:54:18
有一次,我们遇到了和你们类似的问题,请求花了很长时间才完成。这不是CXF问题,每个web服务的堆栈都将长期运行,以满足非常频繁的请求。
为了解决这个问题,我们实现了JMS EJB消息驱动bean。流程如下:当用户将请求发送到web服务时,所有的请求都被放入JMS队列中,这样用户的响应就会很快出现,请求就会留在后台处理。后来,用户能够看到他们的操作:如果他们仍然被发送到处理,如果他们正在处理,如果他们已经成功完成,或者他们由于某种原因未能完成。
如果我必须设计频繁的事务应用程序,我肯定会为此使用JMS。
希望这能有所帮助。
https://stackoverflow.com/questions/11578404
复制相似问题