大部分程序员不知道的 Servelt3 异步请求
|
用 Spring Async 任务,大家感兴趣可以自行查找一下资料 但是很多场景下,客户端需要处理返回结果,我们没办法使用上面的方案。在 Servlet2 时代,我们没办法优化上面的方案。 不过等到 Servlet3 ,引入异步 Servlet 新特性,可以完美解决上面的需求。 异步 Servlet 执行请求流程: 将请求信息解析为 HttpServletRequest 分发到具体 Servlet 处理,将业务提交给自定义业务线程池,请求立刻返回,Tomcat 线程立刻被释放 当业务线程将任务执行结束,将会将结果转交给 Tomcat 线程
通过 HttpServletResponse 同步请求, Tomcat 线程可以处理 更多请求。 虽然我们将业务处理交给业务线程池异步处理,但是对于客户端来讲,其还在同步等待响应结果。 可能有些同学会觉得异步请求将会获得更快响应时间,其实不是的,相反可能由于引入了更多线程,增加线程上下文切换时间。 虽然没有降低响应时间,但是通过请求异步化带来其他明显优点:
所以具体使用过程,我们还需要进行的相应的压测,观察响应时间以及吞吐量等其他指标,综合选择。 异步 Servelt 使用方式 异步 Servelt 使用方式不是很难,阿粉总结就是下面三板斧:
(编辑:桂林站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

