一种消息异步处理方法及其设备技术

技术编号:27655536 阅读:21 留言:0更新日期:2021-03-12 14:17
本说明书一个或多个实施例提供一种消息异步处理方法及其设备,通过消息队列来实现系统间异步调用,实现应用解耦发送和接收是异步的,发送者无需等待,二者的生命周期也可以不必相同,而且发送者可以将消息间接传给多个接收者,大大提高了程序的性能、可扩展性及健壮性。提高系统响应速度,使系统运行更加健壮、稳定。同时通过对处理步骤进行监控管理,并根据监控结果对各步骤进行参数调整和报警处理,有利于降低机器宕机后消息产生顺序错乱的问题。

【技术实现步骤摘要】
一种消息异步处理方法及其设备
本说明书一个或多个实施例涉及
,尤其涉及一种消息异步处理方法及其设备。
技术介绍
由于企业面临各样数据集成和系统整合,CORBA、DCOM、RMI等RPC(远程服务调用)中间件技术也应运而生,但由于采用RPC同步处理技术,在系统性能、健壮性、可扩展性上都存在着很多缺点。如投保单上传、投保状态查询、交费及查询接口服务原有调用顺序是国寿e店后台调用适配器,适配器调用ESB(企业服务总线),ESB调用核心系统,整个流程全部是同步调用,耗时较长,用户等待时长较高。在交易高峰期时,系统会出现大量等待线程,导致系统响应缓慢,甚至宕机,严重影响用户体验。目前业界普遍采用消息队列来解决以上问题,消息队列利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。常用的MQ(消息服务)产品,例如RabbitMQ、RocketMQ、ActiveMQ、Kafka等一般都有比较复杂的接口和通讯协议,学习和维护成本较高,并且不利于二次开发和维护,消费消息不支持重试,并且存在机器宕机后可能会产生消息顺序错乱的问题。
技术实现思路
有鉴于此,本说明书一个或多个实施例的目的在于提出一种消息异步处理方法及其设备,以解决的现有技术中消息服务产品的不足导致的系统响应缓慢,严重响应用户体验的问题。基于上述目的,本说明书一个或多个实施例提供了一种消息异步处理方法,包括:接收请求消息,根据请求消息生成任务报文;将任务报文放到任务队列中,形成消息队列;从消息队列中获取请求任务,并对请求任务进行业务分类,将分类后的请求任务进行业务处理,并根据处理结果更新请求任务的状态;对上述步骤进行监控管理,并根据监控结果对上述步骤进行参数调整和报警处理。可选的,所述将任务报文放到任务队列中,形成消息队列,包括:对请求报文进行筛选,属于任务队列的请求报文,生成请求报文ID,不属于任务队列的请求报文,则返回“错误”提示;将请求报文ID与现存的任务ID进行比对,对非重复的请求报文ID进行封装,形成封装请求报文,重复的请求报文ID则返回“重复提交”提示;将封装请求报文放入任务队列中并进行备份,形成消息队列。可选的,所述消息队列为redis队列,是缓存队列结构,由队列(List)、索引(Map)两部分构成;所述List是一个先入先出(FIFO)队列,采用redis的list实现,用于存储客户端上传数据;所述Map是采用redis的Map实现,用于存储任务队列中存在的key和在任务队列中的位置(Index)。可选的,所述将封装请求报文放入任务队列中并进行备份,形成消息队列,包括:将封装请求报文写入redis队列头部,并将封装请求报文索引同步备份到redis队列索引中,形成消息队列。可选的,所述从消息队列中获取请求任务,并对请求任务进行业务分类,将分类后的请求任务进行业务处理,并根据处理结果更新请求任务状态,包括:从消息队列的尾部提取请求任务;根据调度任务对请求任务进行分类,所述调度任务至少包括:保单号申请调度任务、保单上载调度任务、状态刷新调度任务、交易号申请调度任务、交费调度任务、每日归档调度任务;将分类后的请求任务的请求报文ID与正在等待的线程进行匹配,唤醒线程,执行请求任务;执行成功将请求任务的索引从redis队列的Map中移除;执行失败将请求任务重新放入任务队列中,并将处理结构返回;根据返回的处理结果,对至少包括:处理成功表、处理失败表、保单状态表进行状态的更新。可选的,所述对上述步骤进行监控管理,包括:消息队列状态监控、调度任务状态监控和失败任务处理监控。可选的,所述消息队列状态监控,包括:redis队列的灾备处理,所述redis队列的灾备处理包括:调用redis队列的bgrewriteaof命令将内存中的数据重新刷到磁盘日志文件(.aof)中;采用aof的每秒钟写入磁盘一次(appendfsynceverysec)方式来持久化redis队列中的数据;用主从设备模式(master-slave)来进行容灾处理,master负责处理请求消息,并采用后台进程将数据同步至slave,slave负责数据的持久化。可选的,所述调度任务状态监控,包括:通过页面进行调度任务的参数调整,将调整后的参数信息发送至调度任务服务端,进行调度任务服务端内存中参数值的调整。可选的,所述失败任务处理监控,包括:查询失败任务,选择需要进行失败处理的任务,将需要处理的失败任务信息进行重复性检查,并反馈检查结果。一种装置,用于执行所述消息异步处理方法,包括:接收模块,用于接收请求消息,根据请求消息生成任务报文;调度处理模块,用于将任务报文放到任务队列中,形成消息队列,从消息队列中获取请求任务,并对请求任务进行业务分类,将分类后的请求任务进行业务处理,并根据处理结果更新请求任务的状态;监控模块,用于对接收模块、调度处理模块中的处理步骤进行监控管理,并根据监控结果对各步骤进行参数调整和报警处理。从上面所述可以看出,本说明书一个或多个实施例提供的一种消息异步处理方法及其设备,基于消息的异步处理模型采用非阻塞的调用特性,发送者将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是异步的,发送者无需等待,二者的生命周期也可以不必相同,而且发送者可以将消息间接传给多个接收者,大大提高了程序的性能、可扩展性及健壮性。消息队列作为一个中间层软件,它为分布式系统中创建、发送、接收消息提供了一套可靠通用的方法,实现了分布式系统中可靠的、高效的、实时的跨平台数据传输。通过消息队列来实现系统间异步调用,实现应用解耦,提高系统响应速度,使系统运行更加健壮、稳定。同时通过对处理步骤进行监控管理,并根据监控结果对各步骤进行参数调整和报警处理,有利于降低机器宕机后消息产生顺序错乱的频率。附图说明为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本说明书一个或多个实施例消息异步处理方法流程图;图2为本说明书一个或多个实施例redis队列数据结构图;图3为本说明书一个或多个实施例任务调度处理流程图;图4为本说明书一个或多个实施例监控管理框架图;图5为本说明书一个或多个实施例redis灾备处理图;图6为本说明书一个或多个实施例执行消息异步处理方法的设备内部结构框图;图7为本说明书一个或多个实施例请求信息处理流程图。具体实施方式为使本公开的目的、技术方案和优点更加清楚明白,以下结合具本文档来自技高网...

