CN109783255B - 数据解析分发装置及高并发数据处理方法 - Google Patents

数据解析分发装置及高并发数据处理方法 Download PDF

Info

Publication number
CN109783255B
CN109783255B CN201910010874.8A CN201910010874A CN109783255B CN 109783255 B CN109783255 B CN 109783255B CN 201910010874 A CN201910010874 A CN 201910010874A CN 109783255 B CN109783255 B CN 109783255B
Authority
CN
China
Prior art keywords
data
cache queue
thread
processed
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910010874.8A
Other languages
English (en)
Other versions
CN109783255A (zh
Inventor
梁磊
陈琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201910010874.8A priority Critical patent/CN109783255B/zh
Publication of CN109783255A publication Critical patent/CN109783255A/zh
Application granted granted Critical
Publication of CN109783255B publication Critical patent/CN109783255B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书实施例公开了一种数据解析分发装置及高并发数据处理方法,所述装置包括一个或者多个父线程、缓存队列管理器、缓存队列以及各缓存队列对应的子线程,所述缓存队列的数目与所述数据解析分发装置对应的下游系统应用数目相同,且各缓存队列与所述下游系统应用一一对应。所述父线程用于并列从上游服务器捞取待处理交易数据,并放入所述缓存队列中。所述子线程用于从对应的缓存队列中捞取待处理交易数据,并逻辑加工处理成相应下游系统应用接口格式的数据,以及将逻辑加工处理后的数据发送给相应的下游系统应用。利用本说明书各个实施例,可以稳定高效的实现异构系统间的高并发数据传输。

Description

数据解析分发装置及高并发数据处理方法
技术领域
本说明书实施例涉及计算机数据处理技术领域,特别地,涉及一种数据解析分发装置及高并发数据处理方法。
背景技术
随着银行IT系统功能的不断扩展,各种异构系统不断涌现,各系统之间的交互也越来越多,交易数据量翻倍增长,对交易数据处理实时性的要求也越来越高。提升硬件性能能够缓解这个需求,但是考虑到各项成本,不可能无限度的提高硬件配置。
目前,基于MQ中间件的消息解析处理应用基本都是集中式的部署在小型机上,很难同时具备可分布式部署,易扩展、高性能、可动态配置,不能够有效的支持传统应用系统与大数据系统等异构系统间的高效通信。随着业务和数据的急剧增长,特别是大数据技术的兴起,急切需要一种新高并发处理机制,以稳定高效的实现高并发消息的解析处理。
发明内容
本说明书实施例的目的是提供一种数据解析分发装置及高并发数据处理方法,可以稳定高效的实现异构系统间的高并发数据传输。
本说明书提供一种数据解析分发装置及高并发数据处理方法是包括如下方式实现的:
一种数据解析分发装置,所述装置包括一个或者多个父线程、缓存队列管理器、缓存队列以及各缓存队列对应的子线程,其中,
所述父线程用于并列从上游服务器捞取待处理交易数据;
所述缓存队列管理器与所述父线程一一对应,用于设置各缓存队列对应的子线程数目,以及将父线程捞取的待处理交易数据放入所述缓存队列中;
所述缓存队列的数目与所述数据解析分发装置对应的下游系统应用数目相同,且各缓存队列与所述下游系统应用一一对应;
所述子线程用于从对应的缓存队列中捞取待处理交易数据,并逻辑加工处理成相应下游系统应用接口格式的数据,以及将逻辑加工处理后的数据发送给相应的下游系统应用。
本说明书提供的所述装置的另一个实施例中,所述父线程以及子线程的数目根据数据解析分发处理装置布设的服务器的硬件配置及资源使用情况进行动态调整。
本说明书提供的所述装置的另一个实施例中,所述缓存队列及子线程中的数据根据预设资源动态释放机制进行清空处理,所述预设资源动态释放机制包括根据服务器内存使用情况及数据发送次数进行数据清空处理。
本说明书提供的所述装置的另一个实施例中,所述缓存队列管理器用于将父线程捞取的待处理交易数据根据预设策略放入所述缓存队列中,所述预设策略包括根据上游服务器参数及缓存队列存储空间动态调整放入缓存队列中的数据量。
另一方面,本说明书还提供一种基于上述任意一个实施例所述的数据解析分发装置的高并发数据处理方法,包括:
利用所述父线程并列从上游服务器捞取待处理交易数据,并通过所述缓存队列管理器将所述待处理交易数据放入缓存队列;
所述缓存队列的子线程从所述缓存队列中读取待处理交易数据,并将待处理交易数据进行逻辑加工处理,获得所述缓存队列对应的下游系统应用接口格式的数据;
所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用。
本说明书提供的所述方法的另一个实施例中,所述方法还包括:
根据预设资源动态释放机制对所述缓存队列或子线程的缓存对象中的数据进行清空处理,所述预设资源动态释放机制包括根据服务器内存使用情况及数据发送次数进行数据清空处理。
本说明书提供的所述方法的另一个实施例中,所述方法还包括:
根据服务器的硬件配置以及资源使用情况动态调整所述父线程或者子线程的个数。
本说明书提供的所述方法的另一个实施例中,所述将所述待处理交易数据放入缓存队列,包括:
所述缓存队列管理器将所述待处理交易数据根据预设策略放入所述缓存队列中,所述预设策略包括根据上游服务器参数及缓存队列存储空间动态调整放入缓存队列中的数据量。
另一方面,本说明书还提供一种高并发数据处理装置,所述装置包括:
数据捞取模块,用于利用父线程并列从上游服务器捞取待处理交易数据,并通过父线程对应的缓存队列管理器将所述待处理交易数据放入缓存队列,所述缓存队列与下游系统应用一一对应;
数据解析模块,用于所述缓存队列的子线程从所述缓存队列中读取待处理交易数据,并将待处理交易数据进行逻辑加工处理,获得所述缓存队列对应的下游系统应用接口格式的数据;
数据发送模块,用于所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用。
本说明书提供的所述高并发数据处理装置的另一个实施例中,所述装置还包括:
数据清空模块,用于根据预设资源动态释放机制对所述缓存队列或子线程的缓存对象中的数据进行清空处理,所述预设资源动态释放机制包括根据服务器内存使用情况及数据发送次数进行数据清空处理。
本说明书提供的所述高并发数据处理装置的另一个实施例中,所述装置还包括:
参数动态调整模块,用于根据服务器的硬件配置以及资源使用情况动态调整所述父线程或者子线程的个数。
另一方面,本说明书还提供一种服务器,所述服务器包括布设在所述服务器上的一个或者多个如上述任意一个实施例所述的数据解析分发装置,其中,
所述数据解析分发装置的父线程从上游服务器捞取待处理交易数据,并通过所述父线程对应的缓存队列管理器将所述待处理交易数据放入缓存队列;
所述缓存队列的子线程从所述缓存队列中读取待处理交易数据,并将待处理交易数据加工处理,获得所述缓存队列对应的下游系统接口格式的数据;
所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用。
另一方面,本说明书还提供一种高并发数据处理系统,所述系统包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个实施例所述方法的步骤。
本说明书一个或多个实施例提供的数据解析分发装置及高并发数据处理方法,可以通过父线程并发从上游服务器捞取数据,然后将捞取的数据放入缓存队列中。缓存队列与下游系统应用一一对应,且同一个缓存队列对应的子线程组中的业务逻辑相同,不同缓存队列对应的子线程组间相互独立解耦。子线程可以生成相应下游系统应用接口格式的数据,以根据接口格式将处理后的数据发送给相应的下游系统应用。从而稳定高效的实现异构系统间的高并发数据传输。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书提供的一种数据解析分发装置实施例的结构示意图;
图2为本说明书提供的一种高并发数据处理方法实施例的流程示意图;
图3为本说明书提供的一种高并发数据处理装置实施例的模块结构示意图;
图4为本说明书提供的一种高并发数据处理系统实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。
随着银行IT系统功能的不断扩展,各种异构系统不断涌现,各系统之间的交互也越来越多,交易数据量翻倍增长,对交易数据处理实时性的要求也越来越高。提升硬件性能能够缓解这个需求,但是考虑到各项成本,不可能无限度的提高硬件配置。目前,基于MQ中间件的消息解析处理应用基本都是集中式的部署在小型机上,很难同时具备可分布式部署,易扩展、高性能、可动态配置,不能够有效的支持传统应用系统与大数据系统等异构系统间的高效通信。
相应的,本说明书实施例提供了一种数据解析分发装置,所述数据解析分发装置可以对应一个或者多个不同的下游系统应用系统。所述数据解析分发装置可以接收上游系统下发的数据,并解析及加工处理后,将加工处理后的数据分发给对应的一个或者多个下游系统应用,以高效稳定的实现传统应用系统与大数据系统等异构系统间的通信。
本说明书的一个或者多个实施例中,所述装置可以包括一个或者多个父线程、缓存队列管理器、缓存队列以及子线程。
所述父线程可以用于并列从上游服务器捞取待处理交易数据。
所述缓存队列管理器对应于所述父线程,一个父线程包含一个缓存队列管理器。所述缓存队列管理器可以用于设置父线程启动的子线程数目,一个父线程可以启动一个或者多个子线程。所述缓存队列管理器还可以将父线程捞取的待处理交易数据按照预设策略放入所述缓存队列中。
所述缓存队列的数目与所述数据解析分发装置对应的下游系统应用数目相同,且各缓存队列与所述下游系统应用一一对应。
每个缓存队列对应一组子线程,各缓存队列对应的一组子线程只能从相应的缓存队列中读取数据并进行加工处理,然后,将加工处理的数据发送给相应的下游系统应用。即一个下游系统应用所需的数据可以由多个子线程(task)处理,但一个子线程仅处理一个下游系统应用所需的数据。
具体实施时,所述缓存队列对应的一组子线程从对应的缓存队列中捞取待处理交易数据,并逻辑加工处理成相应下游系统应用接口格式的数据,然后,可以将逻辑加工处理后的数据根据数据的接口格式发送给相应的下游系统应用。
图1表示本说明书一个或者多个实施例中的数据解析分发装置的结构示意图。如图1所示,所述数据解析分发装置可以包括父线程(drive)、缓存队列管理器、缓存队列以及子线程(task)。
所述父线程的数目可以为一个或者多个,可以用于并行从上游服务器获取待处理数据,以实现多线程并行数据处理。每个父线程对应一个缓存队列管理器,单个父线程可以通过其对应的缓存队列管理器启动若干个子线程。
缓存队列的数目与相应的数据解析分发装置对应的下游系统应用数目相同,且缓存队列与下游系统应用为一一对应关系。如图1所示,每个缓存队列对应一组子线程以及一个下游系统应用。一个下游系统应用所需的数据可以由多个子线程(task)处理,但一个子线程仅处理一个下游系统应用所需的数据。
父线程可以基于硬件配置通过缓存队列管理器启动预设数量的子线程,具体实施时,也可以根据实际资源使用情况以及业务量动态调整启动的子线程数,以在保证服务器正常运行的基础上,尽可能提高数据处理效率。
每个子线程设置有自己的缓存对象,子线程每次从缓存队列中取出消息后,可以放入自己的缓存对象中进行数据解析及业务逻辑加工处理,如进行报文解析,并将数据加工处理成对应的下游系统应用数据接口格式的数据,进而根据接口格式发送给对应的下游系统应用。如处理失败,可以重试多次,多次失败后数据可以写入磁盘的日志文件。如果从缓存队列中获取不到数据,则会等待。
图1内方框中给出了数据解析分发装置一个父线程的数据解析分发流程示意图。结合图1进一步说明利用本说明书实施例的数据解析分发装置的数据处理流程,如下:
如图1所示,消息解析分发装置的主程序启动后,会预先启动若干个drive线程,drive线程启动后,会获取上游MQ服务器相关参数,并初始化缓存队列管理器、缓存队列以及启动子线程。
假设该消息解析分发装置对应的下游系统应用为系统应用A及系统应用B,则相应的,可以初始化两个缓存队列:缓存队列A以及缓存队列B,分别对应于系统应用A、系统应用B。每个缓存队列对应一组子线程,子线程可以由父线程的缓存队列管理器按照预设数量启动。如图1所示,缓存队列A对应taska1-taskan共n个子线程,缓存队列B对应taskb1-taskbn共n个子线程。
然后,可以连接MQ服务器,父线程获取MQ服务器中的待处理交易数据,并将数据交给相应的缓存队列管理器,缓存队列管理器可以根据预设策略将数据放入缓存队列A、B中。缓存队列对应的子线程可以从相应的缓存队列中获取数据,并进行解析及逻辑加工处理,生成预设接口格式的数据,数据的预设接口格式根据缓存队列对应的下游系统应用确定。
如,对于缓存队列A,其对应的子线程可以对缓存队列A中的数据进行竞争读取,子线程如果发现缓存队列中没有数据则进行等待;若有数据,会将数据从缓存队列A中取出,放入自己的缓存对象中。在缓存对象中进行数据解析,并加工处理成系统应用A接口格式的数据。然后,子线程再根据数据接口格式,将处理后的数据发送给相应的系统应用A。
对于缓存队列B及对应的子线程也按照上述方式进行数据处理,进而将处理后的数据根据接口格式发送给系统应用B。从而实现同一个缓存队列对应的子线程组中的业务逻辑相同,不同缓存队列对应的子线程组间相互独立解耦。经过上述数据解析分发装置进行数据分发处理后,每个下游系统应用对应一份专属自己的数据,且数据处理间互不影响,实现面向下游异构系统的高效稳定消息解析分发处理。
本说明书另一个实施例中,所述父线程以及子线程的数目可以根据数据解析分发装置布设的服务器的硬件配置及资源使用情况进行动态调整。
可以预先根据数据解析对应的下游系统的个数、待处理的数据量、硬件资源预先设定父线程的个数、缓存队列的个数及存储空间、以及子线程的个数。其中,缓存队列的个数可以根据下游系统应用的个数确定。父线程以及子线程的数目可以根据数据解析分发装置布设的服务器的硬件配置及资源使用情况进行动态调整。
例如,一个消息解析分发装置,每秒处理3000笔的交易量,2c、8G的X86虚拟资源,可以根据压测结果,预先设置5个drive(父线程),一个父线程对应启动10个子线程。
在实际数据处理过程中,如果发现CPU和内存的使用超过设置的临界上限值,可以动态降低父线程的个数。如可以每个半小时获取CPU和内存使用情况,如果超过临界上限值(如90%)就把父线程数减一个,最小减到1个父线程。如果小于临界下限值(如30%),就把父线程数加一个,最大加到5个。父线程增减的过程中,父线程对应的缓存队列管理器及启动的子线程也会对应增减。
利用本说明书上述实施例的装置,可以在实际数据处理过程中,根据硬件资源配置及资源使用情况,动态自动调整相关应用参数,如启动多少父线程,启动多少子线程等。
本说明书另一个实施例中,所述缓存队列及子线程中的数据可以根据预设资源动态释放机制进行清空处理,所述预设资源动态释放机制包括根据服务器内存使用情况及数据发送次数进行数据清空处理。
子线程将解析处理后的数据发送给下游系统应用后,可以按照一定的规则自动清空缓存队列或缓存对象中的数据,以释放资源。一些实施方式中,可以根据硬件资源的使用情况,并配置清空的频率,如每发送多少次数据后,就把缓存队列或缓存对象中的数据清空一次。还可以兼顾服务器内存使用情况,若服务器内存使用达到80%的临界点,也进行数据清空处理,以达到硬件资源和处理效率的最优匹配。
本说明书另一个实施例中,所述缓存队列管理器用于将父线程捞取的待处理交易数据根据预设策略放入所述缓存队列中,所述预设策略包括根据上游服务器参数及缓存队列存储空间动态调整放入缓存队列中的数据量。
父线程从上游服务器捞取数据,并通过缓存队列管理器将捞取的数据放入缓存队列中,缓存队列管理器可以根据缓存队列的内存使用情况动态调整父线程捞取的数据量,以保证放入缓存队列中的数据太多,造成数据堵塞。缓存队列管理器还可以根据上游服务器的参数动态调整父线程捞取数据的频率,防止数据捞取的过于频繁,影响上游服务器正常运行。
本说明书一个或多个实施例提供的一种数据解析分发装置,可以通过父线程并发从上游服务器捞取数据,然后将捞取的数据放入缓存队列中。缓存队列与下游系统应用一一对应,且同一个缓存队列对应的子线程组中的业务逻辑相同,不同缓存队列对应的子线程组间相互独立解耦。子线程可以生成相应下游系统应用接口格式的数据,以根据接口格式将处理后的数据发送给相应的下游系统应用。从而稳定高效的实现异构系统间的高并发数据传输。同时,所述解析分发装置的各应用参数还可以根据硬件资源以及实际数据处理中资源的使用情况进行动态调整,进而可以在保证数据处理效率的基础上,保证应用的正常运行。
基于上述一个或者多个实施例提供的数据解析分发装置,本说明书还提供一种高并发数据处理方法,图2是本说明书提供的所述一种高并发数据处理方法实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
具体的一个实施例如图2所示,本说明书提供的高并发数据处理方法的一个实施例中,所述方法可以包括:
S2:利用所述父线程并列从上游服务器捞取待处理交易数据,并通过所述缓存队列管理器将所述待处理交易数据放入缓存队列;
S4:所述缓存队列的子线程从所述缓存队列中读取待处理交易数据,并将待处理交易数据进行逻辑加工处理,获得所述缓存队列对应的下游系统应用接口格式的数据;
S6:所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用。
所述数据解析分发装置的父线程可以从上游服务器并发捞取待处理交易数据,各父线程捞取的数据通过相应父线程的缓存队列管理器放入缓存队列中。所述缓存队列管理器可以预设设置向缓存队列中放入数据的策略,具体实施时,可以根据预设策略将父线程捞取的数据放入各缓存队列中。
缓存队列的数目与数据解析分发装置对应的下游系统数目相同,且一一对应。每个缓存队列对应一组子线程,缓存队列对应的子线程可以从相应的缓存队列中获取数据,进行解析及逻辑加工处理,并生成预设接口格式的数据,数据的预设接口格式根据缓存队列对应的下游系统应用确定。
所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用,从而将上游服务器的数据分发到各下游异构系统中。
同一个缓存队列对应的子线程组中的业务逻辑相同,不同缓存队列对应的子线程组间相互独立解耦,且每个下游系统应用对应一份专属自己的数据,从而高效稳定的实现传统应用系统向大数据等异构系统的消息解析分发处理。
本说明书的一个实施例中,可以根据数据解析分发装置布设的服务器的硬件配置及资源使用情况动态调整所述父线程以及子线程的数目。在实际高并发数据处理过程中,可以根据硬件资源配置,设置对应的进程数以及线程数等应用参数,如服务器配置高,则可以多开发应用装置的线程数。进一步,再结合数据处理过程中的资源使用情况,动态自动调整相关应用参数,如增加或者减少线程数等。从而进一步实现资源的合理利用以及数据的稳定并发处理。
本说明书另一个实施例中,可以根据预设资源动态释放机制对所述缓存队列及子线程中的数据进行清空处理,所述预设资源动态释放机制可以包括根据服务器内存使用情况及数据发送次数进行数据清空处理。
子线程将解析处理后的数据发送给下游系统应用后,可以按照一定的规则自动清空缓存队列或缓存对象中的数据,以释放资源,以达到硬件资源和处理效率的最优匹配。具体的实施方式可以参考上述实施例实施,这里不做赘述。
本说明书另一个实施例中,所述将所述待处理交易数据放入缓存队列,可以包括:
所述缓存队列管理器将所述待处理交易数据根据预设策略放入所述缓存队列中,所述预设策略包括根据上游服务器参数及缓存队列存储空间动态调整放入缓存队列中的数据量。
父线程从上游服务器捞取数据,并通过缓存队列管理器将捞取的数据放入缓存队列中,缓存队列管理器可以根据缓存队列的内存使用情况动态调整父线程捞取的数据量,以保证放入缓存队列中的数据太多,造成数据堵塞。缓存队列管理器还可以根据上游服务器的参数动态调整父线程捞取数据的频率,防止数据捞取的过于频繁,影响上游服务器正常运行。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书一个或多个实施例提供的一种高并发数据处理方法,可以通过数据解析分发装置的父线程并发从上游服务器捞取数据,然后将捞取的数据放入缓存队列中。缓存队列与下游系统应用一一对应,且同一个缓存队列对应的子线程组中的业务逻辑相同,不同缓存队列对应的子线程组间相互独立解耦。子线程可以生成相应下游系统应用接口格式的数据,以根据接口格式将处理后的数据发送给相应的下游系统应用。从而稳定高效的实现异构系统间的高并发数据传输。
基于上述所述的高并发数据处理方法,本说明书一个或多个实施例还提供一种高并发数据处理装置。所述的装置可以包括使用了本说明书实施例所述方法的系统、软件(应用)、模块、组件、服务器等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。具体的,图3表示说明书提供的一种高并发数据处理装置实施例的模块结构示意图,如图3所示,所述装置可以包括:
数据捞取模块102,可以用于利用父线程并列从上游服务器捞取待处理交易数据,并通过父线程对应的缓存队列管理器将所述待处理交易数据放入缓存队列,所述缓存队列与下游系统应用一一对应;
数据解析模块104,可以用于所述缓存队列的子线程从所述缓存队列中读取待处理交易数据,并将待处理交易数据进行逻辑加工处理,获得所述缓存队列对应的下游系统应用接口格式的数据;
数据发送模块106,可以用于所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用。
利用上述实施例中的方案,可以高效稳定的实现传统应用系统向大数据等异构系统的消息解析分发处理。
本说明书的另一个实施例中,所述装置还可以包括数据清空模块,其中,
所述数据清空模块可以用于根据预设资源动态释放机制对所述缓存队列或子线程的缓存对象中的数据进行清空处理,所述预设资源动态释放机制可以包括根据服务器内存使用情况及数据发送次数进行数据清空处理。
利用上述实施例中的方案,可以在兼顾硬件资源和处理效率的基础上释放资源。
本说明书的一个或者多个实施例中,所述装置还包括参数动态调整模块,其中,
所述参数动态调整模块可以用于根据服务器的硬件配置以及资源使用情况动态调整所述父线程或者子线程的个数。
利用上述实施例提供的方案,可以根据服务器的硬件配置以及资源使用情况自动动态调整应用参数,以避免资源耗尽而致使程序崩溃。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书一个或多个实施例提供的高并发数据处理装置,可以通过父线程并发从上游服务器捞取数据,然后将捞取的数据放入缓存队列中。缓存队列与下游系统应用一一对应,且同一个缓存队列对应的子线程组中的业务逻辑相同,不同缓存队列对应的子线程组间相互独立解耦。子线程可以生成相应下游系统应用接口格式的数据,以根据接口格式将处理后的数据发送给相应的下游系统应用。从而稳定高效的实现异构系统间的高并发数据传输。
本说明书还提供一种服务器,所述服务器可以包括布设在所述服务器上的一个或者多个如上述实施例所述的数据解析分发装置。根据服务器的硬件配置的高低,每台服务器上可以部署不同数目的数据解析分发装置。可以预先为每个数据解析分发装置设定待解析的下游系统应用系统,进一步结合服务器的硬件配置及布设的数据解析分发装置个数,初始化每个数据解析分发装置的应用参数。
然后,可以根据所述数据解析分发装置进行数据的高并发解析分发处理:
所述数据解析分发装置的父线程可以从上游服务器捞取待处理交易数据,并通过所述父线程对应的缓存队列管理器将所述待处理交易数据放入缓存队列;
所述缓存队列的子线程从所述缓存队列中读取待处理交易数据,并将待处理交易数据加工处理,获得所述缓存队列对应的下游系统接口格式的数据;
所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用。
具体实施方式可以参考上述实施例实施,这里不做赘述。在数据解析分发处理的过程中,还可以根据资源使用情况,动态调整数据解析分发装置的应用参数,如父线程的个数以及子线程的个数,在保证数据处理效率的基础上,避免资源耗尽而使程序崩溃。
本说明书一个或多个实施例提供的服务器,所述服务器可以包括一个或者多个数据解析分发装置,所述数据解析分发装置的父线程可以并发从上游服务器捞取数据,然后将捞取的数据放入缓存队列中。缓存队列与下游系统应用一一对应,且同一个缓存队列对应的子线程组中的业务逻辑相同,不同缓存队列对应的子线程组间相互独立解耦。子线程可以生成相应下游系统应用接口格式的数据,以根据接口格式将处理后的数据发送给相应的下游系统应用。从而稳定高效的实现异构系统间的高并发数据传输。
本说明书还提供一种高并发数据处理系统,所述系统可以为单独的高并发数据处理系统,也可以应用在业务处理分布式系统中。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。所述高并发数据处理系统可以包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤。
如图4所示,所述系统可以包括上游系统,MQ中间件,一个或者多个用于布设数据解析分发装置的服务器,以及下游系统应用。每个服务器可以根据实际需要布设一个或者多个数据解析分发装置,所述数据解析分发装置可以预设设定需要数据解析分发处理的下游系统应用。
然后,根据需要数据解析分发处理的下游系统应用以及服务器硬件配置初始化父线程、缓存队列以及子线程。数据解析分发装置可以通过MQ中间件接收上游系统发送的数据,并发送给缓存队列,缓存队列的子线程再进行数据解析处理,并生成相应下游系统应用接口格式的数据,以根据接口格式将解析后的数据发送给相应的下游系统应用。相应的实施方式可以参考上述实施例实施,这里不做赘述。
实际数据处理过程中,还可以根据内存使用情况,动态调整父线程以及子线程的个数,在有效提高数据处理效率的基础上,进一步避免资源耗尽而使程序崩溃。
利用本说明书上述各个实施例的方案,可以实现数据的接收以及解析发送并行、异步、解耦,且可以同时处理不同下游系统应用的数据,并有效传输给对应的下游系统应用,高效稳定的实现异构系统间的并发数据处理。
需要说明的,上述所述的系统根据方法或者装置实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
上述实施例所述的一种高并发数据处理系统,可以通过父线程并发从上游服务器捞取数据,然后将捞取的数据放入缓存队列中。缓存队列与下游系统应用一一对应,且同一个缓存队列对应的子线程组中的业务逻辑相同,不同缓存队列对应的子线程组间相互独立解耦。子线程可以生成相应下游系统应用接口格式的数据,以根据接口格式将处理后的数据发送给相应的下游系统应用。从而稳定高效的实现异构系统间的高并发数据传输。
需要说明的是,本说明书上述所述的装置或者系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类、存储介质+程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
尽管本说明书实施例内容中提到数据捞取、数据解析处理之类的获取、定义、交互、计算、判断等操作和数据描述,但是,本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (13)

1.一种数据解析分发装置,其特征在于,所述装置包括一个或者多个父线程、缓存队列管理器、缓存队列以及各缓存队列对应的子线程,其中,
所述父线程用于并列从上游服务器捞取待处理交易数据;
所述缓存队列管理器与所述父线程一一对应,用于设置各缓存队列对应的子线程数目,以及将父线程捞取的待处理交易数据放入所述缓存队列中;
所述缓存队列的数目与所述数据解析分发装置对应的下游系统应用数目相同,且各缓存队列与所述下游系统应用一一对应;
所述子线程用于从对应的缓存队列中捞取待处理交易数据,并逻辑加工处理成相应下游系统应用接口格式的数据,以及将逻辑加工处理后的数据发送给相应的下游系统应用。
2.根据权利要求1所述的数据解析分发装置,其特征在于,所述父线程以及子线程的数目根据数据解析分发处理装置布设的服务器的硬件配置及资源使用情况进行动态调整。
3.根据权利要求1所述的数据解析分发装置,其特征在于,所述缓存队列及子线程中的数据根据预设资源动态释放机制进行清空处理,所述预设资源动态释放机制包括根据服务器内存使用情况及数据发送次数进行数据清空处理。
4.根据权利要求1所述的数据解析分发装置,其特征在于,所述缓存队列管理器用于将父线程捞取的待处理交易数据根据预设策略放入所述缓存队列中,所述预设策略包括根据上游服务器参数及缓存队列存储空间动态调整放入缓存队列中的数据量。
5.一种基于权利要求1-4任一项所述的数据解析分发装置的高并发数据处理方法,其特征在于,包括:
利用所述父线程并列从上游服务器捞取待处理交易数据,并通过所述缓存队列管理器将所述待处理交易数据放入缓存队列;
所述缓存队列的子线程从所述缓存队列中读取待处理交易数据,并将待处理交易数据进行逻辑加工处理,获得所述缓存队列对应的下游系统应用接口格式的数据;
所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据预设资源动态释放机制对所述缓存队列或子线程的缓存对象中的数据进行清空处理,所述预设资源动态释放机制包括根据服务器内存使用情况及数据发送次数进行数据清空处理。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据服务器的硬件配置以及资源使用情况动态调整所述父线程或者子线程的个数。
8.根据权利要求5所述的方法,其特征在于,所述将所述待处理交易数据放入缓存队列,包括:
所述缓存队列管理器将所述待处理交易数据根据预设策略放入所述缓存队列中,所述预设策略包括根据上游服务器参数及缓存队列存储空间动态调整放入缓存队列中的数据量。
9.一种高并发数据处理装置,其特征在于,所述装置包括:
数据捞取模块,用于利用父线程并列从上游服务器捞取待处理交易数据,并通过父线程对应的缓存队列管理器将所述待处理交易数据放入缓存队列,所述缓存队列与下游系统应用一一对应;
数据解析模块,用于所述缓存队列的子线程从所述缓存队列中读取待处理交易数据,并将待处理交易数据进行逻辑加工处理,获得所述缓存队列对应的下游系统应用接口格式的数据;
数据发送模块,用于所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用。
10.根据权利要求9所述的高并发数据处理装置,其特征在于,所述装置还包括:
数据清空模块,用于根据预设资源动态释放机制对所述缓存队列或子线程的缓存对象中的数据进行清空处理,所述预设资源动态释放机制包括根据服务器内存使用情况及数据发送次数进行数据清空处理。
11.根据权利要求9所述的高并发数据处理装置,其特征在于,所述装置还包括:
参数动态调整模块,用于根据服务器的硬件配置以及资源使用情况动态调整所述父线程或者子线程的个数。
12.一种服务器,其特征在于,所述服务器包括布设在所述服务器上的一个或者多个如权利要求1-4所述的数据解析分发装置,其中,
所述数据解析分发装置的父线程从上游服务器捞取待处理交易数据,并通过所述父线程对应的缓存队列管理器将所述待处理交易数据放入缓存队列;
所述缓存队列的子线程从所述缓存队列中读取待处理交易数据,并将待处理交易数据加工处理,获得所述缓存队列对应的下游系统接口格式的数据;
所述缓存队列的子线程将逻辑加工处理后的数据根据数据的接口格式发送给对应的下游系统应用。
13.一种高并发数据处理系统,其特征在于,所述系统包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现权利要求5-8中任意一项所述方法的步骤。
CN201910010874.8A 2019-01-07 2019-01-07 数据解析分发装置及高并发数据处理方法 Active CN109783255B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910010874.8A CN109783255B (zh) 2019-01-07 2019-01-07 数据解析分发装置及高并发数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910010874.8A CN109783255B (zh) 2019-01-07 2019-01-07 数据解析分发装置及高并发数据处理方法

Publications (2)

Publication Number Publication Date
CN109783255A CN109783255A (zh) 2019-05-21
CN109783255B true CN109783255B (zh) 2021-02-23

Family

ID=66499893

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910010874.8A Active CN109783255B (zh) 2019-01-07 2019-01-07 数据解析分发装置及高并发数据处理方法

Country Status (1)

Country Link
CN (1) CN109783255B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110278159A (zh) * 2019-05-22 2019-09-24 口碑(上海)信息技术有限公司 数据分流的控制方法及装置、存储介质、电子装置
CN111752728B (zh) * 2020-06-30 2022-09-06 中国科学技术大学 消息传输方法及装置
CN113760570A (zh) * 2021-01-07 2021-12-07 北京沃东天骏信息技术有限公司 数据处理方法、装置、电子设备、系统和存储介质
CN114301857A (zh) * 2021-12-24 2022-04-08 三川智慧科技股份有限公司 一种基于物联网的水表通讯方法及装置
CN114741206B (zh) * 2022-06-09 2022-09-06 深圳华锐分布式技术股份有限公司 客户端数据回放处理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218254A (zh) * 2013-04-15 2013-07-24 广州新科佳都科技有限公司 一种多队列的自动售检票数据处理方法
US9038093B1 (en) * 2013-03-11 2015-05-19 Sprint Communications Company L.P. Retrieving service request messages from a message queue maintained by a messaging middleware tool based on the origination time of the service request message
CN107147635A (zh) * 2017-04-28 2017-09-08 上海斐讯数据通信技术有限公司 基于多线程的成倍提高海量上行文件数据的协议解析处理方法和系统
CN107169069A (zh) * 2017-05-08 2017-09-15 山大地纬软件股份有限公司 分布式分级抽取多应用方法和数据抽取应用器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9038093B1 (en) * 2013-03-11 2015-05-19 Sprint Communications Company L.P. Retrieving service request messages from a message queue maintained by a messaging middleware tool based on the origination time of the service request message
CN103218254A (zh) * 2013-04-15 2013-07-24 广州新科佳都科技有限公司 一种多队列的自动售检票数据处理方法
CN107147635A (zh) * 2017-04-28 2017-09-08 上海斐讯数据通信技术有限公司 基于多线程的成倍提高海量上行文件数据的协议解析处理方法和系统
CN107169069A (zh) * 2017-05-08 2017-09-15 山大地纬软件股份有限公司 分布式分级抽取多应用方法和数据抽取应用器

Also Published As

Publication number Publication date
CN109783255A (zh) 2019-05-21

Similar Documents

Publication Publication Date Title
CN109783255B (zh) 数据解析分发装置及高并发数据处理方法
CN106802826B (zh) 一种基于线程池的业务处理方法及装置
Leclercq et al. DREAM: a component framework for the construction of resource-aware, reconfigurable MOMs
CN107729139B (zh) 一种并发获取资源的方法和装置
CN108595282A (zh) 一种高并发消息队列的实现方法
US20140181310A1 (en) Centralized application resource manager
CN109614227B (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
CN109117252B (zh) 基于容器的任务处理的方法、系统及容器集群管理系统
US10810220B2 (en) Platform and software framework for data intensive applications in the cloud
CN105786603B (zh) 一种基于分布式的高并发业务处理系统及方法
US11831410B2 (en) Intelligent serverless function scaling
CN112486642B (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN107066339A (zh) 分布式作业管理器及分布式作业管理方法
EP4361808A1 (en) Resource scheduling method and device and computing node
CN114579285A (zh) 一种任务运行系统、方法及计算设备
CN111522651A (zh) 为分布式处理系统管理元数据
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
CN110955461B (zh) 计算任务的处理方法、装置、系统、服务器和存储介质
US11132223B2 (en) Usecase specification and runtime execution to serve on-demand queries and dynamically scale resources
CN110807058B (zh) 一种导出数据的方法和系统
CN110928746A (zh) 可调配的业务处理系统、方法、装置及可存储介质
CN116257333A (zh) 分布式任务调度方法、装置和分布式任务调度系统
CN115712572A (zh) 任务的测试方法、装置、存储介质及电子装置
TW200813819A (en) Computer micro-jobs
CN111090627A (zh) 基于池化的日志存储方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant