CN113992684B - 发送数据的方法、装置、处理节点、存储介质及系统 - Google Patents
发送数据的方法、装置、处理节点、存储介质及系统 Download PDFInfo
- Publication number
- CN113992684B CN113992684B CN202111250353.3A CN202111250353A CN113992684B CN 113992684 B CN113992684 B CN 113992684B CN 202111250353 A CN202111250353 A CN 202111250353A CN 113992684 B CN113992684 B CN 113992684B
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- batch
- resource
- batch data
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 198
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000011218 segmentation Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种发送数据的方法、装置、处理节点、存储介质及系统,方法包括:将用于处理批量数据的线程的个数作为第一可用资源数;获取与所述第一可用资源数相同数量的批量数据;根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块;将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块。本申请实施例通过在业务请求端和业务处理端之间设置处理节点,该处理节点接收业务请求端产生的批量数据,并对批量数据进行切分,将分切后的数据块发送给业务处理端处理,大大降低了业务处理端的压力。
Description
技术领域
本申请涉及分布式系统技术领域,具体而言,涉及一种发送数据的方法、装置、处理节点、存储介质及系统。
背景技术
目前,批量处理数据的方式为业务请求端直接与业务处理端通信连接,当业务请求端产生批量数据需要业务处理端处理时,会将批量数据发送给业务处理端。
随着业务的增长,批量数据的数据量较大,会导致业务处理端业务堵塞,负荷压力大。
发明内容
本申请实施例的目的在于提供一种发送数据的方法、装置、处理节点、存储介质及系统,用以缓解业务处理端压力。
第一方面,本申请实施例提供一种发送数据的方法,包括:将用于处理批量数据的线程的个数作为第一可用资源数;获取与所述第一可用资源数相同数量的批量数据;根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块;将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块。
本申请实施例通过在业务请求端和业务处理端之间设置处理节点,该处理节点接收业务请求端产生的批量数据,并对批量数据进行切分,将分切后的数据块发送给业务处理端处理,因此,每次向业务处理端发送的数据块是经过切分后的,并且处理节点可以存储业务处理端当前处理不完的数据,而不是将所有的批量数据都堆在业务处理端,大大降低了业务处理端的压力。
在任一实施例中,所述将用于处理批量数据的线程的个数作为第一可用资源数,包括:根据时间与调控值之间的对应关系,确定与当前时间对应的调控值;根据CPU内核数量,确定初始阀值;根据所述初始阀值和所述调控值的乘积计算所述线程的个数,将所述个数作为所述第一可用资源数。
本申请实施例通过初始阀值和调控值确定处理节点能够对批量数据进行切分的第一可用资源数,保证了处理节点在处理批量数据的同时,不会影响该处理节点其他业务的执行。
在任一实施例中,根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块,包括:将接收所述目标数据块的处理器中,用于处理数据的每条线程的资源空间作为所述预设资源量;将所述预设资源量与所述所需资源空间的比值作为数据值;根据所述数据值对所述批量数据进行划分得到多个数据块。
本申请实施例中,按照预设资源量和线程的资源空间对批量数据进行切分,从而能够充分利用线程。
在任一实施例中,所述根据所述数据值对所述批量数据进行划分,得到多个数据块,包括:将所述批量数据中,取交易笔数等于所述数据值时,所述交易笔数对应的交易数据作为一个数据块,以此获取多个数据块。
在任一实施例中,所述目标数据块包括多个数据块,每个数据块包括多条交易数据,且每个所述目标数据块的处理结果中包括对应目标数据块的业务标识;在从多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块之后,所述方法还包括:接收对所述目标数据块的处理结果;将业务标识相同的所述处理结果,按照时间戳的时间顺序进行拼接,获得最终的处理结果。
本申请实施例通过根据业务标识和时间戳对处理结果进行拼接,从而可以方便快捷地获取到属于同一个业务请求的处理结果。
在任一实施例中,在获取与所述第一可用资源数相同数量的批量数据之前,所述方法还包括:按照预设周期在预先创建的锁目录下创建临时顺序节点,以获取所述存储介质的分布式锁;若所述锁目录下所述顺序节点最小,则成功获取到所述分布式锁,则执行“获取与所述第一可用资源数相同数量的批量数据”的步骤;在得到多个数据块之后,所述方法还包括:从所述锁目录下将所述顺序节点删除,以释放所述分布式锁。
本申请实施例通过设置分布式锁,防止了多个处理节点同时对同一个批量数据进行切分而产生冲突,保证了处理节点的有序工作。
第二方面,本申请实施例提供一种发送数据的装置,包括:第一资源确定模块,用于将用于处理批量数据的线程的个数作为第一可用资源数;获取模块,用于获取与所述第一可用资源数相同数量的批量数据;分割模块,用于根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块;发送模块,用于将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块。
第三方面,本申请实施例提供一种处理节点,包括:处理器、存储器和总线,其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法。
第四方面,本申请实施例提供一种非暂态计算机可读存储介质,包括:所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法。
第五方面,本申请实施例提供一种分布式处理系统,存储介质和多个第三方面所述的处理节点。
第六方面,本申请实施例提供一种业务系统,业务请求端、业务处理端和第五方面所述的分布式处理系统;所述分布式处理系统分别与所述业务请求端和所述业务处理端通信连接。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种分布式处理系统架构示意图;
图2为本申请实施例提供的一种业务系统架构示意图;
图3为本申请实施例提供的一种发送数据的方法流程示意图;
图4为本申请实施例提供的发送数据的装置结构示意图;
图5为本申请实施例提供的处理节点实体结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图1为本申请实施例提供的一种分布式处理系统架构示意图,如图1所示,该系统包括多个处理节点和共用的存储介质;其中,存储介质可以设置与任意一个处理节点上,也可以设置在处理节点外的设备上。多个处理节点构成处理集群,该处理集群分别与业务请求端和业务处理端通信连接,并且该处理集群中的每个处理节点在正常工作状态下均能够与存储介质通信。处理集群接收业务请求端发送的批量数据,由于批量数据的数据量较大,若由一个处理节点处理,则需要耗费较长的时间,同时也会使得处理节点负载过大,甚至出现宕机的情况。为了避免此情况发生,可以将批量数据进行切分,获得多个数据块,并将数据块存入存储介质中。处理节点定期扫描存储介质,若存储介质中存储有待处理的数据块,则根据自身的空余线程数获取相应数量的数据块,对获取的数据块进行处理。可以理解的是,对获取的数据块的处理方式为:向业务处理端发送该数据块。
再有,本申请实施例中的分布式系统可以应用于金融系统,例如银行系统,也可以作为银行系统的外挂系统。图2为本申请实施例提供的一种业务系统架构示意图,如图2所示,例如:银行系统为了提高业务办理的效率,会通过两类终端实现,即通过终端A实现业务数据的接收,通过终端B利用业务数据进行业务办理。那么本申请中的分布式系统用于存储上述的业务数据,并对业务数据进行分块,再转发给终端B。从而实现了业务数据的调度。应当说明的是,终端A和终端B的数量可以为一个,也可以为多个,且终端A的数据可以与终端B相同,也可以不同。另外,该分布式系统还可以应用于其他场景,本申请实施例对此不作具体限定。
图3为本申请实施例提供的一种发送数据的方法流程示意图,如图3所示,该方法应用于分布式处理系统中的任意一个处理节点,该方法包括:
步骤301:将用于处理批量数据的线程的个数作为第一可用资源数;其中,第一可用资源数为处理节点中可以用来对批量数据进行切分的可用线程的数量。可以理解的是,处理节点定期扫描存储介质,以确定存储介质中是否存在批量数据,若存在,则确定处理节点的第一可用资源数。若不存在,则等下个周期再对存储介质进行扫描。
步骤302:获取与所述第一可用资源数相同数量的批量数据。
其中,批量数据为分布式处理系统中任意一个处理节点从业务请求端获取,由于分布式处理系统中包括多个处理节点,具体由哪个处理节点接收批量数据,由分布式处理系统的负载均衡功能实现,当分布式系统接收到批量数据后,通过负载均衡功能确定批量数据由哪个处理节点接收。处理节点在接收到批量数据后,将批量数据存储在存储介质中。可以理解的是,可以通过软件方式实现负载均衡功能,也可以通过硬件方式实现。其工作原理类似,都是根据各个处理节点的负载情况确定接收批量数据的处理节点。
处理节点在从存储介质中获取批量数据时,若存储介质中的批量数据的数量充足,则获取与第一可用资源数相同数量的批量数据。所谓数量充足是指存储介质中存储的批量数据的数量大于或等于第一可用资源数。若存储介质中的批量数据的数量小于第一可用资源数,则将存储介质中的批量数据全部获取到。可以预先设定一个第一可用资源处理一个批量数据,若第一可用资源数为10,那么处理节点可以从存储介质中获取10个批量数据,并将这10个批量数据分配给10个第一可用资源进行后续的处理。
在获取批量数据时,可以按照批量数据存入存储介质的时间先后进行获取,即,先获取先存入存储介质的批量数据。当然,也可以为每个批量数据设置对应的优先级,综合考虑优先级和存入存储介质的时间确定获取哪些批量数据。应当说明的是,当存储介质中包括的批量数据的数量小于第一可用资源数,例如:第一可用资源数为10,存储介质中包括的批量数据的数量为8,那么获取这8个批量数据,并将获取到的8个批量数据分配给10个第一可用资源中的任意8个第一可用资源进行处理。
由此可知,本申请实施例将批量数据的获取和切分进行了解耦,只将批量数据存储的操作非常快,可以对应更多的并发请求。同时,需要保证存储在存储介质中的批量数据不会被处理节点直接发送给业务处理端。
步骤303:根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块。
其中,在获取到批量数据后,将批量数据分配给第一可用资源,由第一可用资源对批量数据进行切分。所谓切分是指将大数据量的批量数据进行拆分,获得小数据量的数据块。预设资源量是指业务处理端用于处理交易数据的每条线程的资源空间。例如:每条交易数据的处理需要1M资源空间,业务处理端有1G空间可以用于处理交易数据,那么可以将1024条交易数据作为一个数据块,对批量数据进行分割。若一个批量数据包括10G,则按照1024条交易数据为一个数据块,可以分割获得10个数据块。处理节点在对批量数据进行切分获得数据块后,将数据块存入存储介质中。
应当说明的是,批量数据和数据块均存储在一个存储介质中,为了区分批量数据和数据块,可以将存储介质划分为两部分,一部分用于存储批量数据,另一部分用于存储数据块。或者可以将数据块进行标注,例如标注有特有标识的为已经经过切分的数据块,没有特有标识的为批量数据。
步骤304:将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块。目标数据块是指存储在存储介质中的,待转发给业务处理端的数据块。该目标数据块可以是步骤303中的数据块,也可以是由其他处理节点对批量数据进行切分后获得的数据块。可以理解的是,第二可用资源数为处理节点可以用来对数据块进行转发的可用线程的数量。处理节点可以定期扫描存储介质,以确定存储介质中是否存在待处理的数据块,若存在,则确定第二可用资源数,并从多个数据块中获取与第二可用资源数相等的数据块作为目标数据块;若不存在,则等下一后扫描周期的到来,再次扫描存储介质。应当说明的是,若存储介质中存储的待处理的数据块的数量少于第二可用资源数,则获取存储介质中的所有的数据块即可。
在获取到相应数量的目标数据块后,将目标数据块分配给第二可用资源。
本申请实施例通过在业务请求端和业务处理端之间设置处理节点,该处理节点接收业务请求端产生的批量数据,并对批量数据进行切分,将分切后的数据块发送给业务处理端处理,因此,每次向业务处理端发送的数据块是经过切分后的,并且处理节点可以存储业务处理端当前处理不完的数据,而不是将所有的批量数据都堆在业务处理端,大大降低了业务处理端的压力。
在上述实施例的基础上,所述将用于处理批量数据的线程的个数作为第一可用资源数,包括:
根据时间与调控值之间的对应关系,确定与当前时间对应的调控值;
根据CPU内核数量,确定初始阀值;
根据所述初始阀值和所述调控值的乘积计算用于处理批量数据的线程的个数,将所述个数作为所述第一可用资源数。
在具体的实施过程中,调控值可以根据处理节点的当前时间确定,即,在不同的时间点,其调控值可能不同。例如:在工作时间(9:00-18:00),其调控值可以为50%,在非工作时间,其调控值可以为150%。调控值还可以有其有效期和适用范围,具体调控方式如下表所示:
由上表可知,分布式处理系统可以按照全天不同时段进行阀值控制;可以按照不同的有效期进行控制,过期自动失效,未到期不适用;可以对所有的处理节点控制,也可以按照具体不同的处理节点进行控制。应当说明的是,上表只是其中一种举例,在实际应用中,可以根据具体情况设定,本申请实施例对此不作具体限定。
处理节点在获取当前时间的同时,还可以获取初始阀值,当然,初始阀值的获取步骤可以在获取当前时间之前或之后,本申请实施例对此不作具体限定。在获取到调控值和初始阀值后,将初始阀值和调控值进行相乘,获得的值即为用于处理批量数据的线程的个数,也即第一可用资源数。
应当说明的是,第二可用资源数的计算方式与第一可用资源数的计算方式类似,此处不再赘述。
另外,第一可用资源数和第二可用资源数可以通过旋钮控制,通常来说,关于调控值的控制,本申请实施例提供一种模拟量控制,即通过旋钮或进度条的方式,通过旋钮或进度条来确定启用的线程数在初始阀值的基础上的百分比。可以理解的是,初始阀值的具体取指可以根据CPU核心数确定。通过调整旋钮或调整进度条上的滑块,可以确定最终可用的线程数。例如:
本申请实施例通过初始阀值和调控值确定处理节点能够对批量数据进行切分的第一可用资源数,保证了处理节点在处理批量数据的同时,不会影响该处理节点其他业务的执行。
在上述实施例的基础上,所述根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行,得到多个数据块,包括:
将接收所述目标数据块的处理器中,用于处理数据的每条线程的资源空间作为所述预设资源量;
将所述预设资源量与所述所需资源空间的比值作为数据值;
根据所述数据值对所述批量数据进行划分得到多个数据块。
在具体的实施过程中,可以预先将处理节点中的线程划分为对批量数据进行分割的线程和向业务处理端发送数据块的线程。其中,预设资源量可以理解为内存空间。所需资源空间是指每条交易数据所占用的内存空间。例如:预设资源量为1G,所需资源空间为1M,那么数据值为1024。在获得数据值后,根据数据值对批量数据进行划分。在具体划分中,可以将所述批量数据中,取交易笔数等于数据值时,交易笔数对应的交易数据作为一个数据块,以此获取多个数据块。例如:批量数据中包括10G内存大小的交易数据,按照数据值,将批量数据中每1024条交易数据划分为一个数据块,从而可以获得10个数据块。
在另一实施例中,对批量数据进行切分还可以有如下两种方法:
第一种:可以按照预设的块数进行切分,即数据总数量/块数=每块的数据量。当除不尽的时候将最后一部分数据放入至最后一块;当数据量少时,可能无法分指定的固定块数,则以实际为准(例如指定数据块5块,但是只有三条数据,则只分三块即可)。
第二种:预先设定每块数据的数据量,即数据总量/每块数据量=块数。除不尽的时候将最后部分的数据单独创建一块,以此作为最终数据块个数。另外,若批量数据的总数据量小于或等于预设的每块数据量,则不需要切分。
本申请实施例中,由于各个批量数据的数据量大小不同,为了便于对批量数据进行切分,可以按照预设数据块数量或预设数据大小对批量数据将批量数据进行切分。
在上述实施例的基础上,所述目标数据块包括多个数据块,每个数据块包括多条交易数据,且每个所述目标数据块的处理结果中包括对应目标数据块的业务标识;在从多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块之后,所述方法还包括:
接收对所述目标数据块的处理结果;
将业务标识相同的所述处理结果,按照时间戳的时间顺序进行拼接,获得最终的处理结果。
在具体的实施过程中,业务处理端在接收到目标数据块后,对目标数据块中的多条业务数据进行处理,并在处理后返回目标数据块的处理结果。处理结果包括对每条交易数据进行处理的结果,可以是处理成功,也可以是处理失败。
一个批量数据可以包括一个总业务的多条交易数据,例如:一个公司为公司员工发工资,那么批量数据中包括多条从公司账户到各个员工银行卡转账的交易数据。那么一个批量数据可以用唯一一个业务标识,在对该批量数据进行切分获得多个数据块后,每个数据块也包括该业务标识。每个数据块中包括的交易数据都有一个时间戳,该时间戳用于表征该条交易数据生成的时间,其可以用于区分数据块中的其他交易数据。另外,一个数据块中的交易数据的时间戳都是连续的,那么在对批量数据进行切分时,可以将交易数据按照时间戳进行排序,对排序后的交易数据进行切分,获得多个数据块。
业务处理端在接收到目标数据块后,对目标数据块中的交易数据进行处理,在处理完成后返回该目标数据块的处理结果,处理节点在接收到处理结果后,获取处理结果对应的业务标识,将业务标识相同的目标数据块的处理结果,按照交易数据的时间戳进行拼接,获得最终的处理结果。从而获得的最终的处理结果为一个完整的交易请求的处理结果。
本申请实施例通过根据业务标识和时间戳对处理结果进行拼接,从而可以方便快捷地获取到属于同一个交易请求的处理结果。
在上述实施例的基础上,在获取与所述第一可用资源数相同数量的批量数据之前,所述方法还包括:
按照预设周期在预先创建的锁目录下创建临时顺序节点,以获取所述存储介质的分布式锁;
若所述锁目录下所述顺序节点最小,则成功获取到所述分布式锁,则执行“获取与所述第一可用资源数相同数量的批量数据”的步骤;
在得到多个数据块之后,所述方法还包括:
从所述锁目录下将所述顺序节点删除,以释放所述分布式锁。
在具体的实施过程中,为了避免多个处理节点同时处理同一个批量数据,本申请实施例还提供有分布式锁,分布式锁包括基于redis的分布式锁、基于数据库的分布式锁和基于zookeeper的分布式锁中至少一种。即,当处理节点获取批量数据之前,先获取分布式锁,通过分布式锁将批量数据进行锁定,只有获取到分布式锁的处理节点才能够对批量数据进行处理。可以理解的是,对于包括至少两种分布式锁的情况,例如包括基于redis的分布式锁和基于zookeeper的分布式锁,在redis分布式锁正常的情况下,使用redis分布式锁,在redis分布式锁异常,可以使用基于zookeeper的分布式锁。
如果能够成功获取到分布式锁,则说明可以对批量数据进行后续的处理,即,获取批量数据,并对批量数据进行切分。在对批量数据进行切分后,并将切分后获得的数据块存入存储介质后,释放分布式锁。
以zookeeper分布式锁为例,其实现分布式锁的步骤如下:
(1)创建一个目录mylock;
(2)若线程A想获取分布式锁,则需要在mylock目录下创建临时顺序节点;
(3)获取mylock目录下所有的子节点,然后获取比自己小的兄弟节点,如果不存在,则说明当前线程顺序号最小,获得分布式锁;
(4)线程B获取所有节点,判断自己不是最小节点,设置监听比自己次小的节点;
(5)线程A处理完,删除自己的节点,线程B监听到变更事件,判断自己是不是最小的节点,如果是则获得分布式锁。
可以理解的是,如果线程A处理完后,从mylock目录下将对应的顺序节点删除处理,从而表征将之前获取到的分布式锁释放。
应当说明的是,在确定第二可用资源数之前,还需要获取分布式锁,可以理解的是,此处的分布式锁与批量数据对应的分布式锁不同,其主要是针对锁的数据不同,一个分布式锁是用于锁批量数据的,另一个分布式锁用于锁数据块。在对目标数据块发送给业务处理端后,释放该分布式锁。
本申请实施例通过设置分布式锁,防止了多个处理节点同时对同一个批量数据进行切分而产生冲突,保证了处理节点的有序工作。
图4为本申请实施例提供的发送数据的装置结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图3方法实施例对应,能够执行图3方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括:第一资源确定模块401、获取模块402、分割模块403和发送模块404,其中:
第一资源确定模块401用于将用于处理批量数据的线程的个数作为第一可用资源数;
获取模块402用于获取与所述第一可用资源数相同数量的批量数据;
分割模块403用于根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块;
发送模块404用于将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块。
在上述实施例的基础上,第一资源确定模块401401具体用于:
根据时间与调控值之间的对应关系,确定与当前时间对应的调控值;
根据CPU内核数量,确定初始阀值;
根据所述初始阀值和所述调控值的乘积计算用于处理批量数据的线程的个数,将所述个数作为所述第一可用资源数。
在上述实施例的基础上,分割模块403具体用于:
将接收所述目标数据块的处理器中,用于处理数据的每条线程的资源空间作为所述预设资源量;
将所述预设资源量与所述所需资源空间的比值作为数据值;
根据所述数据值对所述批量数据进行划分得到多个数据块。
在上述实施例的基础上,分割模块403具体用于:
将所述批量数据中,取交易笔数等于所述数据值时,所述交易笔数对应的交易数据作为一个数据块,以此获取多个数据块。
在上述实施例的基础上,所述目标数据块包括多个数据块,每个数据块包括多条交易数据,且每个所述目标数据块的处理结果中包括对应目标数据块的业务标识;该装置还包括接收模块,用于:
接收对所述目标数据块的处理结果;
将业务标识相同的所述处理结果,按照时间戳的时间顺序进行拼接,获得最终的处理结果。
在上述实施例的基础上,该装置还包括锁获取模块,用于:
按照预设周期在预先创建的锁目录下创建临时顺序节点,以获取所述存储介质的分布式锁;
若所述锁目录下所述顺序节点最小,则成功获取到所述分布式锁,则执行所述第一资源确定模块所执行的步骤;
锁释放模块,用于在得到多个数据块之后,从所述锁目录下将所述顺序节点删除,以释放所述分布式锁。
图5为本申请实施例提供的处理节点实体结构示意图,如图5所示,所述处理节点,包括:处理器(processor)501、存储器(memory)502和总线503;其中,
所述处理器501和存储器502通过所述总线503完成相互间的通信;
所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:将用于处理批量数据的线程的个数作为第一可用资源数;获取与所述第一可用资源数相同数量的批量数据;根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块;将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块。
处理器501可以是一种集成电路芯片,具有信号处理能力。上述处理器501可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器502可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)等。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:将用于处理批量数据的线程的个数作为第一可用资源数;获取与所述第一可用资源数相同数量的批量数据;根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块;将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:将用于处理批量数据的线程的个数作为第一可用资源数;获取与所述第一可用资源数相同数量的批量数据;根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块;将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种发送数据的方法,其特征在于,所述方法包括:
将用于处理批量数据的线程的个数作为第一可用资源数;
获取与所述第一可用资源数相同数量的批量数据;
根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块;
将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块;
所述根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块,包括:
将接收所述目标数据块的处理器中,用于处理数据的每条线程所需的资源空间作为所述预设资源量;
将所述预设资源量与所述所需资源空间的比值作为数据值;
根据所述数据值对所述批量数据进行划分得到多个数据块。
2.根据权利要求1所述的方法,其特征在于,所述将用于处理批量数据的线程的个数作为第一可用资源数,包括:
根据时间与调控值之间的对应关系,确定与当前时间对应的调控值;
根据CPU内核数量,确定初始阀值;
根据所述初始阀值和所述调控值的乘积计算用于处理批量数据的线程的个数,将所述个数作为所述第一可用资源数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据值对所述批量数据进行划分,得到多个数据块,包括:
将所述批量数据中,取交易笔数等于所述数据值时,所述交易笔数对应的交易数据作为一个数据块,以此获取多个数据块。
4.根据权利要求1所述的方法,其特征在于,所述目标数据块包括多个数据块,每个数据块包括多条交易数据;在从多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块之后,所述方法还包括:
接收对所述目标数据块的处理结果;所述目标数据块的处理结果中包括对应目标数据块的业务标识;
将业务标识相同的所述处理结果,按照时间戳的时间顺序进行拼接,获得最终的处理结果。
5.根据权利要求1所述的方法,其特征在于,在获取与所述第一可用资源数相同数量的批量数据之前,所述方法还包括:
按照预设周期在预先创建的锁目录下创建临时顺序节点,以获取存储介质的分布式锁;所述分布式锁用于锁定批量数据;
若所述锁目录下所述临时顺序节点最小,则成功获取到所述分布式锁,则执行获取与所述第一可用资源数相同数量的批量数据的步骤;其中,所述批量数据为所述分布式锁锁定的批量数据;
在得到多个数据块之后,所述方法还包括:
从所述锁目录下将所述临时顺序节点删除,以释放所述分布式锁。
6.一种发送数据的装置,其特征在于,包括:
第一资源确定模块,用于将用于处理批量数据的线程的个数作为第一可用资源数;
获取模块,用于获取与所述第一可用资源数相同数量的批量数据;
分割模块,用于根据预设资源量,以及处理所述批量数据中每条交易数据所需资源空间,对所述批量数据进行分割,得到多个数据块;
发送模块,用于将用于发送数据的线程的个数作为第二可用资源数,从所述多个数据块中获取并发送与所述第二可用资源数相同数量的目标数据块;
所述分割模块具体用于:
将接收所述目标数据块的处理器中,用于处理数据的每条线程所需的资源空间作为所述预设资源量;
将所述预设资源量与所述所需资源空间的比值作为数据值;
根据所述数据值对所述批量数据进行划分得到多个数据块。
7.一种处理节点,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-5任一项所述的方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-5任一项所述的方法。
9.一种分布式处理系统,其特征在于,包括存储介质和多个如权利要求7所述的处理节点。
10.一种业务系统,其特征在于,包括业务请求端、业务处理端和如权利要求9所述的分布式处理系统;所述分布式处理系统分别与所述业务请求端和所述业务处理端通信连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111250353.3A CN113992684B (zh) | 2021-10-26 | 2021-10-26 | 发送数据的方法、装置、处理节点、存储介质及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111250353.3A CN113992684B (zh) | 2021-10-26 | 2021-10-26 | 发送数据的方法、装置、处理节点、存储介质及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113992684A CN113992684A (zh) | 2022-01-28 |
CN113992684B true CN113992684B (zh) | 2022-10-28 |
Family
ID=79741911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111250353.3A Active CN113992684B (zh) | 2021-10-26 | 2021-10-26 | 发送数据的方法、装置、处理节点、存储介质及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113992684B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055691A (zh) * | 2016-06-12 | 2016-10-26 | 成都科来软件有限公司 | 一种分布式数据存储处理方法及存储处理系统 |
CN110008018A (zh) * | 2019-01-17 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种批量任务处理方法、装置及设备 |
CN110297711A (zh) * | 2019-05-16 | 2019-10-01 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
CN111414241A (zh) * | 2020-02-27 | 2020-07-14 | 平安银行股份有限公司 | 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 |
CN112988348A (zh) * | 2021-02-24 | 2021-06-18 | 中国联合网络通信集团有限公司 | 防重批量处理数据的方法、装置、系统及存储介质 |
CN113448706A (zh) * | 2021-06-29 | 2021-09-28 | 中国工商银行股份有限公司 | 批量任务处理方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8584124B2 (en) * | 2010-04-20 | 2013-11-12 | Salesforce.Com, Inc. | Methods and systems for batch processing in an on-demand service environment |
-
2021
- 2021-10-26 CN CN202111250353.3A patent/CN113992684B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055691A (zh) * | 2016-06-12 | 2016-10-26 | 成都科来软件有限公司 | 一种分布式数据存储处理方法及存储处理系统 |
CN110008018A (zh) * | 2019-01-17 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种批量任务处理方法、装置及设备 |
CN110297711A (zh) * | 2019-05-16 | 2019-10-01 | 平安科技(深圳)有限公司 | 批量数据处理方法、装置、计算机设备及存储介质 |
CN111414241A (zh) * | 2020-02-27 | 2020-07-14 | 平安银行股份有限公司 | 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 |
CN112988348A (zh) * | 2021-02-24 | 2021-06-18 | 中国联合网络通信集团有限公司 | 防重批量处理数据的方法、装置、系统及存储介质 |
CN113448706A (zh) * | 2021-06-29 | 2021-09-28 | 中国工商银行股份有限公司 | 批量任务处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113992684A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614209B (zh) | 一种任务处理方法、应用服务器及系统 | |
CN111091429A (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
CN110188110B (zh) | 一种构建分布式锁的方法及装置 | |
CN110888893A (zh) | 一种基于微服务电商系统的订单处理方法 | |
CN108415757B (zh) | 分布式事务处理方法及装置 | |
CN108446172B (zh) | 数据调取方法、装置、计算机设备和存储介质 | |
CN114253673A (zh) | 一种分布式系统的事务处理方法和事务处理装置 | |
CN111258741B (zh) | 仓库任务执行的方法、分布式服务器集群及计算机设备 | |
CN111414241A (zh) | 批量数据处理方法、装置、系统、计算机设备及计算机可读存储介质 | |
CN113626218A (zh) | 数据处理方法、装置、存储介质及计算机设备 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN111260253A (zh) | 信息发送方法、装置、计算机设备及存储介质 | |
CN109327499B (zh) | 业务接口的管理方法及装置、存储介质、终端 | |
CN113992684B (zh) | 发送数据的方法、装置、处理节点、存储介质及系统 | |
CN112667371B (zh) | 异步任务的处理方法、装置、设备及存储介质 | |
CN112069223B (zh) | 数据获取需求处理方法、装置、计算机设备和存储介质 | |
CN113010306A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN112015563A (zh) | 消息队列切换方法、装置、电子设备及存储介质 | |
CN115098157A (zh) | 一种公共业务数据的处理方法及装置 | |
CN114610413A (zh) | 基于Java的同异步任务的执行方法、装置、设备及存储介质 | |
CN110489208B (zh) | 虚拟机配置参数核查方法、系统、计算机设备和存储介质 | |
CN111586135A (zh) | 云部署微服务应用系统及其数据传输方法、装置和设备 | |
CN114138472A (zh) | 业务数据处理方法、装置和系统 | |
CN111061576A (zh) | 一种实体对象的创建方法及系统 | |
CN112162834B (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 |