【技术保护点】
1.一种消息异步处理方法,其特征在于,包括:/n接收请求消息,根据请求消息生成任务报文;/n将任务报文放到任务队列中,形成消息队列;/n从消息队列中获取请求任务,并对请求任务进行业务分类,将分类后的请求任务进行业务处理,并根据处理结果更新请求任务的状态;/n对上述步骤进行监控管理,并根据监控结果对上述步骤进行参数调整和报警处理。/n

【技术特征摘要】
1.一种消息异步处理方法,其特征在于,包括:
接收请求消息,根据请求消息生成任务报文;
将任务报文放到任务队列中,形成消息队列;
从消息队列中获取请求任务,并对请求任务进行业务分类,将分类后的请求任务进行业务处理,并根据处理结果更新请求任务的状态;
对上述步骤进行监控管理,并根据监控结果对上述步骤进行参数调整和报警处理。


2.根据权利要求1所述的消息异步处理方法,其特征在于,所述将任务报文放到任务队列中,形成消息队列,包括:
对请求报文进行筛选,属于任务队列的请求报文,生成请求报文ID,不属于任务队列的请求报文,则返回“错误”提示;
将请求报文ID与现存的任务ID进行比对,对非重复的请求报文ID进行封装,形成封装请求报文,重复的请求报文ID则返回“重复提交”提示;
将封装请求报文放入任务队列中并进行备份,形成消息队列。


3.根据权利要求2所述的消息异步处理方法,其特征在于,所述消息队列为redis队列,是缓存队列结构,由队列(List)、索引(Map)两部分构成;
所述List是一个先入先出(FIFO)队列,采用redis的list实现,用于存储客户端上传数据;
所述Map是采用redis的Map实现,用于存储任务队列中存在的key和在任务队列中的位置(Index)。


4.根据权利要求2所述的消息异步处理方法,其特征在于,所述将封装请求报文放入任务队列中并进行备份,形成消息队列,包括:
将封装请求报文写入redis队列头部,并将封装请求报文索引同步备份到redis队列索引中,形成消息队列。


5.根据权利要求1所述的消息异步处理方法,其特征在于,所述从消息队列中获取请求任务,并对请求任务进行业务分类,将分类后的请求任务进行业务处理,并根据处理结果更新请求任务状态,包括:
从消息队列的尾部提取请求任务;
根据调度任务对请求任务进行分类,所述调度任务至少包括:保单号申请调度任务、保单上载调度任务、状态刷新调度任务、交易号申请调度任务、交费调度任务、每日归档调度任务;
将分类后的请求任务的...

【专利技术属性】
技术研发人员:赵春伟张波李星关美杰
申请(专利权)人:中国人寿保险股份有限公司
类型:发明
国别省市:北京;11

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

1