一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据流量控制方法、装置、电子设备及存储介质与流程

2022-02-22 23:01:31 来源:中国专利 TAG:


1.本公开涉及数据处理技术领域,尤其涉及一种数据流量控制方法、装置、电子设备及存储介质。


背景技术:

2.目前,通过如flink(弗林克)实时计算引擎等并发系统处理数据时,一旦遇到大流量数据涌入,如数据陡增或者消费堆积数据的情况,系统将变得极不稳定。
3.传统方法通常依靠自身的反压机制应对数据徒增,如果下游无法及时的处理完上游发过来的数据,会阻塞上游继续发送数据;而由于各并发任务对数据源的数据消费进度快慢不一致,该机制下仍然可能存在数据堆积,引发并发系统卡死等不稳定情况。
4.因此,相关技术中存在无法有效地解决并发系统中数据流量控制效果不理想的问题。


技术实现要素:

5.本公开提供一种数据流量控制方法、装置、电子设备及存储介质,以至少解决相关技术中存在无法有效地解决并发系统中数据流量控制效果不理想的问题。本公开的技术方案如下:
6.根据本公开实施例的第一方面,提供一种数据流量控制方法,包括:
7.获取当前数据处理场景;所述数据处理场景包括,表征数据输入量大于并发系统的数据处理量的第一场景、表征并发系统中多个并发任务的数据处理进度不一致的第二场景、表征并发系统的数据源发生历史数据堆积的第三场景中至少一种;
8.根据所述当前数据处理场景,确定与所述当前数据处理场景对应的流量控制策略。
9.在一种可能实现方式中,所述第一场景对应第一控制策略,所述第二场景对应第二控制策略,所述第三场景对应第三控制策略,所述根据所述当前数据处理场景,确定与所述当前数据处理场景对应的流量控制策略,包括:
10.若所述当前数据处理场景为所述第一场景,将所述第一控制策略作为与所述当前数据处理场景对应的流量控制策略,当所述流量控制策略为第一控制策略时,基于各并发任务当前处理的数据量确定单位时间数据处理量目标值,基于所述单位时间数据处理量目标值分别对各并发任务的数据输入量进行调节;
11.若所述当前数据处理场景为所述第二场景,将所述第二控制策略作为与所述当前数据处理场景对应的流量控制策略,当所述流量控制策略为第二控制策略时,基于各并发任务的当前周期的数据处理进度,分别控制各并发任务在下一周期的数据处理进度;
12.若所述当前数据处理场景为所述第三场景,将所述第三控制策略作为与所述当前数据处理场景对应的流量控制策略,当所述流量控制策略为第三控制策略时,分别控制各并发任务按照预设数据消费倍率对对应数据源的历史数据进行处理,所述预设数据消费倍
率大于1。
13.在一种可能实现方式中,所述当所述流量控制策略为第一控制策略时,基于各并发任务当前处理的数据量确定单位时间数据处理量目标值,基于所述单位时间数据处理量目标值分别对各并发任务的数据输入量进行调节,包括:
14.基于所述并发系统的单位时间数据处理总量、所述并发系统对应的数据源包含的分区总数,确定单个分区对应的单位时间数据处理量;所述分区用于暂存数据并向对应并发任务输入数据;
15.基于所述单个分区对应的单位时间数据处理量和各并发任务对应的分区个数,确定各并发任务对应的单位时间数据处理量目标值;
16.按照所述各并发任务对应的单位时间数据处理量目标值,控制各并发任务对应的分区向所述并发任务输入的数据输入流量。
17.在一种可能实现方式中,在所述基于所述单个分区对应的单位时间数据处理量和各并发任务对应的分区个数,确定各并发任务对应的单位时间数据处理量目标值的步骤之后,还包括:
18.当检测到所述分区总数和/或各并发任务对应的分区个数更新时,基于更新后的分区总数和/或更新后的分区个数,重新确定各并发任务对应的单位时间数据处理量目标值,并按照重新确定的单位时间数据处理量目标值,控制各并发任务对应的分区向所述并发任务输入的数据输入流量。
19.在一种可能实现方式中,所述当所述流量控制策略为第二控制策略时,基于各并发任务的当前周期的数据处理进度,分别控制各并发任务在下一周期的数据处理进度,包括:
20.根据所述多个并发任务在当前周期的数据处理进度,确定下一周期的目标数据处理进度;
21.在下一周期内,当检测到某个并发任务的数据处理进度超过所述目标数据处理进度时,暂停向所述某个并发任务输入数据流量。
22.在一种可能实现方式中,向各并发任务输入的数据对应有时间戳;所述根据所述多个并发任务在当前周期的数据处理进度,确定下一周期的目标数据处理进度,包括:
23.获取各并发任务在当前周期处理的数据所对应的最大时间戳;
24.基于所述多个并发任务对应的最大时间戳中的最小值,以及预设的处理进度允许时间差,确定下一周期的目标时间戳,作为所述目标数据处理进度;
25.所述当检测到某个并发任务的数据处理进度超过所述目标数据处理进度时,暂停向所述某个并发任务输入数据流量,包括:
26.当检测到某个并发任务处理的数据所对应的时间戳超过所述目标时间戳时,暂停向所述某个并发任务输入数据流量。
27.在一种可能实现方式中,向各并发任务输入的数据对应有时间戳;所述当所述流量控制策略为第三控制策略时,分别控制各并发任务按照预设数据消费倍率对对应数据源的历史数据进行处理,包括:
28.获取各并发任务对对应数据源的历史数据的实际数据消费倍率;所述实际数据消费倍率表征所述并发任务在1个单位时间内处理的历史数据所对应时间戳之间的最大时间
跨度;
29.当某个并发任务的实际数据消费倍率大于所述预设数据消费倍率时,降低所述某个并发任务对应的数据流入量。
30.在一种可能实现方式中,所述获取各并发任务对对应数据源的历史数据的实际数据消费倍率,包括:
31.针对每个并发任务,获取所述并发系统当前的第一系统时间和所述并发系统启动时的第二系统时间,基于所述第一系统时间和第二系统时间,得到所述并发系统的数据处理时长;
32.获取当前待处理的历史数据的第一时间戳,以及在所述并发系统启动时的待处理历史数据的第二时间戳,基于所述第一时间戳和第二时间戳,得到在所述数据处理时长内,被处理的历史数据对应的时间跨度;
33.基于所述数据处理时长和所述时间跨度,确定所述并发任务的实际数据消费倍率。
34.根据本公开实施例的第二方面,提供一种数据流量控制装置,包括:
35.数据处理场景获取单元,被配置为执行获取当前数据处理场景;所述数据处理场景包括,表征数据输入量大于并发系统的数据处理量的第一场景、表征并发系统中多个并发任务的数据处理进度不一致的第二场景、表征并发系统的数据源发生历史数据堆积的第三场景中至少一种;
36.流量控制策略确定单元,被配置为执行根据所述当前数据处理场景,确定与所述当前数据处理场景对应的流量控制策略。
37.在一种可能实现方式中,所述第一场景对应第一控制策略,所述第二场景对应第二控制策略,所述第三场景对应第三控制策略,所述流量控制策略确定单元,具体被配置为执行若所述当前数据处理场景为所述第一场景,将所述第一控制策略作为与所述当前数据处理场景对应的流量控制策略,当所述流量控制策略为第一控制策略时,基于各并发任务当前处理的数据量确定单位时间数据处理量目标值,基于所述单位时间数据处理量目标值分别对各并发任务的数据输入量进行调节;若所述当前数据处理场景为所述第二场景,将所述第二控制策略作为与所述当前数据处理场景对应的流量控制策略,当所述流量控制策略为第二控制策略时,基于各并发任务的当前周期的数据处理进度,分别控制各并发任务在下一周期的数据处理进度;若所述当前数据处理场景为所述第三场景,将所述第三控制策略作为与所述当前数据处理场景对应的流量控制策略,当所述流量控制策略为第三控制策略时,分别控制各并发任务按照预设数据消费倍率对对应数据源的历史数据进行处理,所述预设数据消费倍率大于1。
38.在一种可能实现方式中,所述流量控制策略确定单元,具体被配置为执行基于所述并发系统的单位时间数据处理总量、所述并发系统对应的数据源包含的分区总数,确定单个分区对应的单位时间数据处理量;所述分区用于暂存数据并向对应并发任务输入数据;基于所述单个分区对应的单位时间数据处理量和各并发任务对应的分区个数,确定各并发任务对应的单位时间数据处理量目标值;按照所述各并发任务对应的单位时间数据处理量目标值,控制各并发任务对应的分区向所述并发任务输入的数据输入流量。
39.在一种可能实现方式中,所述装置还包括:
40.重新确定单元,具体被配置为执行当检测到所述分区总数和/或各并发任务对应的分区个数更新时,基于更新后的分区总数和/或更新后的分区个数,重新确定各并发任务对应的单位时间数据处理量目标值,并按照重新确定的单位时间数据处理量目标值,控制各并发任务对应的分区向所述并发任务输入的数据输入流量。
41.在一种可能实现方式中,所述流量控制策略确定单元,具体被配置为执行根据所述多个并发任务在当前周期的数据处理进度,确定下一周期的目标数据处理进度;在下一周期内,当检测到某个并发任务的数据处理进度超过所述目标数据处理进度时,暂停向所述某个并发任务输入数据流量。
42.在一种可能实现方式中,向各并发任务输入的数据对应有时间戳,所述流量控制策略确定单元,具体被配置为执行获取各并发任务在当前周期处理的数据所对应的最大时间戳;基于所述多个并发任务对应的最大时间戳中的最小值,以及预设的处理进度允许时间差,确定下一周期的目标时间戳,作为所述目标数据处理进度;所述当检测到某个并发任务的数据处理进度超过所述目标数据处理进度时,暂停向所述某个并发任务输入数据流量,包括:当检测到某个并发任务处理的数据所对应的时间戳超过所述目标时间戳时,暂停向所述某个并发任务输入数据流量。
43.在一种可能实现方式中,向各并发任务输入的数据对应有时间戳,所述流量控制策略确定单元,具体被配置为执行获取各并发任务对对应数据源的历史数据的实际数据消费倍率;所述实际数据消费倍率表征所述并发任务在1个单位时间内处理的历史数据所对应时间戳之间的最大时间跨度;当某个并发任务的实际数据消费倍率大于所述预设数据消费倍率时,降低所述某个并发任务对应的数据流入量。
44.在一种可能实现方式中,所述流量控制策略确定单元,具体被配置为执行针对每个并发任务,获取所述并发系统当前的第一系统时间和所述并发系统启动时的第二系统时间,基于所述第一系统时间和第二系统时间,得到所述并发系统的数据处理时长;获取当前待处理的历史数据的第一时间戳,以及在所述并发系统启动时的待处理历史数据的第二时间戳,基于所述第一时间戳和第二时间戳,得到在所述数据处理时长内,被处理的历史数据对应的时间跨度;基于所述数据处理时长和所述时间跨度,确定所述并发任务的实际数据消费倍率。
45.根据本公开实施例的第三方面,提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面的任一种可能实现方式所述的数据流量控制方法。
46.根据本公开实施例的第四方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任一种可能实现方式所述的数据流量控制方法。
47.根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的数据流量控制方法。
48.本公开的实施例提供的技术方案至少带来以下有益效果:通过获取当前数据处理场景,数据处理场景包括,表征数据输入量大于并发系统的数据处理量的第一场景、表征并
发系统中多个并发任务的数据处理进度不一致的第二场景、表征并发系统的数据源发生历史数据堆积的第三场景中至少一种,进而根据当前数据处理场景,确定与当前数据处理场景对应的流量控制策略。如此,可以针对不同数据处理场景采用对应的流量控制策略,基于各流量控制策略中精细化的数据源控制技术,有效解决了并发系统中数据流量控制效果不理想的问题,保证了任务柔性可用,能够在不同场景下保障系统的稳定性,进一步扩展了并发系统的应用场景。
49.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
50.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
51.图1是根据一示例性实施例示出的一种数据流量控制方法的流程图。
52.图2a是根据一示例性实施例示出的一种第一场景下处理流程的示意图。
53.图2b是根据一示例性实施例示出的一种第二场景下处理流程的示意图。
54.图2c是根据一示例性实施例示出的一种第三场景下处理流程的示意图。
55.图3是根据一示例性实施例示出的另一种数据流量控制方法的流程图。
56.图4是根据一示例性实施例示出的一种数据流量控制装置的框图。
57.图5是根据一示例性实施例示出的一种电子设备的内部结构图。
具体实施方式
58.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
59.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。
60.还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
61.图1是根据一示例性实施例示出的一种数据流量控制方法的流程图,该方法可以用于服务器等计算机设备中,如图1所示,该方法包括以下步骤。
62.步骤s110中,获取当前数据处理场景;数据处理场景包括,表征数据输入量大于并发系统的数据处理量的第一场景、表征并发系统中多个并发任务的数据处理进度不一致的第二场景、表征并发系统的数据源发生历史数据堆积的第三场景中至少一种;
63.其中,并发系统可以为flink实时计算引擎,其可以对多数据源输入的数据进行计算作业,并发系统中可以包含多个并发任务,其可以为作业的一个并发,如在分布式场景下可以具有多个并发同时处理数据。数据处理场景可以表征并发系统在作业时对应的数据流
量情况。
64.在实际应用中,采用flink实时计算引擎进行作业时,通过获取当前数据处理场景,可以根据该当前数据处理场景选择其对应的流量控制策略,以进一步基于对应的流量控制策略对不同数据处理场景进行数据流量控制。
65.具体地,数据处理场景可以包括第一场景,即数据输入量大于并发系统的数据处理量,如数据陡增的大流量场景;还可以包括第二场景,即并发系统中多个并发任务的数据处理进度不一致;也可以包括第三场景,即并发系统的数据源发生历史数据堆积,如待消费堆积的历史数据场景。
66.步骤s120中,根据当前数据处理场景,确定与当前数据处理场景对应的流量控制策略;
67.在获取当前数据处理场景后,可以从多个预设流量控制策略中,确定该当前数据处理场景对应的流量控制策略,例如,针对不同数据处理场景可以预设对应的流量控制策略,进而可以根据具体的数据处理场景选择出对应的流量控制策略。
68.在一示例中,第一场景可以对应第一控制策略,第二场景可以对应第二控制策略,第三场景可以对应第三控制策略。
69.上述数据流量控制处理方法,通过获取当前数据处理场景,数据处理场景包括,表征数据输入量大于并发系统的数据处理量的第一场景、表征并发系统中多个并发任务的数据处理进度不一致的第二场景、表征并发系统的数据源发生历史数据堆积的第三场景中至少一种,进而根据当前数据处理场景,确定与当前数据处理场景对应的流量控制策略。如此,可以针对不同数据处理场景采用对应的流量控制策略,基于各流量控制策略中精细化的数据源控制技术,有效解决了并发系统中数据流量控制效果不理想的问题,保证了任务柔性可用,能够在不同场景下保障系统的稳定性,进一步扩展了并发系统的应用场景。
70.在一示例性实施例中,第一场景对应第一控制策略,第二场景对应第二控制策略,第三场景对应第三控制策略,根据当前数据处理场景,确定与当前数据处理场景对应的流量控制策略,包括:若当前数据处理场景为第一场景,将第一控制策略作为与当前数据处理场景对应的流量控制策略,当流量控制策略为第一控制策略时,基于各并发任务当前处理的数据量确定单位时间数据处理量目标值,基于单位时间数据处理量目标值分别对各并发任务的数据输入量进行调节;
71.若当前数据处理场景为第二场景,将第二控制策略作为与当前数据处理场景对应的流量控制策略,当流量控制策略为第二控制策略时,基于各并发任务的当前周期的数据处理进度,分别控制各并发任务在下一周期的数据处理进度;
72.若当前数据处理场景为第三场景,将第三控制策略作为与当前数据处理场景对应的流量控制策略,当流量控制策略为第三控制策略时,分别控制各并发任务按照预设数据消费倍率对对应数据源的历史数据进行处理,预设数据消费倍率大于1。
73.在具体实现中,针对第一场景,可以采用第一控制策略,基于各并发任务当前处理的数据量确定的单位时间数据处理量目标值,进而可以基于单位时间数据处理量目标值分别对各并发任务的数据输入量进行调节;针对第二场景,可以采用第二控制策略,基于各并发任务的当前周期的数据处理进度,分别控制各并发任务在下一周期的数据处理进度;针对第三场景,可以采用第三控制策略,分别控制各并发任务按照倍率大于1的预设数据消费
倍率对对应数据源的历史数据进行处理,从而能够提升集群可用性,在举办大型活动场景下保障任务柔性可用,且针对复杂的大作业消费堆积历史数据时,达到平滑可控的效果。
74.本实施例的技术方案,通过在当前数据处理场景为第一场景,将第一控制策略作为与当前数据处理场景对应的流量控制策略,当流量控制策略为第一控制策略时,基于各并发任务当前处理的数据量确定单位时间数据处理量目标值,基于单位时间数据处理量目标值分别对各并发任务的数据输入量进行调节,若当前数据处理场景为第二场景,将第二控制策略作为与当前数据处理场景对应的流量控制策略,当流量控制策略为第二控制策略时,基于各并发任务的当前周期的数据处理进度,分别控制各并发任务在下一周期的数据处理进度,若当前数据处理场景为第三场景,将第三控制策略作为与当前数据处理场景对应的流量控制策略,当流量控制策略为第三控制策略时,分别控制各并发任务按照预设数据消费倍率对对应数据源的历史数据进行处理,可以基于各流量控制策略中精细化的数据源控制技术,有效解决并发系统中数据流量控制效果不理想的问题,能够在不同场景下保障系统的稳定性。
75.在一示例性实施例中,当流量控制策略为第一控制策略时,基于各并发任务当前处理的数据量确定单位时间数据处理量目标值,基于单位时间数据处理量目标值分别对各并发任务的数据输入量进行调节,包括:基于并发系统的单位时间数据处理总量、并发系统对应的数据源包含的分区总数,确定单个分区对应的单位时间数据处理量;分区用于暂存数据并向对应并发任务输入数据;基于单个分区对应的单位时间数据处理量和各并发任务对应的分区个数,确定各并发任务对应的单位时间数据处理量目标值;按照各并发任务对应的单位时间数据处理量目标值,控制各并发任务对应的分区向并发任务输入的数据输入流量。
76.其中,并发系统的单位时间数据处理总量可以根据并发系统作业的最大负载确定得到,如flink系统作业的qps总值;并发任务的单位时间数据处理量目标值可以为qps值(queries-per-second,每秒查询率),其可以表征在一定时间内所处理的数据流量。
77.作为一示例,并发系统对应的数据源可以具有多个分区,该分区可以用于暂存数据并向对应并发任务输入数据,例如,数据中间件kafka可以为flink系统作业的输入数据源,kafka可以包含多个分区partition,一个或多个分区可以将数据传输至对应的并发任务。
78.在具体实现中,可以基于并发系统的单位时间数据处理总量、并发系统对应的数据源包含的分区总数,确定单个分区对应的单位时间数据处理量,由于单个并发任务可以接收一个或多个分区的数据输入,则可以针对每个并发任务,根据其对应的分区个数和单个分区对应的单位时间数据处理量,计算得到该并发任务的单位时间数据处理量目标值,进而可以按照各并发任务对应的单位时间数据处理量目标值,控制各并发任务对应的分区向并发任务输入的数据输入流量。
79.在一示例中,可以采用如下方式计算得到各并发任务对应的单位时间数据处理量目标值:
80.task qps=总qps/总分区个数*当前task消费的分区个数
81.其中,task为单个并发任务,task qps为该并发任务对应的单位时间数据处理量目标值,当前task消费的分区个数为该并发任务对应的分区个数,总qps为并发系统的单位
时间数据处理总量,总分区个数为并发系统对应的数据源包含的分区总数。
82.在又一示例中,如图2a所示,输入数据源可以包括多个分区,如分区0、分区1,并发系统下可以包括多个并发任务,如并发任务0、并发任务1,中心控制节点可以用于协调各个并发任务节点;图2a左侧表征由于大量数据涌入,给并发系统作业造成巨大压力,导致系统极不稳定、健康状态差,面临使整个实时系统瘫痪的风险,图2a右侧表征通过控制输入数据qps,使得分区传输至并发任务的每秒数据输入量可以基于令牌桶算法进行精准控制,基于令牌桶的智能、匀速限速方式,能够有效地控制数据输入量,从而可以使并发系统作业变得更健康和稳定。
83.相较于传统方法采用反压机制,其被动的阻塞行为使得一旦大量数据进入flink系统作业,将造成雪崩等作业挂掉的问题,本实施例通过采用令牌桶算法进行数据流量控制,可以根据作业的实际运行情况,自动调节每个并发任务的输入数据流量,从而使进入flink系统作业的数据量变得均匀,且匹配flink系统作业的计算能力。
84.本实施例的技术方案,通过基于并发系统的单位时间数据处理总量、并发系统对应的数据源包含的分区总数,确定单个分区对应的单位时间数据处理量,然后基于单个分区对应的单位时间数据处理量和各并发任务对应的分区个数,确定各并发任务对应的单位时间数据处理量目标值,进而按照各并发任务对应的单位时间数据处理量目标值,控制各并发任务对应的分区向并发任务输入的数据输入流量,可以根据作业的实际运行情况,自动调节每个并发任务的数据输入流量,保障了并发系统作业的健康和稳定。
85.在一示例性实施例中,在基于单个分区对应的单位时间数据处理量和各并发任务对应的分区个数,确定各并发任务对应的单位时间数据处理量目标值的步骤之后,还包括:当检测到分区总数和/或各并发任务对应的分区个数更新时,基于更新后的分区总数和/或更新后的分区个数,重新确定各并发任务对应的单位时间数据处理量目标值,并按照重新确定的单位时间数据处理量目标值,控制各并发任务对应的分区向并发任务输入的数据输入流量。
86.在具体实现中,由于可以根据分区个数变化进行智能适配,自动调节当前并发任务的单位时间数据处理量目标值,则可以通过预设时间阈值,对并发系统对应的数据源包含的分区总数、每个并发任务对应的分区个数进行定期检测,以判断是否发生变化,进而可以当检测到分区总数和/或分区个数更新时,重新计算并发任务的单位时间数据处理量目标值并生效。
87.在一示例中,如图2a所示,当新增加分区2时,可以重新计算并发任务1的单位时间数据处理量目标值,在并发系统中可以支持动态的添加上游数据源处理分区,也可以支持删除处理分区。
88.本实施例的技术方案,通过当检测到分区总数和/或各并发任务对应的分区个数更新时,基于更新后的分区总数和/或更新后的分区个数,重新确定各并发任务对应的单位时间数据处理量目标值,并按照重新确定的单位时间数据处理量目标值,控制各并发任务对应的分区向并发任务输入的数据输入流量,可以基于分区总数和/或分区个数的变化情况,自动调节当前并发任务的单位时间数据处理量目标值,能够有效地控制数据输入流量。
89.在一示例性实施例中,当目标流量控制策略为第二控制策略时,基于各并发任务的当前周期的数据处理进度,分别控制各并发任务在下一周期的数据处理进度,包括:根据
多个并发任务在当前周期的数据处理进度,确定下一周期的目标数据处理进度;在下一周期内,当检测到某个并发任务的数据处理进度超过目标数据处理进度时,暂停向某个并发任务输入数据流量。
90.在具体实现中,为了在并发系统作业时保证各并发任务处理的数据时间戳是相近的,避免导致乱序丢数据、作业不推进等问题,可以根据多个并发任务在当前周期的数据处理进度,确定下一周期的目标数据处理进度,进而在下一周期内,针对每个并发任务,可以当检测到该并发任务的数据处理进度超过目标数据处理进度时,暂停并发任务继续进行数据处理,从而保证各并发任务的数据处理进度一致。
91.本实施例的技术方案,通过根据多个并发任务在当前周期的数据处理进度,确定下一周期的目标数据处理进度,进而在下一周期内,当检测到某个并发任务的数据处理进度超过目标数据处理进度时,暂停向某个并发任务输入数据流量,能够保证各并发任务的数据处理进度一致。
92.在一示例性实施例中,向各并发任务输入的数据对应有时间戳;根据多个并发任务在当前周期的数据处理进度,确定下一周期的目标数据处理进度,包括:获取各并发任务在当前周期处理的数据所对应的最大时间戳;基于多个并发任务对应的最大时间戳中的最小值,以及预设的处理进度允许时间差,确定下一周期的目标时间戳,作为目标数据处理进度;当检测到某个并发任务的数据处理进度超过目标数据处理进度时,暂停向某个并发任务输入数据流量,包括:当检测到某个并发任务处理的数据所对应的时间戳超过目标时间戳时,暂停向某个并发任务输入数据流量。
93.在实际应用中,可以通过获取各并发任务在当前周期处理的数据所对应的最大时间戳,其可以表征并发任务在当前处理数据中所接收到的最大数据时间,从多个并发任务对应的最大时间戳中确定最小值,其可以表征多个并发任务中接收到的最慢数据时间,进而可以根据得到的最小值和预设的处理进度允许时间差,计算出下一周期的目标时间戳,作为目标数据处理进度。
94.在得到目标数据处理进度后,由于向各并发任务输入的数据可以对应有时间戳,则当检测到并发任务处理的数据所对应的时间戳超过目标时间戳时,可以暂停向并发任务输入数据流量。
95.具体地,如图2b所示,中心控制节点可以用于协调各并发任务的数据处理进度,通过接收各并发任务汇报的状态信息,如状态信息0、状态信息1等,其中,该状态信息可以包括时间水印,其可以表征并发任务的当前数据处理进度,时间水印中可以携带有时间戳,然后可以根据各并发任务在当前周期的数据处理进度,计算下一个周期的目标水印,进而可以将下一个周期的目标水印下发至各并发任务,在下一周期,各并发任务可以根据目标水印控制该并发任务的数据处理进度。
96.相较于传统处理方法,当多个输入数据源的数据处理进度差距较大时,数据处理进度快的数据源填满了算子,数据处理进度慢的数据源进不去算子,会导致卡死等不稳定问题,本实施例通过主控模式控制各并发任务的数据处理进度,使得数据处理进度更加主动可控。
97.例如,在下一周期内,某个并发任务的数据处理进度超过目标水印,将会暂停继续处理数据,以等待数据处理进度较慢的并发任务(其一般距离目标水印较远),通过数据处
理进度快的并发任务等待数据处理进度慢的并发任务,从而能够缩小并发任务之间的数据处理进度差距。
98.在一示例中,向各并发任务输入的数据可以对应有时间戳,其可以表征时间戳小于该时间戳的数据都已经到达,通过目标水印中携带的目标时间戳,可以基于目标时间戳控制每个并发任务对输入数据的处理进度,即当检测到并发任务处理的数据所对应的时间戳超过目标时间戳时,可以暂停向并发任务输入数据流量。
99.可以采用如下方式计算得到目标水印:
100.目标水印=最慢的时间水印

