基于缓冲队列接收数据实现不同级别延迟拼接方法和装置与流程

文档序号:20767857发布日期:2020-05-15 19:13阅读:173来源:国知局
基于缓冲队列接收数据实现不同级别延迟拼接方法和装置与流程

本发明属于数据信息拼接处理技术领域,尤其涉及一种基于缓冲队列接收数据实现不同级别延迟拼接方法和装置。



背景技术:

实时加工通过mq接收到的消息过程中,在收到一笔金融动账的交易信息时,为了满足实时加工的需求,因此需要实时根据另一个外围信息表中提供的信息进行关联补全交易信息,需要通过入表时间滞后以及反复查询的机制来尽可能等待接收到外围信息表中的信息,如果未能补充上则只能认为未能拼接上而强制入库提供对外查询。

现有技术中使用方法为首先在获取数据时,通过入表时间等于数据库当前时间减去配置的时间等待间隔进行筛选满足条件的数据,其次需要拼接的数据会根据配置次数反复扫描外围信息补充表,如果补充表中无相关数据则扫描次数加一,直至扫描次数已满。

在采用上述现有技术的方法时,首先使用数据库时间进行控制,这样就导致始终有部分数据属于无法处理状态,增加表查询负荷;其次反复扫描情况,需要对此表进行反复更新,影响整体处理性能,加重数据库负荷,从而影响数据接收处理的速度。



技术实现要素:

本发明实施例提供一种基于缓冲队列接收数据实现不同级别延迟拼接方法,利用缓冲队列和多级延迟队列实现交易信息与外围信息表的延迟拼接加工,该方法包括:

监听mq消息队列,获取交易信息;

将交易信息转发至缓冲队列;所述缓冲队列设有缓冲时长;

在缓冲队列的缓冲时长到期后,将交易信息转发至实际消费队列;

将实际消费队列中的交易信息取出,与外围信息表进行匹配判断;

在交易信息与外围信息表匹配时,对交易信息进行拼接加工,确定完整交易信息;

在交易信息与外围信息表不匹配时,将交易信息转发至多级延迟队列,在多级延迟队列的延迟时长到期后,将交易信息转发至实际消费队列。

本发明实施例还提供一种基于缓冲队列接收数据实现不同级别延迟拼接装置,包括:

交易信息获取模块,用于监听mq消息队列,获取交易信息;

交易信息转发缓冲队列模块,用于将交易信息转发至缓冲队列;所述缓冲队列设有缓冲时长;

交易信息转发实际消费队列模块,用于在缓冲队列的缓冲时长到期后,将交易信息转发至实际消费队列;

匹配判断模块,用于将实际消费队列中的交易信息取出,与外围信息表进行匹配判断;

完整交易信息确定模块,用于在交易信息与外围信息表匹配时,对交易信息进行拼接加工,确定完整交易信息;

延迟转发模块,用于在交易信息与外围信息表不匹配时,将交易信息转发至多级延迟队列,在多级延迟队列的延迟时长到期后,将交易信息转发至实际消费队列。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于缓冲队列接收数据实现不同级别延迟拼接方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行实现上述基于缓冲队列接收数据实现不同级别延迟拼接方法的计算机程序。

本发明实施例提供的一种基于缓冲队列接收数据实现不同级别延迟拼接方法和装置,首先通过监听mq消息队列,获取交易信息并转发至缓冲队列,能够缓解mq消息队列及数据库中的积压情况,然后在缓冲队列的缓冲时长到期后,将交易信息转发至实际消费队列,再将实际消费队列中的交易信息取出,与外围信息表进行匹配判断,在数据加工的过程中,能够匹配成功时,交易信息直接与外围信息表进行拼接加工,确定完整交易新,在匹配不成功时,将交易信息分发至不同延迟等级的多级延迟队列,在多级延迟队列的延迟时长到期后,将交易信息转发至实际消费队列,实现交易信息的延迟拼接。本发明实施例不依赖于插入数据库的操作,除去了多次轮询反复更新的操作,减少了数据库的整体的负荷,能够提高数据接收处理的速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例一种基于缓冲队列接收数据实现不同级别延迟拼接方法示意图。

图2为本发明实施例一种基于缓冲队列接收数据实现不同级别延迟拼接方法流程图。

图3为本发明实施例一种基于缓冲队列接收数据实现不同级别延迟拼接装置示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

如图1本发明实施例一种基于缓冲队列接收数据实现不同级别延迟拼接方法示意图所示,本发明实施例提供一种基于缓冲队列接收数据实现不同级别延迟拼接方法,利用缓冲队列和多级延迟队列实现交易信息与外围信息表的延迟拼接加工,该方法包括:

