处理服务请求的方法和装置.pdf

上传人:1520****312 文档编号:1306198 上传时间:2018-04-14 格式:PDF 页数:5 大小:232.38KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510795780.8

申请日:

2015.11.18

公开号:

CN106708611A

公开日:

2017.05.24

当前法律状态:

公开

有效性:

审中

法律详情:

公开

IPC分类号:

G06F9/48

主分类号:

G06F9/48

申请人:

青岛海日安电子有限公司

发明人:

陈崇传

地址:

266000 山东省青岛市城阳区重庆北路119号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明提供了处理服务请求的方法和装置,该方法包括,在Jetty??Continuation的请求处理中建立异步层次结构,包括传输层,转换内部数据层,转换外部数据层,接出层;利用Continuation异步处理请求;在所述异步层次结构中逐级异步发送请求,并异步返回处理结果,并通知释放请求。本发明层次结构简单和清晰,易于和维护,最大程度降低了耦合,提高了系统性能。

权利要求书

1.一种处理服务请求的方法,其特征在于,包括:
步骤一,在Jetty Continuation的请求处理中建立异步层次结构,包括传输层,
转换内部数据层,转换外部数据层,接出层;
步骤二,利用Continuation异步处理请求;
步骤三,在所述异步层次结构中逐级异步发送请求,并异步返回处理结果,
并通知释放请求。
2.根据权利要求1所述的处理服务请求的方法,其特征在于,所述步骤二进一
步包括获取当前请求的Continuation对象,设置监听器,在处理请求后挂起并
释放线程。
3.根据权利要求2所述的处理服务请求的方法,其特征在于,该方法基于
JSR315规范特性来处理异步请求。
4.一种处理服务请求的装置,其特征在于,包括:模型建立模块,用于在Jetty
Continuation的请求处理中建立异步层次结构,包括传输层,转换内部数据层,
转换外部数据层,接出层;Continuation模块,用于利用Continuation异步处理
请求;发送和返回模块,用于在所述异步层次结构中逐级异步发送请求,并异
步返回处理结果,并通知释放请求。

说明书

处理服务请求的方法和装置

技术领域

本发明涉及网络计算领域,特别涉及一种异步处理API服务请求的方法和装
置。

背景技术

Continuation是一种可以使HTTP请求可以被暂时挂起,并且当挂起超时
或非同步的事件发生时,被挂起的HTTP请求可以被重新恢复的机制。这个机
制的实现主要在SelectChannelConnector类中。SelectChannelConnector允
许维持每个连接开放而不用消耗一个线程。当连接挂起时,Connector将请求
维持在未决Continuations队列里,用来服务请求的线程返回给TheadPool,
这样,该线程又可以服务于其他请求。暂停的请求停留在未决Continuations
队列里直到指定的过期时间,或者在它的Continuation上调用resume方法。
Continuation.suspend会抛出一个特殊的运行时异常:RetryRequest,这个异
常将传播servlet以外,然后通过过滤器传回再由SelectChannelConnector捕
获,将请求放入处于等待状态的Continuation队列中,此时HTTP连接并不关
闭,而当前的程却可以被放回线程池,供别的请求使用。Continuation机制实
际就是对HTTP协议执行NIO(非阻塞I/O)。每个环节都是异步处理,这样极大
的提高了请求的TPS(每秒能够处理的事务量)以及并发的性能。

然而,Jetty continuation需要在应用中使用应用级的线程池来完成一些
IO任务,这个在普通的web编程并不常见。在应用的第一次请求中,需要调用
AsyncContinuation.suspend,完成一个状态的转换,以及产生一个超时任务,
将超时任务派发给应用线程池完毕后,Jetty回收该请求,线程IO任务在应用
线程中完成后,然后通过AsyncContinuation.resume或者complete等方法通
知Jetty任务完成Jetty然后会再次分配一个worker线程处理该请求,如果逻
辑复杂,如并行的多次IO会分配多个worker线程。引入Jetty continuation
带来的负面作用是需要仔细的切割各类IO任务,编程模型因而会变得复杂。

发明内容

为解决上述现有技术所存在的问题,本发明提出了一种处理服务请求的方
法和装置。本发明首先提出了一种处理服务请求的方法,包括:

步骤一,在Jetty Continuation的请求处理中建立异步层次结构,包括传
输层,转换内部数据层,转换外部数据层,接出层;

步骤二,利用Continuation异步处理请求;

步骤三,在所述异步层次结构中逐级异步发送请求,并异步返回处理结果,
并通知释放请求。

步骤二包括:取当前请求的Continuation对象,设置监听器,在处理请
求后挂起并释放线程。该方法基于JSR315规范特性来处理异步请求。

所述请求的接入方式包括DHReqContinuationServletHandler和
DHReqAsynServletHandler,均抽象为AbstractDHReqServletHandler。

所述请求接入方式基于servlet3.0和Jetty8的continuation的挂起
消费策略来实现,这针对不同的servlet容器来切换不同的异步请求处理机
制。

