自从Servlet3推出异步之后,Spring3.2已经开始增加了对Servlet异步的支持。
在高并发的Web场景中,如果出现处理请求的过程中出现较长的阻塞,对整个服务的性能影响是致命的,大量的请求长时间无返回会占用Servlet容器的工作线程,造成容器线程池耗尽,从而无法对外提供服务。
那么Servlet异步的初衷就是来解耦Servlet线程和我们应用的具体业务逻辑线程的,从而把Servlet请求线程(即Servlet容器的dispatch线程)快速返回给容器,以便给其它请求提供服务。下面这张图展示的比较清楚(图片来源于网络)
今天在这里主要给大家讲解下Spring中使用异步servlet的方式,以及实现原理。
使用方式
下面边张图便是Spring中使用异步请求的方式