步骤101:监听mq消息队列,获取交易信息;

步骤102:将交易信息转发至缓冲队列;所述缓冲队列设有缓冲时长;

步骤103:在缓冲队列的缓冲时长到期后,将交易信息转发至实际消费队列;

步骤104:将实际消费队列中的交易信息取出,与外围信息表进行匹配判断;

步骤105:在交易信息与外围信息表匹配时,对交易信息进行拼接加工,确定完整交易信息;

步骤106:在交易信息与外围信息表不匹配时,将交易信息转发至多级延迟队列,在多级延迟队列的延迟时长到期后,将交易信息转发至实际消费队列。

本发明实施例提供的一种基于缓冲队列接收数据实现不同级别延迟拼接方法,首先通过监听mq消息队列,获取交易信息并转发至缓冲队列,能够缓解mq消息队列及数据库中的积压情况,然后在缓冲队列的缓冲时长到期后,将交易信息转发至实际消费队列,再将实际消费队列中的交易信息取出,与外围信息表进行匹配判断,在数据加工的过程中,能够匹配成功时,交易信息直接与外围信息表进行拼接加工,确定完整交易新,在匹配不成功时,将交易信息分发至不同延迟等级的多级延迟队列,在多级延迟队列的延迟时长到期后,将交易信息转发至实际消费队列,实现交易信息的延迟拼接。本发明实施例不依赖于插入数据库的操作,除去了多次轮询反复更新的操作,减少了数据库的整体的负荷,能够提高数据接收处理的速度。

在具体实施本发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接方法时,如图1本发明实施例一种基于缓冲队列接收数据实现不同级别延迟拼接方法示意图和图2本发明实施例一种基于缓冲队列接收数据实现不同级别延迟拼接方法流程图所示,上述方法可以包括:

监听mq消息队列,获取交易信息;将交易信息转发至缓冲队列;所述缓冲队列设有缓冲时长;在缓冲队列的缓冲时长到期后,将交易信息转发至实际消费队列;将实际消费队列中的交易信息取出,与外围信息表进行匹配判断;在交易信息与外围信息表匹配时,对交易信息进行拼接加工,确定完整交易信息;在交易信息与外围信息表不匹配时,将交易信息转发至多级延迟队列,在多级延迟队列的延迟时长到期后,将交易信息转发至实际消费队列。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接方法时,在一个实施例中,前述的监听mq消息队列,获取交易信息,可以包括:

启动java常驻守护进程,不间断监听mq消息队列,在交易信息到达mq消息队列时将交易信息从mq消息队列中取出。

实施例中,前述启动java常驻守护进程为长挂进程,进行不间断监听mq消息队列,在交易信息到达mq消息队列时将交易信息从mq消息队列中取出,解决了减少了mq消息队列积压的风险。实施例中,mq消息队列可以是ibmmq消息队列。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接方法时,在一个实施例中,前述的将交易信息转发至缓冲队列,可以包括:通过调用javaapi将交易信息转发至缓冲队列。

实施例中,缓冲队列设有缓冲时长,在具体实施时,缓冲时长可以根据实际需求进行设定,例如在一个实例中,缓冲队列的缓冲时长设置为3s,即交易信息在缓冲队列中的存活时间为3s,在3s结束后,交易信息将从缓冲队列中被被转发至实际消费队列;在实施例中,前述缓冲队列可以采用内部集群的rabbitmq消息集群的缓冲队列。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接方法时,在一个实施例中,前述的在缓冲队列的缓冲时长到期后,将交易信息转发至实际消费队列,可以包括:

在缓冲队列的缓冲时长到期后,由死信消息交换中间件(dead-letterexchange)将交易信息从缓冲队列中挪出,转发至实际消费队列。

在实施例中,例如采用上述的设置的缓冲时长为3s,交易信息在缓冲队列中达到3s后,信消息交换中间件将交易信息从缓冲队列中挪出,转发至实际消费队列。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接方法时,在一个实施例中,前述的外围信息表,包括附属信息;

前述的将实际消费队列中的交易信息取出,与附属信息进行匹配判断,包括:

利用长挂多线程服务将实际消费队列中的交易信息取出,在外围信息表中查找是否存在与交易信息属于同一笔交易的附属信息。

