一种基于消息队列实现异步数据处理的方法及系统技术方案

技术编号:37713030 阅读:14 留言:0更新日期:2023-06-02 00:07
本发明专利技术公开了一种基于消息队列实现异步数据处理的方法及系统,其中方法包括:根据业务实际需求将待处理的异步请求进行分类,异步请求的类型分为需完成后立即响应请求,或无需完成后立即响应请求;将经过分类后的异步请求写入消息队列中,基于所述消息队列,将所述异步请求进行解耦,并按照类别分别处理所述异步请求;当所述异步请求完成之后,将需完成后立即响应请求类型的异步请求的响应结果直接向客户端发送;或者将无需完成后立即响应请求的异步请求的响应结果写入数据库。异步请求的响应结果写入数据库。异步请求的响应结果写入数据库。

【技术实现步骤摘要】
一种基于消息队列实现异步数据处理的方法及系统


[0001]本专利技术涉及信息技术应用
,更具体地,涉及一种基于消息队列实现异步数据处理的方法及系统。

技术介绍

[0002]在软件接收到客户端的各类请求后,有一类服务调用请求并非需要实时得到业务逻辑上的响应信息,但该请求仍会占用系统资源,直到收到响应信息后才释放系统资源。
[0003]现有技术中,目前多采用多线程方式处理需要异步的请求,在新线程执行结束之后多采用数据库指定标识记录的方式记录服务调用状态。在启用新线程的同时,通过轮询的方式在指定时间间隔内对数据库标识状态进行查询。当查询到服务器标识状态已记录为异步线程执行完毕时返回响应信息提示客户端已完成相应请求操作。该方案受限于在多并发的状态下系统线程增多和频繁轮询请求下造成系统压力剧增。极大的增加了服务端和数据库的负担。
[0004]现有技术,申请号(US14287007)提供用于分布式和交互式数据库体系结构的软件和元数据结构,用于复杂数据的并行和异步数据处理以及实时查询处理,现有技术提供了一种用于分布式处理的数据处理系统和体系结构,该系统和体系结构可以并行和异步地执行,不仅提供了高速数据处理,而且提供了输出数据的提供与输入数据的提供的有效和有价值的解耦。
[0005]然而,现有技术无法针对由客户端发起的需要进行异步处理的请求。基于分布式的处理方式多在大数据项目中基础数据处理中使用,而由客户端发起的请求不适用于进行分布式处理。采用消息队列的方式仍可以达到解耦、消峰的目的。
[0006]因此,需要一种技术,以实现基于消息队列实现异步数据处理的技术。

技术实现思路

