Tomcat7下使用异步Servlet实践

上传人:cl****1 文档编号:558483926 上传时间:2024-02-22 格式:DOCX 页数:6 大小:20.04KB
返回 下载 相关 举报
Tomcat7下使用异步Servlet实践_第1页
第1页 / 共6页
Tomcat7下使用异步Servlet实践_第2页
第2页 / 共6页
Tomcat7下使用异步Servlet实践_第3页
第3页 / 共6页
Tomcat7下使用异步Servlet实践_第4页
第4页 / 共6页
Tomcat7下使用异步Servlet实践_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《Tomcat7下使用异步Servlet实践》由会员分享,可在线阅读,更多相关《Tomcat7下使用异步Servlet实践(6页珍藏版)》请在金锄头文库上搜索。

1、摘要:在Servlet3.0标准新增的诸多特性中,异步处理支持是最为关注的一个特性,本文将详细对比传统的Servlet与异步Servlet的差别,通过实践分析异步Servlet在何种场景下会提升JavaWeb应用的性能。关键词:ervlet3.0;异步1引言Servlet3.0是Tomcat7出现的新特性,而异步处理是servlet3.0的最重要的特征。在Servlet3.0之前,通过Servlet执行比较耗时的任务时,Servlet线程会被阻塞,直到所有的处理完成后才能得到响应。如果服务器的请求链接很多,它将达到最大Servlet线程限制,后续的请求被拒绝出现连接错误。虽然这种同步问题可以用

2、特定的方案解决,比如Tomcat的Comet、WebLogic的FutureResponseServlet和WebSphere的AsynchronousRequestDispatcher。这种特定容器的解决方案的问题在于,在不改变应用程序代码时不能移动到其他Servlet容器。而Servlet3.0提供标准的方式异步处理Servlet的同时增加异步Servlet支持。这样在ServletAPI3.0实现成为主流后,解决方案就变得更加简单、标准化且优雅。2.1 异步Servlet实现本实践在Tomcat7.0,JDK1.7环境下,基于eclipse3.7集成开发环境下来搭建实践工程。( 1)配置

3、配置Tomcat采用Servlet3.0,有两种配置方式:一种是注解式,一种是修改web.xml配置,我们采用了注解式。( 2)异步Servlet实现流程启动一个异步的Servlet处理过程,映射为异步上下文对象;对这个上下文对象加入一个监听;设置一个超时时间,终止异步过程;创建执行业务逻辑的工作线程池;将异步上下文放入线程池执行业务逻辑。2.2 异步Servlet测试实践采用Apache的JMeter测试工具,对项目中使用异步Servlet方式的的并发请求处理能力进行测试,同时与原有Servlet方式进行对比分析。在相同测试服务和模型情况下,两种方式测试的统计结果如下:原Servlet:从以

4、上结果可以看出,异步Servlet平均性能有一点提升,但提升不大,即整体性能受限于请求/响应的完整处理时间,跟是否采用异步方式无关。但偏离数据大幅度缩小,表明采用异步Servlet后,服务器的线程调度能力得到很大改善,响应处理能力加强。( 测试结果分析( 1)经过对比分析,可以确认Tomcat对于Servlet当前请求的处理,不论是否采用Servlet3.0写法,都是一个请求对应一个响应,标准的协议处理模式。( 2)从并发的角度看,Servlet3.0的异步处理能力,不是针对同一个用户提交的请求,而是针对大量用户请求提交到服务端后的处理效果。其核心就是Servlet对象能够快速返回,接收其他用

5、户连接上的请求,从而减少Servlet对象的创建/销毁在性能上的开销,避免因对象过多造成达到Servlet最大线程限制而可能的拒绝服务。在同样大数量并发请求场景下,异步Servlet对服务器稳定以及处理性能提升很有帮助。( 3)当业务逻辑处理的返回值跟本次请求所需要的返回值不相关,即可以立即返回响应而不需等待业务逻辑处理结果时,用Servlet3.0则将对整个处理性能有一个质的飞跃。4实践总结的场景和服务器能力设计来权衡使用。该解决方案非常适合于某些应用场景,比如说通知类、日志类服务等,他们的执行与请求/响应是解耦的。而对于需要等待数据库查询完成,或者需要明确获得本次处理结果,才能返回响应处理场景来说,这种方式就没有什么必须性了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号