在实施例中,可以通过扫描的方式对外围信息表进行搜索,在外围信息表中查找是否存在与交易信息属于同一笔交易的附属信息,如果在外围信息表中存在与交易信息属于同一笔交易的附属信息,则进行拼接加工,如果在外围信息表中不存在与交易信息属于同一笔交易的附属信息,则可以将交易信息转发至多级延迟队列,等待外围信息表更新后进行延迟拼接。

实施例中,前述附属信息可以包括:交易对手信息、用途摘要附言备注等内容,用于对交易信息进行补全。前述的外围信息表是由其他系统实时报送,因此会存在一定延时。

在一个实施例中,在将实际消费队列中的交易信息取出后,还包括将交易信息分发至每个独立线程独立进行针对待处理的交易信息进行加工。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接方法时,在一个实施例中,前述的在交易信息与外围信息表匹配时,对交易信息进行拼接加工,确定完整交易信息,可以包括:

在交易信息与外围信息表中的附属信息属于同一笔交易时,根据业务主键将附属信息与交易信息进行拼接加工,确定完整交易信息。

在一个实施例中,在上述确定完整交易信息后,还包括将完整交易信息的状态改为已补全,并将完整交易信息存储至最终数据库,进行保存。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接方法时,在一个实施例中,前述的在交易信息与外围信息表不匹配时,将交易信息转发至多级延迟队列,在多级延迟队列的延迟时长到期后,将交易信息转发至实际消费队列,可以包括:

在交易信息与外围信息表中的附属信息不属于同一笔交易时,根据交易信息的交易及时性要求,将交易信息转发至多级延迟队列;

在多级延迟队列的延迟时长到期后,由死信消息交换中间件将交易信息回传至实际消费队列。

在实施例中,由于外围信息表中的附属信息由其他系统报送,存在一定延时,因此外围信息表是不断更新的,在更新的过程中,如果交易信息在外围信息表中没有扫描到与交易信息属于同一笔交易的附属信息,则需要将交易信息转发至多级延迟队列,在多级延迟队列中进行设定的延迟,以等待外围信息表的更新,在多级延迟队列的延迟时间到期后,再回传至实际消费队列,再次进行扫描和拼接加工;通过不断的循环上述过程,可以实现全部附属信息与交易信息的拼接加工。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接方法时,在一个实施例中,前述的多级延迟队列,可以包括:第一级延迟队列、第二级延迟队列和第三级延迟队列;

第一级延迟队列的延迟时长小于第二级延迟队列的延迟时长,第二级延迟队列的延迟时长小于第三级延迟队列的延迟时长;

前述的交易及时性要求,可以包括:高交易加工时效性、中交易加工时效性和低交易加工时效性;

前述的根据交易信息的交易及时性要求,将交易信息转发至多级延迟队列,可以包括:

在交易信息的交易及时性要求为高交易加工时效性时,将交易信息转发至第一级延迟队列;

在交易信息的交易及时性要求为中交易加工时效性时,将交易信息转发至第二级延迟队列;

在交易信息的交易及时性要求为低交易加工时效性时,将交易信息转发至第三级延迟队列。

在本发明实施例的一个实例中,第一级延迟队列的延迟时长可以设定为1s、第二级延迟队列的延迟时长可以设定为2s,第三级延迟队列的延迟时长可以设定为3s;在在交易信息的交易及时性要求为高交易加工时效性时,将交易信息转发至第一级延迟队列,交易信息延时1秒;在交易信息的交易及时性要求为中交易加工时效性时,将交易信息转发至第二级延迟队列,交易信息延时2秒;在交易信息的交易及时性要求为低交易加工时效性时,将交易信息转发至第三级延迟队列,交易信息延时3秒;

如果想不使用数据库方式进行延迟加工或反复查询补充信息,首先必须要使用缓冲队列,且如果要分级别控制延迟时间,可以通过不同缓冲队列的过期时间,进行分级别控制延迟程度。使用rabbitmq的缓冲队列,首先缓解ibmmq消息队列及数据库中的积压情况,随后在加工过程中,将未能实时拼接上的数据根据延迟时间的不同分发至不同延迟时间的延迟队列,由dlx(dead-letterexchange)将满足延迟时间的数据再转发至实际工作消费队列。本发明由于使用java常挂服务的程序,首先解决了减少了ibmmq消息队列积压的风险,不再过度依赖插入数据库的操作,其次去除了多次轮询反复更新的操作,进一步减少了数据库的整体的负荷。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于缓冲队列接收数据实现不同级别延迟拼接方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行实现上述基于缓冲队列接收数据实现不同级别延迟拼接方法的计算机程序。

