目录
- 1. 背景
- 2. Servlet同步请求
- 3. Servlet异步请求
- 4. 异步Servlet使用方法
- 5. Spring中的实现例子
- 附:异步对象监听器
- 总结
1. 背景
在研究长轮询的实现过程,有使用到Servlet3的异步请求。下面就来学习一下Servlet3的异步请求

现在Servlet的版本已经到了5
2. Servlet同步请求
以Tomcat服务器为例:
- Http请求到达Tomcat
- Tomcat从线程池中取出线程处理到达Tomcat的请求
- 将请求Http解析为HttpServletRequest
- 分发到具体Servlet处理对应的业务
- 通过HttpServletResponse返回处理的数据
正常情况下请求模型和上面的模型一样,所有的请求交给Tomcat服务器的线程池处理,整个动作处理完成才释放回线程池。
这里就存在了一个问题如果后期的业务处理时间比较长。那么处理请求的线程就会被一直占用。当请求越来越多被占用的线程也会越来越多。直到被耗尽线程池中所有的线程。后续进来的就一直被阻塞等待线程来处理。
当用户不关心提交的返回可以定义业务处理线程池,前端请求提交后,Tomcat线程将处理提交给业务线程池立即返回。Spring 中的异步任务(@Async)就是这样的。
3. Servlet异步请求
同样以Tomcat服务为例:
- 将请求Http解析为HttpServletRequest
- 分发到具体Servlet处理,将业务提交给自定义业务线程池,Tomcat线程立刻被释放。
- 当业务线程将任务执行结束,将会将结果转交给Tomcat线程池。
- 通过HttpServletResponse返回处理的数据
引入异步Servlet3整体流程:
使用异步 Servelt,Tomcat 线程仅仅处理请求解析动作,所有耗时较长的业务操作全部交给业务线程池,所以相比同步请求, Tomcat 线程可以处理 更多请求。虽然将业务交给了业务流程处理,但是前端还在等待结果返回(同步等待返回)。
异步处理,前端会同步等待结果返回。很多人会觉得异步请求会返回更快。其实不然由于异步存在线程的切换。所有返回时间会比同步的慢。
虽然没有降低相应时间但是还是有其他明显的优点:
- 可以处理更高并发连接数,提高系统整体吞吐量
- 请求解析与业务处理完全分离,职责单一
- 自定义业务线程池,我们可以更容易对其监控,降级等处理
- 可以根据不同业务,自定义不同线程池,相互隔离,不用互相影响
4. 异步Servlet使用方法
使用异步Servlet只需要三步:
- HttpServletRequest#startAsync() 获取 AsyncContext 异步上下文
- 使用自定义业务线程池处理业务
- AsyncContext#getResponse() 返回处理结果给前端,然后调用 AsyncContext#complete()
5. Spring中的实现例子
代码如下图:
前面有说过前端是一直在同步等待的我们通过运行代码来验证一下。结果如下图:
代码地址:github.com/mxsm/spring…
附:异步对象监听器
在异步对象完成、超时、错误或者开始时监听
//获取异步上下文对象
AsyncContext ac=req.startAsync();
ac.addListener(new AsyncListener() {
@Override
public void onComplete(AsyncEvent asyncEvent) throws IOException {
}
@Override
public void onTimeout(AsyncEvent asyncEvent) throws IOException {
}
@Override
public void onError(AsyncEvent asyncEvent) throws IOException {
}
@Override
public void onStartAsync(AsyncEvent asyncEvent) throws IOException {
}
});
总结
相关推荐:
Bing搜索不能预览了?搜索引擎的新变革与挑战,ai制作一张窗花
SEO优化的话题:助力企业成功的关键,夏杰ai智能管家
什么是seo行业,seo是什么职业做什么的 ,ai标题字体效果
SEO软优化:助力网站实现流量爆发的秘密武器,延平区网页seo
AI的两个主要发展阶段:从起步到突破,如何重塑未来,wps ai写作去哪里
AI做文章:引领智能创作的未来
ChatGPT为什么访问不了?全面解析及解决方案,ai首页设计
ChatGPT破解版电脑:如何获得更强大的AI助手,提升工作与学习效率,ai预设动画
seo站内链接有什么作用,seo中网站内链的作用 ,781900ai
ChatGPT当前不可用?如何应对AI服务中断的挑战,ai文章免费写作app
seo规范是什么,seo行业标准 ,啊龙ai音乐
个性化广告:新时代营销的秘密武器,建设经营性网站怎么记账
文字写作AI生成工具:让创作更简单、更高效
“关键词指白”:揭秘如何通过精准关键词优化实现流量暴增,全面分析网站seo
什么是seo在线咨询,什么是seo在线咨询服务 ,unreal ai
ChatGPT安装包Windows版:让AI助力你的工作与生活,人工智能ai不是梦在线
SEO有话:如何用精准优化助力企业在线增长,食品微信营销推广
为什么“蜘蛛弛查询”能成为提升网站排名的秘密武器?,惠州网站推广v1戈seo24
zblog站群,zblog怎么样 ,欧卡2ai汽车如何使用
SEO快速排名实例:如何通过实战技巧提升网站排名,快速突破流量瓶颈,安徽ai跑步机企业
SEO收集:如何通过有效数据收集提升网站排名,鞍山商城网站建设报价
ChatGPT-深度学习与自然语言处理的革命性突破,金华ai视觉锁螺丝机
用AI批量下载工具,高效管理你的文件和资源
GoogleSEO打满分自然流量会高吗?揭开SEO优化的真相,猪插画ai
Chatget免费网站版无需登录,畅享无限对话体验!,工业 Ai 视觉检测
WPQQ-开启数字时代的智能连接新纪元,杭州网站推广厂家电话
ChatGPT模型进化历程:人工智能的智慧革命,ai 喷枪星空
什么是seo优化营销,seo主要优化什么 ,ai绘画国风古韵
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
如何选择适合你的AI工具?全面解析AI工具哪个好用
SEO师:如何在数字时代为企业赢得流量与销量,十堰网站关键词优化教程
AI搜索写文章:一丝丝智慧背后的无限可能,电脑免费ai写作神器
优化平台:让数字化转型更简单、更高效,莆田谷歌seo品牌排行
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
WP原创:打造属于你的独特网站,从这里开始!,一个网站推广一个月需要多少钱
AI智能时代的到来:如何利用人工智能推动生活与商业创新,ai相册下载
为什么要seo排名,为什么要做seo推广 ,AI写作开启创意新世界
SEO优化排-打造高效的网络营销利器,精神AI
SEO导流:如何通过精准优化实现网站流量大爆发,网站优化优化怎么做
seo计算了什么,seo的常用术语 ,ai智能有意思的口令
目前AI软件有哪些?智能新时代的必备工具
用AI生成文章,让创作更简单高效
SEO那么重要,企业如何通过它脱颖而出?,自媒体推广营销的概念
如何快速写出高质量的AI文章:从入门到精通
SEO目标:让您的网站轻松登顶搜索引擎,优化购物网站的搜索
未来写作新方式原创AI文章的无限可能
常用AI工具,高效智能生活
SEO文案:如何通过巧妙布局提升网站排名,吸引更多流量,娄底网站建设工作文案
怎么分辨文章是不是AI写的?五大技巧揭开真相
GPT优化:让你的工作与生活更高效、更智能,Ai__79