[0007]本专利技术技术方案提供一种基于消息队列实现异步数据处理的方法及系统,以解决如何基于消息队列实现异步数据处理的问题。
[0008]为了解决上述问题,本专利技术提供了一种基于消息队列实现异步数据处理的方法,所述方法包括:
[0009]根据业务实际需求将待处理的异步请求进行分类,异步请求的类型分为需完成后立即响应请求,或无需完成后立即响应请求;
[0010]将经过分类后的异步请求写入消息队列中,基于所述消息队列,将所述异步请求进行解耦,并按照类别分别处理所述异步请求;
[0011]当所述异步请求完成之后,将需完成后立即响应请求类型的异步请求的响应结果直接向客户端发送;或者
[0012]将无需完成后立即响应请求的异步请求的响应结果写入数据库。
[0013]优选地,所述需完成后立即响应请求的异步请求包括:大数据量的导出或特定事
务的发布;
[0014]所述无需完成后立即响应请求的异步请求包括:请求完成后由客户端执行程序至某一步时系统自动触发查询是否已完成异步请求处理。
[0015]优选地,所述将经过分类后的异步请求写入消息队列中,基于所述消息队列,将所述异步请求进行解耦,并按照类别分别处理所述异步请求,包括:
[0016]应用系统接收到客户端发送的异步请求后,将所述异常请求写入消息队列;
[0017]消息队列的消费者在接收到所述消息队列的推送信息后,根据业务情况执行不同的程序,与应用系统解耦。
[0018]优选地,还包括:
[0019]将所述消息队列作为异步请求的缓冲区,在消息队列中大量积压异步请求;
[0020]基于处理能力对所述异步请求进行处理。
[0021]优选地,还包括:不同的业务实际需求对应不同的消息队列中间件。
[0022]基于本专利技术的另一方面,本专利技术提供一种基于消息队列实现异步数据处理的系统,所述系统包括:
[0023]初始单元,用于根据业务实际需求将待处理的异步请求进行分类,异步请求的类型分为需完成后立即响应请求,或无需完成后立即响应请求;
[0024]执行单元,用于将经过分类后的异步请求写入消息队列中,基于所述消息队列,将所述异步请求进行解耦,并按照类别分别处理所述异步请求;
[0025]结果单元,用于当所述异步请求完成之后,将需完成后立即响应请求类型的异步请求的响应结果直接向客户端发送;或者将无需完成后立即响应请求的异步请求的响应结果写入数据库。
[0026]优选地,所述需完成后立即响应请求的异步请求包括:大数据量的导出或特定事务的发布;
[0027]所述无需完成后立即响应请求的异步请求包括:请求完成后由客户端执行程序至某一步时系统自动触发查询是否已完成异步请求处理。
[0028]优选地,所述执行单元,用于将经过分类后的异步请求写入消息队列中,基于所述消息队列,将所述异步请求进行解耦,并按照类别分别处理所述异步请求,包括:
[0029]应用系统接收到客户端发送的异步请求后,将所述异常请求写入消息队列;
[0030]消息队列的消费者在接收到所述消息队列的推送信息后,根据业务情况执行不同的程序,与应用系统解耦。
[0031]优选地,所述执行单元,还用于:
[0032]将所述消息队列作为异步请求的缓冲区,在消息队列中大量积压异步请求;
[0033]基于处理能力对所述异步请求进行处理。
[0034]优选地,还包括:不同的业务实际需求对应不同的消息队列中间件。
[0035]本专利技术技术方案提供一种基于消息队列实现异步数据处理的方法及系统,其中方法包括:根据业务实际需求将待处理的异步请求的数据进行分类,异步请求的类型分为需完成后立即响应请求,或无需完成后立即响应请求;将经过分类后的异步请求写入消息队列中,基于消息队列,将异步请求进行解耦,并按照类别分别处理异步请求;当异步请求完成之后,将需完成后立即响应请求类型的异步请求的响应结果直接向客户端发送;或者将
无需完成后立即响应请求的异步请求的响应结果写入数据库。本专利技术技术方案通过消息队列的方式替代传统多线程实现异步数据处理,减轻系统压力。本专利技术技术方案所提供的基于消息队列的异步数据处理方法和系统,利用消息队列本身性质,实现了异步数据处理的解耦合、提高系统的吞吐量、减少系统的资源消耗,保证了软件系统的稳定性。
附图说明
[0036]通过参考下面的附图,可以更为完整地理解本专利技术的示例性实施方式:
[0037]图1为根据本专利技术优选实施方式的一种基于消息队列实现异步数据处理的方法流程图;以及
[0038]图2为根据本专利技术优选实施方式的异步数据请求方法流程图;
[0039]图3为根据本专利技术优选实施方式的一种基于消息队列实现异步数据处理的系统结构图。
具体实施方式
[0040]现在参考附图介绍本专利技术的示例性实施方式,然而,本专利技术可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本专利技术,并且向所属
的技术人员充分传达本专利技术的范围。对于表示在附图中的示例性实施方式中的术语并不是对本专利技术的限定。在附图中,相同的单元/元件使用相同的附图标记。
[0041]除非另有说明本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于消息队列实现异步数据处理的方法,所述方法包括:根据业务实际需求将待处理的异步请求进行分类,异步请求的类型分为需完成后立即响应请求,或无需完成后立即响应请求;将经过分类后的异步请求写入消息队列中,基于所述消息队列,将所述异步请求进行解耦,并按照类别分别处理所述异步请求;当所述异步请求完成之后,将需完成后立即响应请求类型的异步请求的响应结果直接向客户端发送;或者将无需完成后立即响应请求的异步请求的响应结果写入数据库。2.根据权利要求1所述的方法,所述需完成后立即响应请求的异步请求包括:大数据量的导出或特定事务的发布;所述无需完成后立即响应请求的异步请求包括:请求完成后由客户端执行程序至某一步时系统自动触发查询是否已完成异步请求处理。3.根据权利要求1所述的方法,所述将经过分类后的异步请求写入消息队列中,基于所述消息队列,将所述异步请求进行解耦,并按照类别分别处理所述异步请求,包括:应用系统接收到客户端发送的异步请求后,将所述异常请求写入消息队列;消息队列的消费者在接收到所述消息队列的推送信息后,根据业务情况执行不同的程序,与应用系统解耦。4.根据权利要求3所述的方法,还包括:将所述消息队列作为异步请求的缓冲区,在消息队列中大量积压异步请求;基于处理能力对所述异步请求进行处理。5.根据权利要求3所述的方法,还包括:不同的业务实际需求对应不同的消息队列中间件。6.一种基于消息队列实现异步数据处理的系统,所述系...

【专利技术属性】
技术研发人员:刘硕吴伟刚梁丽潘竟旭鲁龙刘鹏
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:

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

1