所述步骤三进一步包括:所述接出层收到该请求后,进行服务化API调用,
将处理结果逐步返回至转换外部数据层,转换内部数据层,和传输层,通知
Continuation释放请求,返回处理数据至servlet。

该方法还包括,当某一时刻请求大量接入时,不需要等待线程释放,而是
将线程挂起,处理完毕后通知Jetty,此时Jetty再启用一个新的线程再次处
理请求。

根据本发明的另一方面,提供了一种处理服务请求的装置,包括:模型建
立模块,用于在Jetty Continuation的请求处理中建立异步层次结构,包括
传输层,转换内部数据层,转换外部数据层,接出层;Continuation模块,用
于利用Continuation异步处理请求;发送和返回模块,用于在所述异步层次
结构中逐级异步发送请求,并异步返回处理结果,并通知释放请求。

所述Continuation模块进一步包括:获取子模块,用于获取当前请求的
Continuation对象,监听子模块,用于设置监听器,挂起子模块,用于在处理
请求后挂起并释放线程。所述发送和返回模块进一步包括;调用子模块,用于
在所述接出层收到该请求后,进行服务化API调用,返回子模块,用于将处理
结果逐步返回至转换外部数据层,转换内部数据层,和传输层,释放子模块,
用于通知Continuation释放请求,返回处理数据至servlet。

相比于现有技术,本发明的技术方案层次结构简单和清晰可见,每一层对
应的代码均具有语义,易于和维护,最大程度降低了耦合。由于每层都是异步
处理,系统性能被提升,具有应对未来大并发处理的能力提高请求访问的TPS
并发。

具体实施方式

本发明提出了一种处理服务请求的方法,包括:

步骤一,在Jetty Continuation的请求处理中建立异步层次结构,包括传
输层,转换内部数据层,转换外部数据层,接出层;

步骤二,利用Continuation异步处理请求;

步骤三,在所述异步层次结构中逐级异步发送请求,并异步返回处理结果,
并通知释放请求。

步骤二包括:取当前请求的Continuation对象,设置监听器,在处理请
求后挂起并释放线程。该方法基于JSR315规范特性来处理异步请求。

所述请求的接入方式包括DHReqContinuationServletHandler和
DHReqAsynServletHandler,均抽象为AbstractDHReqServletHandler。

所述请求接入方式基于servlet3.0和Jetty8的continuation的挂起
消费策略来实现,这针对不同的servlet容器来切换不同的异步请求处理机
制。

所述步骤三进一步包括:所述接出层收到该请求后,进行服务化API调用,
将处理结果逐步返回至转换外部数据层,转换内部数据层,和传输层,通知
Continuation释放请求,返回处理数据至servlet。

该方法还包括,当某一时刻请求大量接入时,不需要等待线程释放,而是
将线程挂起,处理完毕后通知Jetty,此时Jetty再启用一个新的线程再次处
理请求。

根据本发明的另一方面,提供了一种处理服务请求的装置,包括:模型建
立模块,用于在Jetty Continuation的请求处理中建立异步层次结构,包括
传输层,转换内部数据层,转换外部数据层,接出层;Continuation模块,用
于利用Continuation异步处理请求;发送和返回模块,用于在所述异步层次
结构中逐级异步发送请求,并异步返回处理结果,并通知释放请求。

所述Continuation模块进一步包括:获取子模块,用于获取当前请求的
Continuation对象,监听子模块,用于设置监听器,挂起子模块,用于在处理
请求后挂起并释放线程。所述发送和返回模块进一步包括;调用子模块,用于
在所述接出层收到该请求后,进行服务化API调用,返回子模块,用于将处理
结果逐步返回至转换外部数据层,转换内部数据层,和传输层,释放子模块,
用于通知Continuation释放请求,返回处理数据至servlet。

相比于现有技术,本发明的技术方案层次结构简单和清晰可见,每一层对
应的代码均具有语义,易于和维护,最大程度降低了耦合。由于每层都是异步
处理,系统性能被提升,具有应对未来大并发处理的能力提高请求访问的TPS
并发。

处理服务请求的方法和装置.pdf_第1页
第1页 / 共5页
处理服务请求的方法和装置.pdf_第2页
第2页 / 共5页
处理服务请求的方法和装置.pdf_第3页
第3页 / 共5页
点击查看更多>>
资源描述

《处理服务请求的方法和装置.pdf》由会员分享,可在线阅读,更多相关《处理服务请求的方法和装置.pdf(5页珍藏版)》请在专利查询网上搜索。

本发明提供了处理服务请求的方法和装置,该方法包括,在Jetty?Continuation的请求处理中建立异步层次结构,包括传输层,转换内部数据层,转换外部数据层,接出层;利用Continuation异步处理请求;在所述异步层次结构中逐级异步发送请求,并异步返回处理结果,并通知释放请求。本发明层次结构简单和清晰,易于和维护,最大程度降低了耦合,提高了系统性能。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1