一种基于NIO请求的异步信息处理方法技术

技术编号:12067535 阅读:74 留言:0更新日期:2015-09-18 01:45
本发明专利技术提供了一种基于NIO请求的异步信息处理方法,包括以下步骤:接收请求客户端发送设定格式的请求消息,所述请求消息中包括:请求体、请求参数、回调服务信息;将所述请求消息处理为请求任务,放入请求任务队列;监听请求任务队列的变化,当监听到有新的请求任务,取出所述新的请求任务并启动线程处理,获得与所述请求任务相对应的响应;将获得的响应放置到响应队列;监听设定时间段内响应队列的变化,定时取出设定时间段内发生变化的响应并执行回调,并向请求客户端发送任务状态通知。本发明专利技术采用经典的生产者与消费者模式多线程异步处理请求,节约了集群计算资源、避开任务高峰期、降低了网络和本地的IO开销。

【技术实现步骤摘要】

本专利技术设及通信
,尤其设及一种基于NIO(新的输入输出,NewInput Ou化ut)请求的异步信息处理方法。
技术介绍
随着网络通信技术的发展,各种用户的各类ht化服务要求越来越多,该对服务器 提出了更高的要求。 而如何提高服务器的处理速度,尤其是在有高并发需求的场景,如何提高服务器 的处理速度,成为技术人员需要考虑的问题。
技术实现思路
本专利技术所要解决技术问题是提供一种基于NI0请求的异步信息处理方法,减轻网 络负担,提高服务器的处理速度。 为了解决上述技术问题,本专利技术提供了一种基于NI0请求的异步信息处理方法, 包括W下步骤: 接收请求客户端发送设定格式的请求消息,所述请求消息中包括;请求体、请求参 数、回调服务信息; 将所述请求消息处理为请求任务,放入请求任务队列;[000引监听请求任务队列的变化,当监听到有新的请求任务,取出所述新的请求任务并 启动线程处理,获得与所述请求任务相对应的响应; 将获得的响应放置到响应队列; 监听设定时间段内响应队列的变化,定时取出设定时间段内发生变化的响应并执 行回调,并向请求客户端发送任务状态通知。 优选的,所述监听请求任务队列的变化,为: 根据设置的时间间隔,由异步模块异步轮询所述请求任务队列。 优选的,还包括W下设置步骤;定义收发双方的通信协议,包括访问地址,请求参 数,回调服务信息。 优选的,所述向请求客户端发送任务状态通知,包括;回调成功的任务状态或者回 调失败的任务状态。 本专利技术采用经典的生产者与消费者模式多线程异步处理请求,节约了集群计算资 源、避开任务高峰期、降低了网络和本地的10开销。本专利技术通过采用logback异步写日志到 kafka,从而避免了日志写本地10对性能的损耗;采用Netty对直接内存的操作,用户可W 像操作一个Buffer那样方便的对组合Buffer进行操作,避免了传统通过内存拷贝的方式 将几个小Buffer合并成一个大的Buffer,从而减轻JVM开销,避开了内存溢出和降低了GC 的频率;采用生产者消费者的模式处理队列,从而避开了因任务并发导致的集群压力,节约 了集群资源;任务模块设计支持可插拔,从而解决了模块之间高度禪合的情况;采用请求 回调策略,进而实现任务状态的返馈; 本专利技术可做轻量级的ht化服务,由于其异步双工的特性,从而可应用于绝大多数 有高并发需求的场景,因为本程序不对静态/动态html页面做解析,所W其处理速度与响 应速度都比现在主流的web服务器(tomcat)要快,可用于后台异步批处理。【附图说明】 图1为本专利技术提供的一种基于NI0请求的异步信息处理方法流程图。【具体实施方式】 下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部。基于本专利技术中的 实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都 属于本专利技术保护的范围。 参照图1所示,为本专利技术提供的一种基于NI0请求的异步信息处理方法流程图。所 述方法包括: 步骤101,接收客户端发送设定格式的请求消息,所述请求消息中包括:请求体、 请求参数、回调服务信息;[002U 举例如下;因设及安全方面,部分参数省略,对于回调服务信息,其中%erify_ error"为校验失败回调的U化,"verify_ok"为校验成功回调的U化,"apply_erro;r"为处 理失败回调的U化,"apply_ok"为处理成功回调的U化,其余属性为请求参数。 步骤102,将所述请求消息处理为请求任务,放入请求任务队列; 步骤103,异步模块监听请求任务队列的变化; 步骤104,当监听到有新的请求任务,取出请求任务并启动线程处理,获得与所述 请求任务相对应的响应; 监听是根据设置的时间间隔,由一个TimerTask(定时任务)异步去轮询该个队 列; 该里的Executor是可插拔的,不同的任务由不同的Executor去执行。[002引步骤105,将获得的响应放置到响应队列; 步骤106,监听任务模块监听响应队列(requestqueue)的变化,(Timer"Task轮 询)取出并执行回调,并向请求客户端发送任务状态通知。 由我方服务通过协议取出回调服务并向请求者发送任务状态通知。任务状态可W 为成功、失败等状态。 需要说明的是,本专利技术需要定义收发双方的通信协议,包含访问地址,请求参数, 回调服务信息等内容。 本专利技术是基于NI0开发的一个http服务,可处理固定的http请求,客户端(浏 览器等)发送的ht化请求须有固定的请求格式,格式包含;请求体、请求参数、回调服务, request部分,会对请求做简单安全认证和格式处理。因为数据是设密的所W需要安全认 证,请求协议的请求体部分的token属性为安全认证。处理后的请求会统一放入request queue,异步模块Asyn化sk会监听requestqueue的变化,取出请求任务并启动线程 exe州tor处理,处理完成的请求会被放置到ResponseQueue。ResponseQueue被监听任务 Cal化ack化sk取出并执行回调,通知被回调服务任务完成。 本专利技术框架模型简单,复用nettyhttpHandler(netty为本程序设计的开源的第 =方工具,其中的httpHandler是其提供的一个处理http请求解析的类,负责我方服务对 ht化请求的解析部分)实现基于NIO异步双向通讯处理ht化服务,可在较短时间内开发出 具有高并发、低延迟的http服务。 基于灵活可扩展的json格式做报文通讯协议,采用统一的异步处理接口API实现 任务处理可插拔,使用线程池模式管理Executor保证处理的高效性。采用经典的生产者与 消费者模式多线程异步处理请求,节约了集群计算资源、避开任务高峰期、降低了网络和本 地的10开销。 W上所述的【具体实施方式】,对本专利技术的目的、技术方案和有益效果进行了进一步 详细说明,所应理解的是,W上所述仅为本专利技术的【具体实施方式】,并不用于限定本专利技术的保 护范围,凡在本专利技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本 专利技术的保护范围之内。【主权项】1. 一种基于NIO请求的异步信息处理方法,其特征在于,包括以下步骤: 接收请求客户端发送设定格式的请求消息,所述请求消息中包括:请求体、请求参数、 回调服务信息; 将所述请求消息处理为请求任务,放入请求任务队列; 监听请求任务队列的变化,当监听到有新的请求任务,取出所述新的请求任务并启动 线程处理,获得与所述请求任务相对应的响应; 将获得的响应放置到响应队列; 监听设定时间段内响应队列的变化,定时取出设定时间段内发生变化的响应并执行回 调,并向请求客户端发送任务状态通知。2. 如权利要求1所述的方法,其特征在于,所述监听请求任务队列的变化,为: 根据设置的时间间隔,由异步模块异步轮询所述请求任务队列。3. 如权利要求1所述的方法,其特征在于,还包括以下设置步骤:定义收发双方的通信 协议,包括访问地址,请求参数,回调服务信息。4. 如权利要求1所述的方法,其特征在于,所述向请求客户端发送任务状态本文档来自技高网...

【技术保护点】
一种基于NIO请求的异步信息处理方法,其特征在于,包括以下步骤:接收请求客户端发送设定格式的请求消息,所述请求消息中包括:请求体、请求参数、回调服务信息;将所述请求消息处理为请求任务,放入请求任务队列;监听请求任务队列的变化,当监听到有新的请求任务,取出所述新的请求任务并启动线程处理,获得与所述请求任务相对应的响应;将获得的响应放置到响应队列;监听设定时间段内响应队列的变化,定时取出设定时间段内发生变化的响应并执行回调,并向请求客户端发送任务状态通知。

【技术特征摘要】

【专利技术属性】
技术研发人员:葛祺郭彦超
申请(专利权)人:北京集奥聚合网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1