本发明实施例中还提供了一种基于缓冲队列接收数据实现不同级别延迟拼接装置,如下面的实施例所述。由于该装置解决问题的原理与一种基于缓冲队列接收数据实现不同级别延迟拼接方法相似,因此该装置的实施可以参见一种基于缓冲队列接收数据实现不同级别延迟拼接方法的实施,重复之处不再赘述。

如图3本发明实施例本发明实施例一种基于缓冲队列接收数据实现不同级别延迟拼接装置示意图所示,本发明实施例还提供一种基于缓冲队列接收数据实现不同级别延迟拼接装置,可以包括:

交易信息获取模块301,用于监听mq消息队列,获取交易信息;

交易信息转发缓冲队列模块302,用于将交易信息转发至缓冲队列;所述缓冲队列设有缓冲时长;

交易信息转发实际消费队列模块303,用于在缓冲队列的缓冲时长到期后,将交易信息转发至实际消费队列;

匹配判断模块304,用于将实际消费队列中的交易信息取出,与外围信息表进行匹配判断;

完整交易信息确定模块305,用于在交易信息与外围信息表匹配时,对交易信息进行拼接加工,确定完整交易信息;

延迟转发模块306,用于在交易信息与外围信息表不匹配时,将交易信息转发至多级延迟队列,在多级延迟队列的延迟时长到期后,将交易信息转发至实际消费队列。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接装置时,在一个实施例中,前述交易信息获取模块,具体用于:

启动java常驻守护进程,不间断监听mq消息队列,在交易信息到达mq消息队列时将交易信息从mq消息队列中取出。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接装置时,在一个实施例中,前述交易信息转发缓冲队列模块,具体用于:通过调用javaapi将交易信息转发至缓冲队列。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接装置时,在一个实施例中,前述交易信息转发实际消费队列模块,具体用于:

在缓冲队列的缓冲时长到期后,由死信消息交换中间件将交易信息从缓冲队列中挪出,转发至实际消费队列。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接装置时,在一个实施例中,前述外围信息表,包括附属信息;

前述匹配判断模块,具体用于:

利用长挂多线程服务将实际消费队列中的交易信息取出,在外围信息表中查找是否存在与交易信息属于同一笔交易的附属信息。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接装置时,在一个实施例中,前述完整交易信息确定模块,具体用于:

在交易信息与外围信息表中的附属信息属于同一笔交易时,根据业务主键将附属信息与交易信息进行拼接加工,确定完整交易信息。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接装置时,在一个实施例中,前述延迟转发模块,具体用于:

在交易信息与外围信息表中的附属信息不属于同一笔交易时,根据交易信息的交易及时性要求,将交易信息转发至多级延迟队列;

在多级延迟队列的延迟时长到期后,由死信消息交换中间件将交易信息回传至实际消费队列。

在具体实施发明实施例的一种基于缓冲队列接收数据实现不同级别延迟拼接装置时,在一个实施例中,多级延迟队列,包括:第一级延迟队列、第二级延迟队列和第三级延迟队列;

第一级延迟队列的延迟时长小于第二级延迟队列的延迟时长,第二级延迟队列的延迟时长小于第三级延迟队列的延迟时长;

交易及时性要求,包括:高交易加工时效性、中交易加工时效性和低交易加工时效性;

前述延迟转发模块,还用于:

在交易信息的交易及时性要求为高交易加工时效性时,将交易信息转发至第一级延迟队列;

在交易信息的交易及时性要求为中交易加工时效性时,将交易信息转发至第二级延迟队列;

在交易信息的交易及时性要求为低交易加工时效性时,将交易信息转发至第三级延迟队列。

综上,本发明实施例提供的一种基于缓冲队列接收数据实现不同级别延迟拼接方法和装置,首先通过监听mq消息队列,获取交易信息并转发至缓冲队列,能够缓解mq消息队列及数据库中的积压情况,然后在缓冲队列的缓冲时长到期后,将交易信息转发至实际消费队列,再将实际消费队列中的交易信息取出,与外围信息表进行匹配判断,在数据加工的过程中,能够匹配成功时,交易信息直接与外围信息表进行拼接加工,确定完整交易新,在匹配不成功时,将交易信息分发至不同延迟等级的多级延迟队列,在多级延迟队列的延迟时长到期后,将交易信息转发至实际消费队列,实现交易信息的延迟拼接。本发明实施例不依赖于插入数据库的操作,除去了多次轮询反复更新的操作,减少了数据库的整体的负荷,能够提高数据接收处理的速度。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1