t/2
101.其中,最慢的时间水印可以为多个并发任务对应的最大时间戳中的最小值,

t为允许的最大时间差(即预设的处理进度允许时间差),可以预设为10分钟,用户可以配置各并发任务容忍的最大时间差。
102.在并发系统内部,通过作为主节点的中心控制节点接收各并发任务的数据时间,可以根据数据处理进度最慢的并发任务、最大时间差等因素计算出下一周期的预测时间值(即目标数据处理进度),在下一周期内一旦作业超过预测时间值则进行限制,从而可以保证各并发任务的数据处理进度一致。
103.本实施例的技术方案,通过获取各并发任务在当前周期处理的数据所对应的最大时间戳,进而基于多个并发任务对应的最大时间戳中的最小值,以及预设的处理进度允许时间差,确定下一周期的目标时间戳,作为目标数据处理进度,当检测到某个并发任务处理的数据所对应的时间戳超过目标时间戳时,暂停向某个并发任务输入数据流量,可以根据数据处理进度最慢的并发任务、最大时间差等因素得到下一周期的目标时间戳,保证了各并发任务的数据处理进度一致。
104.在一示例性实施例中,向各并发任务输入的数据对应有时间戳,当流量控制策略为第三控制策略时,分别控制各并发任务按照预设数据消费倍率对对应数据源的历史数据进行处理,包括:获取各并发任务对对应数据源的历史数据的实际数据消费倍率;实际数据消费倍率表征并发任务在1个单位时间内处理的历史数据所对应时间戳之间的最大时间跨度;当某个并发任务的实际数据消费倍率大于预设数据消费倍率时,降低某个并发任务对应的数据流入量。
105.其中,预设数据消费倍率可以通过用户配置得到,如数据消费倍率n,即1个单位时间消费n个单位时间的历史数据。
106.在具体实现中,针对处理堆积的历史数据,可以通过获取各并发任务对对应数据源的历史数据的实际数据消费倍率,进而当某个并发任务的实际数据消费倍率大于预设数据消费倍率时,可以降低某个并发任务对应的数据流入量。
107.例如,通过数据精准回放技术,用户可以配置预设数据消费倍率为5,并发系统可以控制各并发任务,使其经过系统时间1分钟消费5分钟的历史数据,一旦某个并发任务消费过快则会进行限制,从而能够保证控制流量,又避免了历史数据消费进步度不一致。
108.在一示例中,如图2c所示,预设数据消费倍率为2时,在处理堆积的历史数据阶段,并发系统中t时间可以对应处理输入数据源各分区中2t时间的历史数据,通过一段时间对历史数据的处理,可以在实时数据处理阶段,使得并发系统中t时间对应处理输入数据源各分区中t时间的实时数据,有效地控制了历史数据消费。
109.例如,8点时flink系统作业启动,其需要处理kafka中7点的历史数据,可以预设数据消费倍率为2,即flink系统作业可以在一分钟消费kafka两分钟的数据,则可以在9点时转成实时消费kafka 9点的实时数据,即flink系统作业可以处理kafka当前时间的实时数据。
110.本实施例的技术方案,通过获取各并发任务对对应数据源的历史数据的实际数据消费倍率,进而当某个并发任务的实际数据消费倍率大于预设数据消费倍率时,降低某个并发任务对应的数据流入量,可以在某个并发任务消费过快时进行限制,能够保证历史数据消费进步度一致。
111.在一示例性实施例中,获取各并发任务对对应数据源的历史数据的实际数据消费倍率,包括:针对每个并发任务,获取并发系统当前的第一系统时间和并发系统启动时的第二系统时间,基于第一系统时间和第二系统时间,得到并发系统的数据处理时长;获取当前待处理的历史数据的第一时间戳,以及在并发系统启动时的待处理历史数据的第二时间戳,基于第一时间戳和第二时间戳,得到在数据处理时长内,被处理的历史数据对应的时间跨度;基于数据处理时长和时间跨度,确定并发任务的实际数据消费倍率。
112.在具体实现中,向各并发任务输入的数据可以对应有时间戳,基于该时间戳,可以采用如下方式计算并发任务在1个单位时间内处理的历史数据所对应时间戳之间的最大时间跨度(即实际数据消费倍率):
[0113][0114]
其中,currentkafkatime为当前待处理的历史数据的第一时间戳,即向各并发任务输入的数据对应的时间戳,如当前消费的kafka数据的时间戳,basekafkatime为在并发系统启动时的待处理历史数据的第二时间戳,如flink系统作业启动时消费的kafka数据的时间戳,currentsystemtime为当前的第一系统时间,如flink系统作业的当前时间,basesystemtime为并发系统启动时的第二系统时间,如flink系统作业启动时的时间。
[0115]
本实施例的技术方案,通过针对每个并发任务,获取并发系统当前的第一系统时间和并发系统启动时的第二系统时间,基于第一系统时间和第二系统时间,得到并发系统的数据处理时长,然后获取当前待处理的历史数据的第一时间戳,以及在并发系统启动时的待处理历史数据的第二时间戳,基于第一时间戳和第二时间戳,得到在数据处理时长内,被处理的历史数据对应的时间跨度,进而基于数据处理时长和时间跨度,确定并发任务的实际数据消费倍率,可以通过确定每个并发任务的实际数据消费倍率,以进一步根据预设数据消费倍率进行有效控制。
[0116]
图3是根据一示例性实施例示出的另一种数据流量控制方法的流程图,如图3所示,该方法用于服务器等计算机设备中,包括以下步骤。
[0117]
在步骤s310中,获取当前数据处理场景;所述数据处理场景包括,表征数据输入量大于并发系统的数据处理量的第一场景、表征并发系统中多个并发任务的数据处理进度不一致的第二场景、表征并发系统的数据源发生历史数据堆积的第三场景中至少一种。在步骤s320a中,所述第一场景对应第一控制策略,若所述当前数据处理场景为所述第一场景,将所述第一控制策略作为与所述当前数据处理场景对应的流量控制策略。在步骤s3201中,基于所述并发系统的单位时间数据处理总量、所述并发系统对应的数据源包含的分区总
数,确定单个分区对应的单位时间数据处理量;所述分区用于暂存数据并向对应并发任务输入数据。在步骤s3202中,基于所述单个分区对应的单位时间数据处理量和各并发任务对应的分区个数,确定各并发任务对应的单位时间数据处理量目标值。在步骤s3203中,按照所述各并发任务对应的单位时间数据处理量目标值,控制各并发任务对应的分区向所述并发任务输入的数据输入流量。在步骤s320b中,所述第二场景对应第二控制策略,若所述当前数据处理场景为所述第二场景,将所述第二控制策略作为与所述当前数据处理场景对应的流量控制策略。在步骤s3211中,根据所述多个并发任务在当前周期的数据处理进度,确定下一周期的目标数据处理进度。在步骤s3212中,在下一周期内,当检测到某个并发任务的数据处理进度超过所述目标数据处理进度时,暂停向所述某个并发任务输入数据流量。在步骤s320c中,所述第三场景对应第三控制策略,若所述当前数据处理场景为所述第三场景,将所述第三控制策略作为与所述当前数据处理场景对应的流量控制策略。在步骤s3221中,获取各并发任务对对应数据源的历史数据的实际数据消费倍率;所述实际数据消费倍率表征所述并发任务在1个单位时间内处理的历史数据所对应时间戳之间的最大时间跨度。在步骤s3222中,当某个并发任务的实际数据消费倍率大于所述预设数据消费倍率时,降低所述某个并发任务对应的数据流入量。需要说明的是,上述步骤的具体限定可以参见上文对一种数据流量控制方法的具体限定,在此不再赘述。
[0118]
应该理解的是,虽然图1和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0119]
图4是根据一示例性实施例示出的一种数据流量控制装置框图。参照图4,该装置包括:
[0120]
数据处理场景获取单元401,被配置为执行获取当前数据处理场景;所述数据处理场景包括,表征数据输入量大于并发系统的数据处理量的第一场景、表征并发系统中多个并发任务的数据处理进度不一致的第二场景、表征并发系统的数据源发生历史数据堆积的第三场景中至少一种;
[0121]
流量控制策略确定单元402,被配置为执行根据所述当前数据处理场景,确定与所述当前数据处理场景对应的流量控制策略。
[0122]
在一种可能实现方式中,所述第一场景对应第一控制策略,所述第二场景对应第二控制策略,所述第三场景对应第三控制策略,所述流量控制策略确定单元402,具体被配置为执行若所述当前数据处理场景为所述第一场景,将所述第一控制策略作为与所述当前数据处理场景对应的流量控制策略,当所述流量控制策略为第一控制策略时,基于各并发任务当前处理的数据量确定单位时间数据处理量目标值,基于所述单位时间数据处理量目标值分别对各并发任务的数据输入量进行调节;若所述当前数据处理场景为所述第二场景,将所述第二控制策略作为与所述当前数据处理场景对应的流量控制策略,当所述流量控制策略为第二控制策略时,基于各并发任务的当前周期的数据处理进度,分别控制各并
发任务在下一周期的数据处理进度;若所述当前数据处理场景为所述第三场景,将所述第三控制策略作为与所述当前数据处理场景对应的流量控制策略,当所述流量控制策略为第三控制策略时,分别控制各并发任务按照预设数据消费倍率对对应数据源的历史数据进行处理,所述预设数据消费倍率大于1。
[0123]
在一种可能实现方式中,所述流量控制策略确定单元402,具体被配置为执行基于所述并发系统的单位时间数据处理总量、所述并发系统对应的数据源包含的分区总数,确定单个分区对应的单位时间数据处理量;所述分区用于暂存数据并向对应并发任务输入数据;基于所述单个分区对应的单位时间数据处理量和各并发任务对应的分区个数,确定各并发任务对应的单位时间数据处理量目标值;按照所述各并发任务对应的单位时间数据处理量目标值,控制各并发任务对应的分区向所述并发任务输入的数据输入流量。
[0124]
在一种可能实现方式中,所述数据流量控制装置,还包括:
[0125]
重新确定单元,具体被配置为执行当检测到所述分区总数和/或各并发任务对应的分区个数更新时,基于更新后的分区总数和/或更新后的分区个数,重新确定各并发任务对应的单位时间数据处理量目标值,并按照重新确定的单位时间数据处理量目标值,控制各并发任务对应的分区向所述并发任务输入的数据输入流量。
[0126]
在一种可能实现方式中,所述流量控制策略确定单元402,具体被配置为执行根据所述多个并发任务在当前周期的数据处理进度,确定下一周期的目标数据处理进度;在下一周期内,当检测到某个并发任务的数据处理进度超过所述目标数据处理进度时,暂停向所述某个并发任务输入数据流量。
[0127]
在一种可能实现方式中,向各并发任务输入的数据对应有时间戳;所述流量控制策略确定单元402,具体被配置为执行获取各并发任务在当前周期处理的数据所对应的最大时间戳;基于所述多个并发任务对应的最大时间戳中的最小值,以及预设的处理进度允许时间差,确定下一周期的目标时间戳,作为所述目标数据处理进度;所述当检测到某个并发任务的数据处理进度超过所述目标数据处理进度时,暂停向所述某个并发任务输入数据流量,包括:当检测到某个并发任务处理的数据所对应的时间戳超过所述目标时间戳时,暂停向所述某个并发任务输入数据流量。
[0128]
在一种可能实现方式中,向各并发任务输入的数据对应有时间戳;所述流量控制策略确定单元402,具体被配置为执行获取各并发任务对对应数据源的历史数据的实际数据消费倍率;所述实际数据消费倍率表征所述并发任务在1个单位时间内处理的历史数据所对应时间戳之间的最大时间跨度;当某个并发任务的实际数据消费倍率大于所述预设数据消费倍率时,降低所述某个并发任务对应的数据流入量。
[0129]
在一种可能实现方式中,所述流量控制策略确定单元402,具体被配置为执行针对每个并发任务,获取所述并发系统当前的第一系统时间和所述并发系统启动时的第二系统时间,基于所述第一系统时间和第二系统时间,得到所述并发系统的数据处理时长;获取当前待处理的历史数据的第一时间戳,以及在所述并发系统启动时的待处理历史数据的第二时间戳,基于所述第一时间戳和第二时间戳,得到在所述数据处理时长内,被处理的历史数据对应的时间跨度;基于所述数据处理时长和所述时间跨度,确定所述并发任务的实际数据消费倍率。
[0130]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法
的实施例中进行了详细描述,此处将不做详细阐述说明。
[0131]
图5是根据一示例性实施例示出的一种用于数据流量控制的电子设备500的框图。例如,电子设备500可以为服务器。参照图5,电子设备500包括处理组件520,其进一步包括一个或多个处理器,以及由存储器522所代表的存储器资源,用于存储可由处理组件520的执行的指令,例如应用程序。存储器522中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件520被配置为执行指令,以执行上述方法。
[0132]
电子设备500还可以包括:电源组件524被配置为执行电子设备500的电源管理,有线或无线网络接口526被配置为将电子设备500连接到网络,和输入输出(i/o)接口528。电子设备500可以操作基于存储在存储器522的操作系统,例如windows server,mac os x,unix,linux,freebsd或类似。
[0133]
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器522,上述指令可由电子设备500的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0134]
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由电子设备500的处理器执行以完成上述方法。
[0135]
需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
[0136]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0137]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献