CN104320382B - 分布式的实时流处理装置、方法和单元 - Google Patents
分布式的实时流处理装置、方法和单元 Download PDFInfo
- Publication number
- CN104320382B CN104320382B CN201410526494.7A CN201410526494A CN104320382B CN 104320382 B CN104320382 B CN 104320382B CN 201410526494 A CN201410526494 A CN 201410526494A CN 104320382 B CN104320382 B CN 104320382B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- service processing
- sent
- data
- identified event
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000005111 flow chemistry technique Methods 0.000 claims abstract description 8
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000003032 molecular docking Methods 0.000 claims description 9
- 238000003672 processing method Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 34
- 238000010586 diagram Methods 0.000 description 11
- 235000013399 edible fruits Nutrition 0.000 description 6
- 230000008713 feedback mechanism Effects 0.000 description 4
- 238000004148 unit process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种分布式的实时流处理装置、方法及单元,属于数据处理领域。方法包括:接收输入单元分发的一批数据流,该一批数据流包括多个子数据流;对接收到的子数据流进行并行处理,得到数据处理结果;将得到的至少一个数据处理结果发送给排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向排序输出单元发送标识事件,该数据处理结果及标识事件用于排序输出单元在判断收集齐全所有业务处理单元发送的标识事件后,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。本发明通过排序输出单元将同一批次的数据处理结果进行排序输出,实现了分布式的实时流处理的全局排序,更为规整和简便,方便后续处理。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种分布式的实时流处理装置、方法和单元。
背景技术
在各种数据爆炸式增长的时代背景下,网络中传输的数据量日益增多,因此对数据传输的实时性要求也越来越高。数据在传输过程中是不断流动的,在数据处理领域中将流动的数据称为数据流,将对数据流的处理称为流处理。为了实现对海量数据流的实时处理,一般采用分布式实时流处理方式。
现有技术对海量数据流进行分布式实时流处理的具体实现方式为:首先利用输入单元实时接收一批数据流,并将该数据流采用分布式分发的方式下发到多个处理单元,每个处理单元接收输入单元分发的一至多个数据流;各个处理单元对数据流进行实时的分析和排序等处理,每处理完一个数据流随即将数据处理结果发送到后续的输出单元;此外,每一个处理单元中都会定义一个用于标识数据处理结束的标识事件,当每个处理单元处理完输入单元本批分发的多个数据流后,会发送该标识事件给后续的输出单元;输出单元接收每个处理单元发送的数据处理结果,并在收到任何一个处理单元的标识事件后,都会直接输出当前已接收到的所有数据处理结果,输出的数据处理结果中除了包含了本批数据流的一部分数据处理结果,还可能包含下一批数据流的一部分数据处理结果。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于标识事件的局限性,输出单元每次输出的数据处理结果除了包含本批数据流中的一部分数据处理结果,还可能包含下一批数据流的一部分数据处理结果,导致每批数据流的数据处理结果都无法完整有序输出,给数据流的后续处理造成困难。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种分布式的实时流处理的装置、方法和单元。所述技术方案如下:
第一方面,提供了一种分布式的实时流处理装置,所述装置包括:输入单元、至少两个业务处理单元及排序输出单元;
所述输入单元,用于实时接收一批数据流,所述一批数据流包括多个子数据流,并将所述多个子数据流发送给多个业务处理单元,其中,每个业务处理单元对应至少一个子数据流;
所述每个业务处理单元,用于接收所述输入单元发送的子数据流,对接收到的所述子数据流进行并行处理,将得到的至少一个数据处理结果发送给所述排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向所述排序输出单元发送标识事件,所述标识事件用于指示同一批次的数据流处理完成;
所述排序输出单元,用于接收所述每个业务处理单元发送的至少一个数据处理结果及所述标识事件,并在判断收集齐全所有业务处理单元发送的所述标识事件后,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
结合第一方面,在第一方面的第一种可能的实现方式中,所述每个业务处理单元,用于每得到一个数据处理结果后,为每个数据处理结果添加本业务处理单元标识,将添加了本业务处理单元标识的每个数据处理结果实时发送给所述排序输出单元,并在将处理完当前批次的数据流得到的数据处理结果全部发送给排序输出单元后,将记录有业务处理单元标识的标识事件发送给排序输出单元;
所述排序输出单元,接收到每个业务处理单元实时发送的携带本业务处理单元标识的数据处理结果,以及每个业务处理单元发送的标识事件之后,根据业务处理单元标识将不同业务处理单元发送的数据处理结果进行分区存放,对每个分区存放的数据处理结果作排序后输出之后,清除分区中已输出的标识事件。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述排序输出单元,还用于记录接收到所述每个业务处理单元发送的所述标识事件的时间,按照接收到所述标识事件的时间先后顺序,将所述每个业务处理单元发送的属于同一批次的数据流的数据处理结果进行排序输出。
结合第一方面及第一方面的第一种至第二种可能的实现方式中的任一种实现方式,在第一方面的第三种可能的实现方式中,所述排序输出单元,还用于根据接收到所述每个业务处理单元发送的所述标识事件的时间,调整所述每个业务处理单元的并发度。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述排序输出单元,具体用于根据接收到所述每个业务处理单元发送的所述标识事件的时间,确定所述每个业务处理单元处理所述属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,具体用于根据每个业务处理单元所耗费的时间,获得各个业务处理单元耗费时间比,根据所有业务处理单元的总并发度的数量和所述各个业务处理单元耗费时间比,调整下一次每个业务处理单元的并发度,调整后的每个业务处理单元的并发度与所述各个业务处理单元耗费时间比成正比。
第二方面,提供了一种分布式的实时流处理方法,所述方法包括:
接收每个业务处理单元发送的至少一个数据处理结果及标识事件;
判断是否收集齐全所有业务处理单元发送的所述标识事件;
如果判断收集齐全所有业务处理单元发送的标识事件,则将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
结合第二方面,在第二方面的第一种可能的实现方式中,所述方法还包括:
记录接收到所述每个业务处理单元发送的所述标识事件的时间,按照接收到所述标识事件的时间先后顺序,将所述每个业务处理单元发送的属于同一批次的数据流的数据处理结果进行排序输出。
结合第二方面,在第二方面的第二种可能的实现方式中,所述接收每个业务处理单元发送的至少一个数据处理结果及标识事件,包括:
接收每个业务处理单元实时发送的携带本业务处理单元标识的数据处理结果,以及每个业务处理单元发送的标识事件;
所述将接收到的属于同一批次的数据流的所有数据处理结果进行排序输出,包括:
根据业务处理单元标识将不同业务处理单元发送的数据处理结果进行分区存放,对每个分区存放的数据处理结果作排序后输出之后,清除分区中已输出的标识事件。
结合第二方面、第二方面的第一种至第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述接收每个业务处理单元发送的至少一个数据处理结果及标识事件之后,还包括:
根据接收到所述每个业务处理单元发送的所述标识事件的时间,调整所述每个业务处理单元的并发度。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述根据接收到所述每个业务处理单元发送的所述标识事件的时间,调整所述每个业务处理单元的并发度,包括:
根据接收到所述每个业务处理单元发送的所述标识事件的时间,确定所述每个业务处理单元处理所述属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述根据接收到所述每个业务处理单元发送的所述标识事件的时间,确定所述每个业务处理单元处理所述属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度,包括:
根据每个业务处理单元所耗费的时间,获得各个业务处理单元耗费时间比,根据所有业务处理单元的总并发度的数量和所述各个业务处理单元耗费时间比,调整下一次每个业务处理单元的并发度,调整后的每个业务处理单元的并发度与所述各个业务处理单元耗费时间比成正比。
第三方面,提供了一种业务处理单元,所述单元包括:
接收模块,用于接收输入单元分发的一批数据流,所述一批数据流包括多个子数据流;
处理模块,用于对接收到的子数据流进行并行处理,得到数据处理结果;
发送模块,用于将得到的至少一个数据处理结果发送给排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向所述排序输出单元发送标识事件,所述数据处理结果及标识事件用于所述排序输出单元在判断收集齐全所有业务处理单元发送的所述标识事件后,将收集到的属于同一批次的数据流的所有数据处理结果进行输出。
结合第三方面,在第三方面的第一种可能的实现方式中,所述发送模块,用于每得到一个数据处理结果后,为每个数据处理结果添加业务处理单元标识,将添加了业务处理单元标识的数据处理结果实时发送给所述排序输出单元,并在将处理完当前批次的数据流得到的数据处理结果全部发送给排序输出单元后,将记录有业务处理单元标识的标识事件发送给排序输出单元。
第四方面,提供了一种排序输出单元,所述排序输出单元包括:
接收模块,用于接收每个业务处理单元发送的至少一个数据处理结果及标识事件;
判断模块,用于判断是否收集齐全所有业务处理单元发送的所述标识事件;
排序输出模块,用于当判断收集齐全所有业务处理单元发送的标识事件时,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
结合第四方面,在第四方面的第一种可能的实现方式中,所述排序输出模块,用于记录接收到所述每个业务处理单元发送的所述标识事件的时间,按照接收到所述标识事件的时间先后顺序,将所述每个业务处理单元发送的属于同一批次的数据流的数据处理结果进行排序输出。
结合第四方面,在第四方面的第二种可能的实现方式中,所述接收模块,用于接收每个业务处理单元实时发送的携带本业务处理单元标识的数据处理结果,以及每个业务处理单元发送的标识事件;
所述排序输出模块,用于根据业务处理单元标识将不同业务处理单元发送的数据处理结果进行分区存放,对每个分区存放的数据处理结果作排序后输出之后,清除分区中已输出的标识事件。
结合第四方面、第四方面的第一种至第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述单元,还包括:
调整模块,用于根据接收到所述每个业务处理单元发送的所述标识事件的时间,调整所述每个业务处理单元的并发度。
结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,所述调整模块,用于根据接收到所述每个业务处理单元发送的所述标识事件的时间,确定所述每个业务处理单元处理所述属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
结合第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中,所述调整模块,用于根据每个业务处理单元所耗费的时间,获得各个业务处理单元耗费时间比,根据所有业务处理单元的总并发度的数量和所述各个业务处理单元耗费时间比,调整下一次每个业务处理单元的并发度,调整后的每个业务处理单元的并发度与所述各个业务处理单元耗费时间比成正比。
本发明实施例提供的技术方案带来的有益效果是:
通过各个业务处理单元对接收到的数据流进行处理,将得到的数据处理结果及记录有业务处理单元标识的标识事件发送给排序输出单元,由排序输出单元在判断收集到所有业务处理单元发送的标识事件后,将接收到的同一批次的所有数据处理结果进行排序输出,实现了分布式的实时流处理的全局排序,较现有分布式的实时流处理方式更为规整和简便,方便数据流的后续处理。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种分布式的实时流处理装置的结构示意图;
图2是本发明另一实施例提供的一种分布式的实时流处理方法所涉及的实施环境示意图;
图3是本发明另一实施例提供的一种分布式的实时流处理方法流程图;
图4是本发明另一实施例提供的一种分布式的实时流处理方法流程图;
图5是本发明另一实施例提供的一种分布式的实时流处理方法流程图;
图6是本发明另一实施例提供的一种业务处理单元的结构示意图;
图7是本发明另一实施例提供的一种排序输出单元的结构示意图;
图8是本发明另一实施例提供的一种排序输出单元的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为了提供一种规整和简便的分布式的实时流处理方法,方便数据流的后续处理,本实施例提供了一种分布式的实时流处理装置,参见图1,该实时流处理装置包括:输入单元11、至少两个业务处理单元12及排序输出单元13;
输入单元11,用于实时接收一批数据流,该一批数据流包括多个子数据流,并将多个子数据流发送给多个业务处理单元12,其中,每个业务处理单元12对应至少一个子数据流;
每个业务处理单元12,用于接收输入单元11发送的子数据流,对接收到的子数据流进行并行处理,将得到的至少一个数据处理结果发送给排序输出单元13,当确定属于同一批次的数据流的子数据流处理完成时,向排序输出单元13发送标识事件,该标识事件用于指示同一批次的数据流处理完成;
排序输出单元13,用于接收每个业务处理单元12发送的至少一个数据处理结果及标识事件,并在判断收集齐全所有业务处理单元12发送的标识事件后,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
作为一种可选实施例,每个业务处理单元12,用于每得到一个数据处理结果后,为每个数据处理结果添加业务处理单元标识,将添加了业务处理单元标识的数据处理结果实时发送给排序输出单元13,并在将处理完当前批次的数据流得到的数据处理结果全部发送给排序输出单元13后,将记录有业务处理单元标识的标识事件发送给排序输出单元13。排序输出单元13,用于接收到每个业务处理单元12实时发送的携带业务处理单元标识的数据处理结果,以及每个业务处理单元12在处理完一批数据流发送的标识事件之后,根据业务处理单元标识将不同业务处理单元发送的数据处理结果和标识事件进行分区存放,对所有分区中第一个标识事件之前的所有数据处理结果作排序后输出之后,清除所有分区中的第一个标识事件。
作为一种可选实施例,排序输出单元13,还用于记录接收到每个业务处理单元12发送的所述标识事件的时间,按照接收到所述标识事件的时间先后顺序,将每个业务处理单元12发送的属于同一批次的数据流的数据处理结果进行排序输出。
作为一种可选实施例,排序输出单元13,还用于根据接收到每个业务处理单元12发送的标识事件的时间,调整每个业务处理单元12的并发度。
作为一种可选实施例,排序输出单元13,具体用于根据接收到每个业务处理单元发送的标识事件的时间,确定每个业务处理单元12处理属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
作为一种可选实施例,排序输出单元13,具体用于根据每个业务处理单元12所耗费的时间,获得各个业务处理单元12耗费时间比,根据所有业务处理单元12的总并发度的数量和各个业务处理单元12耗费时间比,调整下一次每个业务处理单元12的并发度,调整后的每个业务处理单元12的并发度与各个业务处理单元12耗费时间比成正比。
本实施例提供的装置,通过各个业务处理单元对接收到的数据流进行处理,将得到的数据处理结果及记录有业务处理单元标识的标识事件发送给排序输出单元,由排序输出单元在判断收集到所有业务处理单元发送的标识事件后,将接收到的同一批次的所有数据处理结果进行排序输出,实现了分布式的实时流处理的全局排序,较现有分布式的实时流处理方式更为规整和简便,方便数据流的后续处理。
结合上述图1所示的装置,本发明另一实施例提供了一种分布式的实时流处理方法,为了便于说明,以图2所示的网络拓扑图作为应用本实施例提供的方法进行分布式的实时流处理的实施环境为例,对本实施例提供的分布式的实时流处理的过程进行解释说明。图2所示的网络拓扑图中包括一个输入单元、四个业务处理单元、一个排序输出单元。其中,输入单元用于接收外部数据流,并将接收到的数据流分发给各个业务处理单元;各个业务处理单元用于对接收到的数据流进行处理,并将处理得到的数据处理结果输出给排序输出单元;排序输出单元对各个业务处理单元输出的数据处理结果进行排序输出。结合图2所示的网络拓扑图,以业务处理单元的角度为例,参见图3,本实施例提供的方法流程包括:
301:接收输入单元分发的一批数据流,该一批数据流包括多个子数据流;
302:对接收到的子数据流进行并行处理,得到数据处理结果;
303:将得到的至少一个数据处理结果发送给排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向排序输出单元发送标识事件,该数据处理结果及标识事件用于排序输出单元在判断收集齐全所有业务处理单元发送的标识事件后,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
作为一种可选实施例,将得到的至少一个数据处理结果发送给排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向排序输出单元发送标识事件,包括:
每得到一个数据处理结果后,为每个数据处理结果添加业务处理单元标识,将添加了业务处理单元标识的数据处理结果实时发送给排序输出单元,并在将处理完当前批次的数据流得到的数据处理结果全部发送给排序输出单元后,将记录有业务处理单元标识的标识事件发送给排序输出单元。
以排序输出单元的角度为例,参见图4,本实施例提供的方法流程包括:
401:接收每个业务处理单元发送的至少一个数据处理结果及标识事件。
402:判断是否收集齐全所有业务处理单元发送的标识事件。
403:如果判断收集齐全所有业务处理单元发送的标识事件,则将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
作为一种可选实施例,该方法还包括:
记录接收到每个业务处理单元发送的标识事件的时间,按照接收到标识事件的时间先后顺序,将每个业务处理单元发送的属于同一批次的数据流的数据处理结果进行排序输出。
作为一种可选实施例,接收每个业务处理单元发送的至少一个数据处理结果及标识事件,包括:
接收每个业务处理单元实时发送的携带本业务处理单元标识的数据处理结果,以及每个业务处理单元发送的标识事件;
将接收到的属于同一批次的数据流的所有数据处理结果进行排序输出,包括:
根据业务处理单元标识将不同业务处理单元发送的数据处理结果进行分区存放,对每个分区存放的数据处理结果作排序后输出之后,清除分区中已输出的标识事件。
作为一种可选实施例,接收每个业务处理单元发送的至少一个数据处理结果及标识事件之后,还包括:
根据接收到每个业务处理单元发送的所述标识事件的时间,调整每个业务处理单元的并发度。
作为一种可选实施例,根据接收到每个业务处理单元发送的标识事件的时间,调整每个业务处理单元的并发度,包括:
根据接收到每个业务处理单元发送的标识事件的时间,确定每个业务处理单元处理属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
作为一种可选实施例,根据接收到每个业务处理单元发送的标识事件的时间,确定每个业务处理单元处理属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度,包括:
根据每个业务处理单元所耗费的时间,获得各个业务处理单元耗费时间比,根据所有业务处理单元的总并发度的数量和所述各个业务处理单元耗费时间比,调整下一次每个业务处理单元的并发度,调整后的每个业务处理单元的并发度与所述各个业务处理单元耗费时间比成正比。
本实施例提供的方法,通过各个业务处理单元对接收到的数据流进行处理,将得到的数据处理结果及记录有业务处理单元标识的标识事件发送给排序输出单元,由排序输出单元在判断收集到所有业务处理单元发送的标识事件后,将接收到的同一批次的所有数据处理结果进行排序输出,实现了分布式的实时流处理的全局排序,较现有分布式的实时流处理方式更为规整和简便,方便数据流的后续处理。
结合上述图1所示的装置、图2所示的实施环境以及上述实施例的内容,本发明另一实施例提供了一种分布式的实时流处理方法,参见图5,本实施例提供的方法流程包括:
501:输入单元实时接收一批数据流,该一批数据流包括多个子数据流,并将多个子数据流发送给多个业务处理单元,其中,每个业务处理单元对应至少一个子数据流。
其中,输入单元实时接收的数据流可以来源于外部网络或其他来源,本实施例在此不对输入单元接收的数据流的来源进行限定,同样不对输入单元接收到的一批数据流中数据流的数量以及每个数据流的内容进行限定。
此外,输入单元将多个子数据流发送给多个业务处理单元时,可以按照平均分配、随机分配或按需分配的方式将多个子数据流发送给多个业务处理单元。其中,采用按需分配的方式将多个子数据流发送给多个业务处理单元的具体实施方式包括但不限于根据数据流的数据量以及每个业务处理单元处理数据流的能力将多个子数据流发送给多个业务处理单元。例如,可为处理数据流的能力高的业务处理单元分发数据量大的数据流,为处理数据流的能力低的业务处理单元分发数据量小的数据流。当然,输入单元除了按照上述分发方式将多个子数据流发送给多个业务处理单元外,还可以按照其他分发方式进行数据流的分发,本实施例对此不作具体限定。
进一步地,无论输入单元采用哪种分配方式将接收的一批数据流分发给多个业务处理单元,输入单元均可以采用一定分发顺序进行分发。该分发顺序包括但不限于按照随机分发顺序进行分发或者按照每个业务处理单元被分配的数据流大小顺序进行分发等。
作为一种可选实施例,输入单元在将多个子数据流发送给多个业务处理单元之前,输入单元还可对实时接收的一批数据流进行预处理,具体的预处理方式包括但不限于格式化处理等等,本实施例不对具体的预处理方式进行限定。无论输入单元对实时接收的一批数据流进行何种预处理,均需要将预处理之后的数据流分发给每个业务处理单元。
502:每个业务处理单元接收输入单元发送的子数据流,并对接收的子数据流进行处理,得到至少一个数据处理结果。
每个业务处理单元接收输入单元发送的子数据流,可以接收输入单元发送的一个或多个子数据流,关于每个业务处理单元接收输入单元发送的子数据流的数量、大小及内容,本实施例不作具体限定。每个业务处理单元对接收的子数据流进行处理时,本实施例不对具体处理方式进行限定,具体实施时,可依据实际情况采取对应的处理方式,例如,包括但不限于对接收的每个子数据流进行分析处理及排序处理等。
503:每个业务处理单元将得到的至少一个数据处理结果发送给排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向排序输出单元发送标识事件,该标识事件用于指示同一批次的数据流处理完成。
每个业务处理单元将得到的至少一个数据处理结果发送给排序输出单元的方式,具体包括但不限于:在得到至少一个数据处理结果之后,将所有数据处理结果一次性发送给排序输出单元,或者,每得到一个数据处理结果,按照数据处理结果的产生顺序将得到的每个数据处理结果实时发送给排序输出单元,直至将得到的所有数据处理结果全部发送给排序输出单元。
无论业务处理单元采用哪种方式将其得到的至少一个数据处理结果发送给排序输出单元,当每个业务处理单元将处理完一批数据流得到的所有数据处理结果发送给排序输出单元后,为了使排序输出单元能够根据接收到的标识事件中记录的业务处理单元标识来区分哪些业务处理单元已经处理完当前批次的数据流,业务处理单元在将其得到的至少一个数据处理结果发送给排序输出单元之后,还包括向排序输出单元发送记录有业务处理单元标识的标识事件。
进一步地,为了使排序输出单元能够区分接收到的数据处理结果对应于哪批数据流,即区分属于同一批数据流的数据处理结果,业务处理单元向排序输出单元发送数据处理结果的方式包括但不限于:
业务处理单元对当前批次的子数据流进行处理,每得到一个数据处理结果,就会为每个数据处理结果添加该业务处理单元标识,将添加了业务处理单元标识的数据处理结果实时发送给排序输出单元,并在将处理完当前批次的子数据流得到的数据处理结果全部发送给排序输出单元后,将记录有业务处理单元标识的标识事件发送给排序输出单元,以使排序输出单元根据每个数据处理结果中添加的业务处理单元标识能够区分开不同业务处理单元发送的数据处理结果,根据接收到的标识事件中记录的业务处理单元标识来区分哪些业务处理单元已经处理完当前批次的子数据流。
例如,仍以图2所示的实施环境示意图为例,由于图2所示的网络拓扑图中包括四个业务处理单元,将四个业务处理单元分别记为业务处理单元1、业务处理单元2、业务处理单元3、业务处理单元4,四个业务处理单元对应的标识分别为标识A、标识B、标识C、标识D,四个业务处理单元对应的标识事件分别为携带了标识A的标识事件1、携带了标识B的标识事件2、携带了标识C的标识事件3、携带了标识D的标识事件4;业务处理单元1对子数据流进行处理后,每得到一个数据处理结果,就为该数据处理结果添加标识A;业务处理单元2对子数据流进行处理后,每得到一个数据处理结果,就为该数据处理结果添加标识B;业务处理单元3对子数据流进行处理后,每得到一个数据处理结果,就为该数据处理结果添加标识C;业务处理单元4对子数据流进行处理后,每得到一个数据处理结果,就为该数据处理结果添加标识D。同时,业务处理单元将每一个添加了标识的数据处理结果实时发送给排序输出单元。并且,业务处理单元1在将处理完一批子数据流得到的数据处理结果全部发送给排序输出单元后,将携带有标识A的标识事件1发送给排序输出单元;业务处理单元2在将处理完一批子数据流得到的数据处理结果全部发送给排序输出单元后,将携带有标识B的标识事件2发送给排序输出单元;其余的业务处理单元依此类推。
需要说明的是,由于每个业务处理单元发送的标识事件用于排序输出单元来区分业务处理单元是否处理完当前批次的子数据流,因而每个业务处理单元在处理完当前批次的数据流之后,将得到的所有数据处理结果发送给排序输出单元,并向排序输出单元发送记录有业务处理单元标识的标识事件。具体实施时,每个业务处理单元在处理子数据流时,还可以设置处理子数据流的时间窗口。当业务处理单元处理完当前批次的子数据流之后,时间窗口到期,进而触发每个业务处理单元向排序输出单元发送记录有业务处理单元标识的标识事件。
504:排序输出单元接收每个业务处理单元发送的至少一个数据处理结果及标识事件,并在判断收集齐全所有业务处理单元发送的标识事件后,将接收到的属于同一批次的数据流的所有数据处理结果进行排序输出。
其中,由于每个业务处理单元处理子数据流的大小、处理子数据流的方式及处理子数据流的能力不同,每个业务处理单元向排序输出单元发送数据处理结果及标识事件的时间也将不同,因此,排序输出单元接收各个业务处理单元发送的数据处理结果及标识事件的时间不同,本实施例不对排序输出单元接收各个业务处理单元发送的数据处理结果及标识事件的顺序进行限定。
排序输出单元每接收到一个业务处理单元发送的标识事件后,由于标识事件中记录有业务处理单元标识,因而排序输出单元可以根据接收到的标识事件中记录的业务处理单元标识确定哪些业务处理单元处理完当前批次的子数据流。
具体实施时,排序输出单元中可以记录所有业务处理单元的标识,由于标识事件携带了对应的业务处理单元的标识,当排序输出单元接收各个业务处理单元发送的数据处理结果及标识事件后,可以将接收到的标识事件所携带的业务处理单元的标识与记录的业务处理单元的标识进行对比。当收集到所有业务处理单元的标识之后,即判断收集到了所有业务处理单元发送的标识事件。当排序输出单元接收到所有业务处理单元发送的标识事件后,即可判断一批数据流处理完毕。
同时,为了将不同批的数据流对应的数据处理结果区分开,从而将接收到的不同批数据流的数据处理结果按照批次进行排序输出,针对上述业务处理单元发送所有数据处理结果及标识事件的发送方式,本实施例采用了如下的排序输出方式:
排序输出单元接收到各个业务处理单元实时发送的携带业务处理单元标识的数据处理结果,以及每个业务处理单元在处理完一批数据流发送的标识事件之后,可以根据业务处理单元标识将不同业务处理单元发送的数据处理结果和标识事件进行分区存放。每收到一个业务处理单元发送的标识事件,并将该标识事件存放在该业务处理单元对应的分区后,该分区中第一个标识事件之前的所有数据处理结果即为该业务处理单元发送的对同一批数据流处理后得到的数据处理结果。同理,可以按照上述方法得到其他业务处理单元发送的对同一批数据流处理后得到的数据处理结果,对所有分区中第一个标识事件之前的所有数据处理结果作排序后输出,同时清除所有分区中已输出的标识事件,以进行后续数据处理结果的排序输出;至此,就能将业务处理单元发送的不同批数据处理结果区分开来,将同一批数据处理结果作排序输出了。
例如,仍以图2所示的实施环境示意图为例,针对上述业务处理单元发送所有数据处理结果及标识事件的发送方式二所举的例子,排序输出单元实时接收到携带标识A、标识B、标识C、标识D的数据处理结果时,可判断该数据处理结果分别是由业务处理单元1、业务处理单元2、业务处理单元3、业务处理单元4发送的,并将携带标识A、标识B、标识C、标识D的数据处理结果分别放在一区、二区、三区、四区;当排序输出单元接收到携带标识A的标识事件1时,将标识事件1放在一区,则一区中第一个标识事件1到来之前的所有数据处理结果为业务处理单元1对同一批数据流处理后得到的数据处理结果,其他三个区的情况依此类推,则每一个区中第一个标识事件到来之前接收到的所有数据处理结果都属于同一批数据处理结果;排序输出单元将同一批数据处理结果作排序输出,并将每一个区中已输出的标识事件也清除;后续数据处理结果的排序输出方式依此类推。
由于排序输出单元接收到所有业务处理单元发送的标识事件后,即可判断一批数据流处理完毕,从而能够输出一批数据流的数据处理结果,则针对多批数据流的情况,按照上述方法进行分布式实时流处理之后,可将每批数据流按照顺序依次输出数据处理结果,保证了多批数据流的数据处理结果之间的顺序,实现了全局排序。
进一步地,针对同一批数据流的数据处理结果之间的排序过程,本实施例不作具体限定,具体实施时,排序输出单元判断收集到了所有业务处理单元发送的标识事件后,当前收集到的所有数据处理结果即为输入单元接收的同一批数据流经过处理后得到的所有数据处理结果,排序输出单元可将所有数据处理结果按照特定的排序规则进行排序,得到同一批数据流的所有数据处理结果之间的排序结果,并将排序结果进行输出。其中,排序输出单元对同一批数据流的所有数据处理结果进行排序的排序规则可以有多种,本实施例对此不进行具体限定。输入单元接收一批数据流,并在对数据流的预处理中对每条子数据流的先后输入顺序作标记;业务处理单元处理输入单元分发的每个子数据流得到对应的数据处理结果后,为该数据处理结果添加与对应的子数据流一致的标记;业务处理单元将添加了标记的数据处理结果发送给排序输出单元,从而使排序输出单元可以根据每个数据处理结果中添加的标记来对各个数据处理结果进行排序。
例如,第一条输入的子数据流经过处理后得到的数据处理结果中携带了标记1,第二条输入的子数据流经过处理后得到的数据处理结果中携带了标记2,其余的数据处理结果依此类推;当排序输出单元判断当前收集到的所有数据处理结果为输入单元接收的同一批数据流经过处理后得到的所有数据处理结果后,根据每一条数据处理结果中携带的标记对同一批数据流经过处理后得到的所有数据处理结果进行排序,携带标记1的数据处理结果排在第一位,第一个输出,携带标记2的数据处理结果排在第二位,第二个输出,其余排序结果以此类推。
作为一种可选实施例,由于每个业务处理单元处理子数据流的时间长短不同,排序输出单元接收到各个业务处理单元发送的数据处理结果的时间不定,因此在排序输出单元接收各个业务处理单元发送的数据处理结果及标识事件之后,本发明实施例提供了一种实时调整业务处理单元的并发度的动态反馈机制,以通过该动态反馈机制来调整各个业务处理单元的并发度,从而使每个业务处理单元处理子数据流的时间能够达到平衡,减少排序输出单元等待所有业务处理单元发送的数据处理结果的时间。其中,业务处理单元的并发度用于标识业务处理单元处理子数据流的能力,业务处理单元的并发度越高,其处理子数据流的能力越高,处理同样的子数据流所需要的时间越短;业务处理单元的并发度越低,其处理子数据流的能力越低,处理同样的子数据流所需要的时间越长。业务处理单元的并发度包括但不限于业务处理单元处理子数据流的大小或处理子数据流的数量。
实时调整业务处理单元处理数据流的动态反馈机制,包括:根据接收到每个业务处理单元发送的标识事件的时间,调整每个业务处理单元的并发度,具体包括但不限于如下几个步骤:
步骤一:排序输出单元接收所有业务处理单元发送的标识事件时,记录所有标识事件的接收时间;
例如,以业务处理单元的个数为4为例,接收到四个业务处理单元分别发送的标识事件1、标识事件2、标识事件3、标识事件4的时间分别为20ms(毫秒)、30ms、50ms、100ms,则记录下每个标识事件的接收时间,如表1所示。
表1
标识事件 | 接收时间 |
标识事件1 | 20ms |
标识事件2 | 30ms |
标识事件3 | 50ms |
标识事件4 | 100ms |
步骤二:排序输出单元根据记录的所有标识事件的接收时间确定各个业务处理单元调整后的并发度,得到待调整结果,并将待调整结果反馈给输入单元。
其中,排序输出单元根据记录的所有标识事件的接收时间确定各个业务处理单元调整后的并发度时,可以按照记录的所有标识事件的接收时间的长短比例来调整业务处理单元的并发度比例,得到动态的待调整结果。该待调整结果携带了调整后的各个业务处理单元的并发度比例,代表了各个业务处理单元的处理数据流的能力之比;输入单元接收到待调整结果之后,按照调整后的各个业务处理单元的并发度比例分配分发给业务处理单元的数据流,增加分发给标识事件先到达的业务处理单元的数据流,减少分发给标识事件后到达的业务处理单元的数据流。
具体地,针对排序输出单元的动态调整机制,可选的动态调整机制包括:固定所有业务处理单元的整体并发度,根据排序输出单元记录的所有标识事件的到来时间的先后,动态调整各个业务处理单元的并发度,所有业务处理单元的并发度之和为固定的所有业务处理单元的整体并发度;排序输出单元得出待调整结果,发送给输入单元。例如,以并发度为数据流的数量为例,总的数据流数量为40;在排序输出单元未收到标识事件时,每个业务处理单元要处理的数据流数量均为10;排序输出单元收到所有业务处理单元发送的标识事件后,记录4个业务处理单元的标识事件的到达时间分别为20ms、30ms、50ms、100ms,如表1所示,得到其到达时间之比为2:3:5:10;输入单元将按照该比例将总的数据流数量分配给四个业务处理单元,调整后的单元并发度如表2所示。排序输出单元的动态调整机制的具体实现方式可以有多种,本实施例对此不进行限定。
表2
业务处理单元 | 调整后的单元并发度 |
1 | 4 |
2 | 6 |
3 | 10 |
4 | 20 |
至此,并发度反馈机制结束。可选地,在输入单元接收到排序输出单元发送的待调整结果后,可根据该待调整结果进行后续的调整操作,从而平衡各个业务处理单元的并发度,使每个业务处理单元处理数据流的时间能够达到平衡,减少排序输出单元等待所有业务处理单元发送的数据处理结果的时间。
本实施例提供的方法,通过各个业务处理单元对接收到的数据流进行处理,将得到的数据处理结果及记录有业务处理单元标识的标识事件发送给排序输出单元,由排序输出单元在判断收集到所有业务处理单元发送的标识事件后,将接收到的同一批次的所有数据处理结果进行排序输出,实现了分布式的实时流处理的全局排序,较现有分布式的实时流处理方式更为规整和简便,方便数据流的后续处理。进一步地,在排序输出单元接收完各个业务处理单元发送的数据处理结果以及标识事件之后,还实时调整各个业务处理单元的并发度,使每个业务处理单元处理数据流的时间不断趋于同步,从而降低了分布式的实时流处理的全局排序的延迟,提高了整个计算的处理速度。
本发明另一实施例提供了一种业务处理单元,该业务处理单元用于执行上述各个实施例中任一实施例所涉及的业务处理单元所执行的功能,参见图6,该业务处理单元包括:
接收模块601,用于接收输入单元分发的一批数据流,该一批数据流包括多个子数据流;
处理模块602,用于对接收到的子数据流进行并行处理,得到数据处理结果;
发送模块603,用于将得到的至少一个数据处理结果发送给排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向排序输出单元发送标识事件,该数据处理结果及标识事件用于排序输出单元在判断收集齐全所有业务处理单元发送的标识事件后,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
作为一种可选实施例,发送模块603,用于每得到一个数据处理结果后,为每个数据处理结果添加业务处理单元标识,将添加了业务处理单元标识的数据处理结果实时发送给排序输出单元,并在将处理完当前批次的数据流得到的数据处理结果全部发送给排序输出单元后,将记录有业务处理单元标识的标识事件发送给排序输出单元。
本实施例提供的业务处理单元,通过对接收到的数据流进行处理,将得到的数据处理结果及记录有业务处理单元标识的标识事件发送给排序输出单元,由排序输出单元在判断收集到所有业务处理单元发送的标识事件后,将接收到的同一批次的所有数据处理结果进行排序输出,实现了分布式的实时流处理的全局排序,较现有分布式的实时流处理方式更为规整和简便,方便数据流的后续处理。
本发明另一实施例提供了一种排序输出单元,该排序输出单元用于执行上述各个实施例中任一实施例所涉及的排序输出单元所执行的功能。参见图7,该排序输出单元包括:
接收模块701,用于接收每个业务处理单元发送的至少一个数据处理结果及标识事件;
判断模块702,用于判断是否收集齐全所有业务处理单元发送的标识事件;
排序输出模块703,用于当判断收集齐全所有业务处理单元发送的标识事件时,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
作为一种可选实施例,排序输出模块703,用于记录接收到每个业务处理单元发送的标识事件的时间,按照接收到标识事件的时间先后顺序,将每个业务处理单元发送的属于同一批次的数据流的数据处理结果进行排序输出。
作为一种可选实施例,接收模块701,用于接收每个业务处理单元实时发送的携带本业务处理单元标识的数据处理结果,以及每个业务处理单元发送的标识事件;
排序输出模块703,用于根据业务处理单元标识将不同业务处理单元发送的数据处理结果进行分区存放,对每个分区存放的数据处理结果作排序后输出之后,清除分区中已输出的标识事件。
作为一种可选实施例,参见图8,该排序输出单元还包括:
调整模块704,用于根据接收到每个业务处理单元发送的标识事件的时间,调整每个业务处理单元的并发度。
作为一种可选实施例,调整模块704,用于根据接收到每个业务处理单元发送的标识事件的时间,确定每个业务处理单元处理属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
作为一种可选实施例,调整模块704,用于根据每个业务处理单元所耗费的时间,获得各个业务处理单元耗费时间比,根据所有业务处理单元的总并发度的数量和各个业务处理单元耗费时间比,调整下一次每个业务处理单元的并发度,调整后的每个业务处理单元的并发度与各个业务处理单元耗费时间比成正比。
本实施例提供的排序输出单元,通过接收各个业务处理单元对接收到的数据流进行处理后发送的数据处理结果及记录有业务处理单元标识的标识事件,并在判断收集到所有业务处理单元发送的标识事件后,将接收到的同一批次的所有数据处理结果进行排序输出,实现了分布式的实时流处理的全局排序,较现有分布式的实时流处理方式更为规整和简便,方便数据流的后续处理。进一步地,在接收完各个业务处理单元发送的数据处理结果以及标识事件之后,还实时调整各个业务处理单元的并发度,使每个业务处理单元处理数据流的时间不断趋于同步,从而降低了分布式的实时流处理的全局排序的延迟,提高了整个计算的处理速度。
本发明另一实施例提供了一种业务处理单元,该业务处理单元用于执行上述各个实施例中任一实施例所涉及的业务处理单元所执行的功能。该业务处理单元包括:接收机、处理器及发射机;
接收机,用于接收输入单元分发的一批数据流,该一批数据流包括多个子数据流;
处理器,用于对接收到的子数据流进行并行处理,得到数据处理结果;
发射机,用于将得到的至少一个数据处理结果发送给排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向排序输出单元发送标识事件,数据处理结果及标识事件用于排序输出单元在判断收集齐全所有业务处理单元发送的标识事件后,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
作为一种可选实施例,发射机,用于每得到一个数据处理结果后,为每个数据处理结果添加业务处理单元标识,将添加了业务处理单元标识的数据处理结果实时发送给排序输出单元,并在将处理完当前批次的数据流得到的数据处理结果全部发送给排序输出单元后,将记录有业务处理单元标识的标识事件发送给排序输出单元。
本实施例提供的业务处理单元,通过对接收到的数据流进行处理,将得到的数据处理结果及记录有业务处理单元标识的标识事件发送给排序输出单元,由排序输出单元在判断收集到所有业务处理单元发送的标识事件后,将接收到的同一批次的所有数据处理结果进行排序输出,实现了分布式的实时流处理的全局排序,较现有分布式的实时流处理方式更为规整和简便,方便数据流的后续处理。
本发明另一实施例提供了一种排序输出单元,该排序输出单元用于执行上述各个实施例中任一实施例所涉及的排序输出单元所执行的功能。该排序输出单元包括:接收机、处理器及发射机;
接收机,用于接收每个业务处理单元发送的至少一个数据处理结果及标识事件;
处理器,用于判断是否收集齐全所有业务处理单元发送的标识事件;
发射机,用于当判断收集齐全所有业务处理单元发送的标识事件时,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出。
作为一种可选实施例,发射机,用于记录接收到每个业务处理单元发送的标识事件的时间,按照接收到标识事件的时间先后顺序,将每个业务处理单元发送的属于同一批次的数据流的数据处理结果进行排序输出。
作为一种可选实施例,接收机,用于接收每个业务处理单元实时发送的携带本业务处理单元标识的数据处理结果,以及每个业务处理单元发送的标识事件;
处理器,用于根据业务处理单元标识将不同业务处理单元发送的数据处理结果进行分区存放;
发射机,用于对所有分区中第一个标识事件之前的所有数据处理结果作排序后输出;
处理器,用于发射机对每个分区存放的第一个标识事件之前的所有数据处理结果作排序后输出之后,清除所有分区中已输出的标识事件。
作为一种可选实施例,处理器,还用于根据接收到每个业务处理单元发送的标识事件的时间,调整每个业务处理单元的并发度。
作为一种可选实施例,处理器,用于根据接收到每个业务处理单元发送的标识事件的时间,确定每个业务处理单元处理属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
作为一种可选实施例,处理器,用于根据每个业务处理单元所耗费的时间,获得各个业务处理单元耗费时间比,根据所有业务处理单元的总并发度的数量和各个业务处理单元耗费时间比,调整下一次每个业务处理单元的并发度,调整后的每个业务处理单元的并发度与各个业务处理单元耗费时间比成正比。
本实施例提供的排序输出单元,通过接收各个业务处理单元对接收到的数据流进行处理后发送的数据处理结果及记录有业务处理单元标识的标识事件,并在判断收集到所有业务处理单元发送的标识事件后,将接收到的同一批次的所有数据处理结果进行排序输出,实现了分布式的实时流处理的全局排序,较现有分布式的实时流处理方式更为规整和简便,方便数据流的后续处理。进一步地,在接收完各个业务处理单元发送的数据处理结果以及标识事件之后,还实时调整各个业务处理单元的并发度,使每个业务处理单元处理数据流的时间不断趋于同步,从而降低了分布式的实时流处理的全局排序的延迟,提高了整个计算的处理速度。
需要说明的是:上述实施例提供的分布式的实时流处理装置、业务处理单元及排序输出单元在分布式的实时流处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置及单元的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的分布式的实时流处理装置、业务处理单元及排序输出单元与分布式的实时流处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种分布式的实时流处理装置,其特征在于,所述装置包括:输入单元、至少两个业务处理单元及排序输出单元;
所述输入单元,用于实时接收一批数据流,所述一批数据流包括多个子数据流,并将所述多个子数据流发送给多个业务处理单元,其中,每个业务处理单元对应至少一个子数据流;
所述每个业务处理单元,用于接收所述输入单元发送的子数据流,对接收到的所述子数据流进行并行处理,将得到的至少一个数据处理结果发送给所述排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向所述排序输出单元发送标识事件,所述标识事件用于指示同一批次的数据流处理完成;
所述每个业务处理单元,还用于每得到一个数据处理结果后,为每个数据处理结果添加业务处理单元标识,将添加了业务处理单元标识的数据处理结果实时发送给所述排序输出单元,并在将处理完当前批次的数据流得到的数据处理结果全部发送给排序输出单元后,将记录有业务处理单元标识的标识事件发送给排序输出单元;
所述排序输出单元,用于接收所述每个业务处理单元发送的至少一个数据处理结果及所述标识事件,并在判断收集齐全所有业务处理单元发送的所述标识事件后,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出;
所述排序输出单元,还用于接收到每个业务处理单元实时发送的携带本业务处理单元标识的数据处理结果,以及每个业务处理单元发送的标识事件之后,根据业务处理单元标识将不同业务处理单元发送的数据处理结果和标识事件进行分区存放,对每个分区存放的数据处理结果作排序后输出之后,清除分区中已输出的标识事件;
所述排序输出单元,还用于在根据业务处理单元标识将不同业务处理单元发送的数据处理结果和标识事件进行分区存放之后,对于每个分区,将所述分区中位于第一个标识事件之前的所有数据处理结果确定为所述分区对应的业务处理单元处理的同一批次数据流的数据处理结果。
2.根据权利要求1所述的装置,其特征在于,所述排序输出单元,还用于记录接收到所述每个业务处理单元发送的所述标识事件的时间,按照接收到所述标识事件的时间先后顺序,将所述每个业务处理单元发送的属于同一批次的数据流的数据处理结果进行排序输出。
3.根据权利要求1或2任一权利要求所述的装置,其特征在于,所述排序输出单元,还用于根据接收到所述每个业务处理单元发送的所述标识事件的时间,调整所述每个业务处理单元的并发度。
4.根据权利要求3所述的装置,其特征在于,所述排序输出单元,具体用于根据接收到所述每个业务处理单元发送的所述标识事件的时间,确定所述每个业务处理单元处理所述属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
5.根据权利要求4所述的装置,其特征在于,所述排序输出单元,具体用于根据每个业务处理单元所耗费的时间,获得各个业务处理单元耗费时间比,根据所有业务处理单元的总并发度的数量和所述各个业务处理单元耗费时间比,调整下一次每个业务处理单元的并发度,调整后的每个业务处理单元的并发度与所述各个业务处理单元耗费时间比成正比。
6.一种分布式的实时流处理方法,其特征在于,所述方法包括:
接收每个业务处理单元发送的至少一个数据处理结果及标识事件;
判断是否收集齐全所有业务处理单元发送的所述标识事件;
如果判断收集齐全所有业务处理单元发送的标识事件,根据业务处理单元标识将不同业务处理单元发送的数据处理结果和标识事件进行分区存放,对于每个分区,将所述分区中位于第一个标识事件之前的所有数据处理结果确定为所述分区对应的业务处理单元处理的同一批次数据流的数据处理结果,对每个分区存放的属于同一批次数据流的数据处理结果作排序后输出之后,清除分区中已输出的标识事件;
其中,所述接收每个业务处理单元发送的至少一个数据处理结果及标识事件,包括:
接收每个业务处理单元实时发送的携带本业务处理单元标识的数据处理结果,以及每个业务处理单元发送的标识事件。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
记录接收到所述每个业务处理单元发送的所述标识事件的时间,按照接收到所述标识事件的时间先后顺序,将所述每个业务处理单元发送的属于同一批次的数据流的数据处理结果进行排序输出。
8.根据权利要求6或7任一权利要求所述的方法,其特征在于,所述接收每个业务处理单元发送的至少一个数据处理结果及标识事件之后,还包括:
根据接收到所述每个业务处理单元发送的所述标识事件的时间,调整所述每个业务处理单元的并发度。
9.根据权利要求8所述的方法,其特征在于,所述根据接收到所述每个业务处理单元发送的所述标识事件的时间,调整所述每个业务处理单元的并发度,包括:
根据接收到所述每个业务处理单元发送的所述标识事件的时间,确定所述每个业务处理单元处理所述属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
10.根据权利要求9所述的方法,其特征在于,所述根据接收到所述每个业务处理单元发送的所述标识事件的时间,确定所述每个业务处理单元处理所述属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度,包括:
根据每个业务处理单元所耗费的时间,获得各个业务处理单元耗费时间比,根据所有业务处理单元的总并发度的数量和所述各个业务处理单元耗费时间比,调整下一次每个业务处理单元的并发度,调整后的每个业务处理单元的并发度与所述各个业务处理单元耗费时间比成正比。
11.一种业务处理单元,其特征在于,所述单元包括:
接收模块,用于接收输入单元分发的一批数据流,所述一批数据流包括多个子数据流;
处理模块,用于对接收到的子数据流进行并行处理,得到数据处理结果;
发送模块,用于将得到的至少一个数据处理结果发送给排序输出单元,当确定属于同一批次的数据流的子数据流处理完成时,向所述排序输出单元发送标识事件,所述数据处理结果及标识事件用于指示所述排序数据单元根据业务处理单元标识将不同业务处理单元发送的数据处理结果和标识事件进行分区存放,并对于每个分区,将所述分区中位于第一个标识事件之前的所有数据处理结果确定为所述分区对应的业务处理单元处理的同一批次数据流的数据处理结果,在判断收集齐全所有业务处理单元发送的所述标识事件后,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出;
所述发送模块,还用于每得到一个数据处理结果后,为每个数据处理结果添加业务处理单元标识,将添加了业务处理单元标识的数据处理结果实时发送给所述排序输出单元,并在将处理完当前批次的数据流得到的数据处理结果全部发送给排序输出单元后,将记录有业务处理单元标识的标识事件发送给排序输出单元。
12.一种排序输出单元,其特征在于,所述排序输出单元包括:
接收模块,用于接收每个业务处理单元发送的数据处理结果及标识事件;
所述接收模块,还用于接收每个业务处理单元实时发送的携带本业务处理单元标识的数据处理结果,以及每个业务处理单元发送的标识事件;
判断模块,用于判断是否收集齐全所有业务处理单元发送的所述标识事件;
排序输出模块,用于当判断收集齐全所有业务处理单元发送的标识事件时,将收集到的属于同一批次的数据流的所有数据处理结果进行排序输出;
所述排序输出模块,还用于根据业务处理单元标识将不同业务处理单元发送的数据处理结果和标识事件进行分区存放,对每个分区存放的数据处理结果作排序后输出之后,清除分区中已输出的标识事件;
所述排序输出模块,还用于在根据业务处理单元标识将不同业务处理单元发送的数据处理结果和标识事件进行分区存放之后,对于每个分区,将所述分区中位于第一个标识事件之前的所有数据处理结果确定为所述分区对应的业务处理单元处理的同一批次数据流的数据处理结果。
13.根据权利要求12所述的单元,其特征在于,所述排序输出模块,用于记录接收到所述每个业务处理单元发送的所述标识事件的时间,按照接收到所述标识事件的时间先后顺序,将所述每个业务处理单元发送的属于同一批次的数据流的数据处理结果进行排序输出。
14.根据权利要求12或13任一权利要求所述的单元,其特征在于,所述单元,还包括:
调整模块,用于根据接收到所述每个业务处理单元发送的所述标识事件的时间,调整所述每个业务处理单元的并发度。
15.根据权利要求14所述的单元,其特征在于,所述调整模块,用于根据接收到所述每个业务处理单元发送的所述标识事件的时间,确定所述每个业务处理单元处理所述属于同一个批次的数据流所耗费的时间,根据每个业务处理单元所耗费的时间,确定每个业务处理单元调整后的并发度。
16.根据权利要求15所述的单元,其特征在于,所述调整模块,用于根据每个业务处理单元所耗费的时间,获得各个业务处理单元耗费时间比,根据所有业务处理单元的总并发度的数量和所述各个业务处理单元耗费时间比,调整下一次每个业务处理单元的并发度,调整后的每个业务处理单元的并发度与所述各个业务处理单元耗费时间比成正比。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410526494.7A CN104320382B (zh) | 2014-09-30 | 2014-09-30 | 分布式的实时流处理装置、方法和单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410526494.7A CN104320382B (zh) | 2014-09-30 | 2014-09-30 | 分布式的实时流处理装置、方法和单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104320382A CN104320382A (zh) | 2015-01-28 |
CN104320382B true CN104320382B (zh) | 2018-04-20 |
Family
ID=52375553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410526494.7A Active CN104320382B (zh) | 2014-09-30 | 2014-09-30 | 分布式的实时流处理装置、方法和单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104320382B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874320A (zh) * | 2016-06-20 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 分布式流式数据处理的方法和装置 |
WO2018046089A1 (en) * | 2016-09-09 | 2018-03-15 | Huawei Technologies Co., Ltd. | Device and method arranged to process information of a data stream |
CN106528717B (zh) * | 2016-10-26 | 2019-08-06 | 中国电子产品可靠性与环境试验研究所 | 数据处理方法和系统 |
CN113096269B (zh) * | 2021-04-28 | 2022-10-28 | 中国第一汽车股份有限公司 | 一种信息采集方法、装置、电子设备以及存储介质 |
CN113360261A (zh) * | 2021-06-04 | 2021-09-07 | 上海天旦网络科技发展有限公司 | 流处理中数据阻塞的处理系统、方法、介质及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102201992A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 面向流处理器并行环境的数据流通信系统及其通信方法 |
CN102200906A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 大规模并发数据流处理系统及其处理方法 |
CN103685053A (zh) * | 2013-11-26 | 2014-03-26 | 北京航空航天大学 | 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4171835B2 (ja) * | 2002-04-26 | 2008-10-29 | 学校法人日本大学 | 並列マージソート処理装置及び方法並びにプログラム |
CN102957622B (zh) * | 2011-08-16 | 2015-05-27 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法、装置及系统 |
CN103324533B (zh) * | 2012-03-22 | 2016-12-28 | 华为技术有限公司 | 分布式数据处理方法、装置及系统 |
CN103530084A (zh) * | 2013-09-26 | 2014-01-22 | 北京奇虎科技有限公司 | 一种数据并行排序方法和系统 |
CN103870340B (zh) * | 2014-03-06 | 2017-11-07 | 华为技术有限公司 | 流计算系统中的数据处理方法、控制节点及流计算系统 |
-
2014
- 2014-09-30 CN CN201410526494.7A patent/CN104320382B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102201992A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 面向流处理器并行环境的数据流通信系统及其通信方法 |
CN102200906A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 大规模并发数据流处理系统及其处理方法 |
CN103685053A (zh) * | 2013-11-26 | 2014-03-26 | 北京航空航天大学 | 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104320382A (zh) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104320382B (zh) | 分布式的实时流处理装置、方法和单元 | |
CN105900064B (zh) | 调度数据流任务的方法和装置 | |
WO2020103299A1 (zh) | 基于机器人的物流分区拣选方法、装置、终端、系统及存储介质 | |
CN109815011A (zh) | 一种数据处理的方法和装置 | |
CN110738413A (zh) | 航空零件加工自动化生产线的多约束排产计算方法及装置 | |
CN107968802A (zh) | 一种资源调度的方法、装置和过滤式调度器 | |
CN106844027A (zh) | 一种基于节点负载的任务调度方法 | |
CN105116870B (zh) | 空调机组的故障分析方法、装置和系统 | |
CN103646301B (zh) | 一种炉管设备的组批派工系统和方法 | |
CN106506043A (zh) | 一种plc系统中的数据传输方法、控制装置及设备 | |
CN103957136B (zh) | 一种小卫星can总线监视系统 | |
CN103841129B (zh) | 云计算的资源信息采集服务器和客户端、信息处理方法 | |
CN106357726A (zh) | 负载均衡方法及装置 | |
CN105471755B (zh) | 网络流量均衡的方法及超级控制器 | |
CN113283044B (zh) | 一种用于城市燃气管网堵塞诊断的边缘计算方法 | |
CN109905329A (zh) | 一种虚拟化环境下任务类型感知的流队列自适应管理方法 | |
CN109617710A (zh) | 数据中心间有截止时间约束的大数据传输带宽调度方法 | |
CN106844483A (zh) | 一种日志数据流处理方法 | |
CN103401809A (zh) | 一种窄带通信系统中多信道动态分配方法 | |
CN108228326A (zh) | 批量任务处理方法和分布式系统 | |
CN106302017A (zh) | 高并发小流量网络测速系统及方法 | |
CN109392002A (zh) | 一种上报网络性能参数的方法及设备 | |
CN110019386A (zh) | 一种流数据处理方法及设备 | |
CN106412043A (zh) | Cdn网络流量引导方法和装置 | |
CN105335376B (zh) | 一种流处理方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220215 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |