CN117914783B - 流量数据的实时处理方法、装置、设备及存储介质 - Google Patents
流量数据的实时处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117914783B CN117914783B CN202410316102.8A CN202410316102A CN117914783B CN 117914783 B CN117914783 B CN 117914783B CN 202410316102 A CN202410316102 A CN 202410316102A CN 117914783 B CN117914783 B CN 117914783B
- Authority
- CN
- China
- Prior art keywords
- flow data
- processing
- hash
- under
- session
- 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 452
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 31
- 238000009826 distribution Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 15
- 238000003672 processing method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000009827 uniform distribution Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007499 fusion processing Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种流量数据的实时处理方法、装置、设备及存储介质,属于数据处理技术领域。该方法包括:获取至少一个虚拟局域网内不同会话对应产生的流量数据;确定每个流量数据对应的目标主机地址,并基于预设的一致性哈希函数,对各个目标主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,其中,同一会话下的流量数据之间的哈希索引值相同;在预设的哈希环上,根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点中;通过各个处理节点对相应会话下的流量数据进行处理,得到各个会话下的流量数据处理结果。本申请能够实现流量数据地快速处理,提高了流量数据的处理效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种流量数据的实时处理方法、装置、设备及存储介质。
背景技术
随着互联网技术地不断发展,单一局域网已经无法满足人们的通信需求,多个虚拟局域网(VLAN)下的网络会话逐渐成为通信主流,其中,网络设备例如主机之间的交互过程称为网络会话,网络会话可以是产生于单个虚拟局域网内的,也可以是产生于不同虚拟局域网之间的,由于网络会话会产生大量的流量数据,因此,对网络流量数据进行实时处理至关重要。
相关技术中,首先基于不同的虚拟局域网环境对模型进行预先训练,接着使用训练好的模型将流量数据分配至对应的处理节点进行数据处理。然而,在数据规模量较大的情况下,部分处理节点容易过载,并且在对流量数据处理的实时性要求较高的情况下,所建立的流量处理方案难以考虑到多VLAN的情况,因此模型无法及时处理流量数据,也即当前的模型无法对多VLAN情况下所产生的流量数据进行及时处理,泛化性低,最终导致了流量数据处理效率低下。
发明内容
本申请实施例的主要目的在于提出一种流量数据的实时处理方法、装置、设备及存储介质,旨在实现流量数据地快速处理,以提高流量数据的处理效率。
为实现上述目的,本申请实施例的第一方面提出了一种流量数据的实时处理方法,方法包括:
获取至少一个虚拟局域网内不同会话对应产生的流量数据,其中,每一会话下包含有至少一个流量数据,且相同的会话发生在相同的主机之间;
确定每个流量数据对应的目标主机地址,并基于预设的一致性哈希函数,对各个目标主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,其中,同一会话下的流量数据之间的哈希索引值相同;
在预设的哈希环上,根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点中,其中,各个处理节点基于对应的不同第一分配位置均匀分布在哈希环上;
通过各个处理节点对相应会话下的流量数据进行处理,得到各个会话下的流量数据处理结果。
在一些实施例中,确定每个流量数据对应的目标主机地址,包括:
解析多个流量数据,得到每一流量数据在不同类别下的初始地址,并确定初始地址在主机标识位上对应的信息为主机地址;
选择多个流量数据在同一类别下的初始地址;
针对每一流量数据,从同一类别下的初始地址中提取得到对应的主机地址,并将主机地址作为流量数据对应的目标主机地址。
在一些实施例中,在得到每一流量数据在不同类别下的初始地址之后,还包括:
分别从不同类别下的初始地址中提取得到对应的多个主机地址;
基于预先训练好的哈希模型分别计算不同类别下的多个主机地址在哈希环上对应的分布位置,得到不同类别下的多个负载均衡偏差结果;
确定最小的负载均衡偏差结果对应类别下的主机地址为目标主机地址。
在一些实施例中,在获取至少一个虚拟局域网内不同会话对应产生的流量数据之后,还包括:
解析多个流量数据,得到每一流量数据在不同类别下的初始地址,从多个初始地址中随机选取一个主机标识位上对应的信息作为目标主机地址;
基于预设的一致性哈希函数,对各个目标主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,其中,同一会话下的流量数据之间的哈希索引值不同;
在预设的哈希环上,根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点中,其中,各个处理节点基于对应的不同第一分配位置均匀分布在哈希环上;
通过各个处理节点对相应会话下的流量数据进行处理,得到各个会话下的流量数据处理结果。
在一些实施例中,在得到各个会话下的流量数据处理结果之后,还包括:
确定多个初始地址均相同的第一流量数据处理结果和第二流量数据处理结果;
合并第一流量数据处理结果和第二流量数据处理结果,得到同一会话下的总流量数据处理结果,并将总流量数据处理结果存储于预设的总存储容器中。
在一些实施例中,在获取至少一个虚拟局域网内不同会话对应产生的流量数据之前,还包括:
获取处理节点对应的节点信息;
基于一致性哈希函数,计算节点信息在预设的环形空间中的第一分配位置;
根据第一分配位置,将处理节点映射到环形空间中,得到哈希环。
在一些实施例中,基于预设的一致性哈希函数,对各个目标主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,包括:
基于一致性哈希函数,对各个目标主机地址进行哈希计算,得到每一流量数据对应的哈希值;
根据哈希环上所有处理节点的数量,确定模数;
基于模数,对哈希值进行取模运算,得到流量数据对应的哈希索引值。
在一些实施例中,根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点中,包括:
根据哈希索引值的大小,确定哈希索引值在哈希环上对应的第二分配位置;
沿着预设的分配方向,从多个第一分配位置中确定与第二分配位置距离最近的目标分配位置;
将每一会话下的流量数据均匀索引到目标分配位置对应的处理节点中。
在一些实施例中,每一处理节点包括对应的存储容器;
在根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点之前,还包括:
获取每一存储容器的已用空间值;
根据已用空间值,计算得到所有存储容器对应的总已用空间值,并计算总已用空间值与存储容器的总数量的比值,得到存储均值;
确定已用空间值超过存储均值至少一倍的处理节点为过载处理节点,确定已用空间值低于存储均值至少一倍的处理节点为空闲处理节点;
将所有存储容器中的流量数据处理结果均存储至目标存储容器中,以清空所有存储容器中存储的流量数据处理结果;
基于过载处理节点和/或空闲处理节点,对哈希环上的处理节点进行重新调整。
在一些实施例中,基于过载处理节点和/或空闲处理节点,对哈希环上的处理节点进行重新调整,包括:
计算过载处理节点对应的已用空间值和存储均值之间的第一存储差值;
计算第一存储差值和预设的存储阈值之间的第一比值;
根据第一比值,确定需要增加的新增处理节点的数量;
根据预设的添加方向,基于数量在过载处理节点之后依次增加新增处理节点。
在一些实施例中,基于过载处理节点和/或空闲处理节点,对哈希环上的处理节点进行重新调整,还包括:
计算空闲处理节点对应的已用空间值和存储均值之间的第二存储差值;
当第二存储差值超过预设的存储阈值时,删除空闲处理节点。
为实现上述目的,本申请实施例的第二方面提出了一种流量数据的实时处理装置,装置包括:
获取模块,用于获取至少一个虚拟局域网内不同会话对应产生的流量数据,其中,每一会话下包含有至少一个流量数据,且相同的会话发生在相同的主机之间;
计算模块,用于确定每个流量数据对应的目标主机地址,并基于预设的一致性哈希函数,对各个目标主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,其中,同一会话下的流量数据之间的哈希索引值相同;
索引模块,用于在预设的哈希环上,根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点中,其中,各个处理节点基于对应的不同第一分配位置均匀分布在哈希环上;
处理模块,用于通过各个处理节点对相应会话下的流量数据进行处理,得到各个会话下的流量数据处理结果。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面的方法。
为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述第一方面的方法。
本申请实施例中通过获取至少一个虚拟局域网内的多个主机之间产生的流量数据,而相同的会话下包含有至少一个流量数据,且相同会话下包含相同的主机,随后确定每个流量数据相关的主机地址,并基于预设的一致性哈希函数,对各个主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,而相同的会话下的流量数据之间的哈希索引值相同,因此,根据哈希计算的特性,一旦存在大量的流量数据,那么大量的流量数据相应的哈希索引值之间就是均匀分布的,且计算采用主机地址,无论会话相关的主机来自哪一个虚拟局域网都能进行处理;接着,在预设哈希环上,由于各个处理节点基于对应的哈希值均匀分布在哈希环上,所以根据哈希索引值的大小,可以为每个会话下的流量数据均匀索引到对应哈希值下的处理节点中,这样就实现了流量的均匀分配,每个会话下的流量数据都会被分配到相同的处理节点中进行处理,后续不再需要对所有结果进行遍历就可以得到各个会话下的流量数据处理结果,因此本申请实施例能提高流量数据的处理效率。
附图说明
图1是本申请实施例提供的流量数据的实时处理装置的应用场景示意图;
图2是本申请实施例提供的流量数据的实时处理方法的一个可选的流程图;
图3是图2中的步骤101之前的一个实现流程图;
图4是图2中的步骤102的一个实现流程图;
图5是图4中的步骤301之后的一个实现流程图;
图6是图2中的步骤102的另一个实现流程图;
图7是图2中的步骤101之后的一个实现流程图;
图8是图2中的步骤103的一个实现流程图;
图9是本申请实施例提供的流量数据的实时处理方法的一个可选的流量数据索引示意图;
图10是图2中的步骤103之前的一个实现流程图;
图11是图10中的步骤805的一个实现流程图;
图12是图10中的步骤805的另一个实现流程图;
图13是图7中的步骤604之后的一个实现流程图;
图14是本申请实施例提供的流量数据的实时处理装置的一个可选的功能模块示意图;
图15是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
虚拟局域网(VLAN),是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网,不同的虚拟局域网分配有不同的虚拟局域网标识符(VLAN ID)。
网络会话,也称会话,是指在计算机网络中,两个或多个网络设备之间进行的一系列交互和通信活动。在网络会话中,设备之间通过网络传输数据、进行信息交换或者执行特定的操作,网络会话可以包括用户登录、网页浏览、文件传输、电子邮件通信等各种网络活动,在网络通信中,会话的建立和维护通常需要遵循特定的协议和规范,以确保数据传输的安全、可靠和有效性。
随着互联网技术地不断发展,单一局域网已经无法满足人们的通信需求,多个虚拟局域网下的网络会话逐渐成为通信主流,其中,网络设备例如主机之间的交互过程称为网络会话,网络会话可以是产生于单个虚拟局域网内的,也可以是产生于不同虚拟局域网之间的,由于网络会话会产生大量的流量数据,因此,对网络流量数据进行实时处理至关重要。
相关技术中,首先基于不同的虚拟局域网环境对模型进行预先训练,接着使用训练好的模型将流量数据分配至对应的处理节点进行数据处理。然而,在数据规模量较大的情况下,部分处理节点容易过载,并且在对流量数据处理的实时性要求较高的情况下,所建立的流量处理方案难以考虑到多VLAN的情况,因此模型无法及时处理流量数据,也即当前的模型无法对多VLAN情况下所产生的流量数据进行及时处理,泛化性低,最终导致了流量数据处理效率低下。
基于此,本申请实施例提供了一种流量数据的实时处理方法、装置、设备及存储介质,旨在实现流量数据地快速处理,以提高流量数据的处理效率。
需要说明的是,在本申请实施例中,当涉及到需要根据用户基础信息、用户地理位置信息等与用户身份或特性相关的信息时,都会先获得用户的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取用户的敏感个人信息时,会首先获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的数据,例如,在获取流量数据之前,需要取得发送该流量数据的主机对应的操作人员同意,否则无法获取该流量数据。
本申请实施例提供的流量数据的实时处理方法、装置、设备及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的流量数据的实时处理装置的应用场景。
如图1所示,图1是本申请实施例提供的流量数据的实时处理装置的应用场景示意图,其中,本申请实施例提供的流量数据的实时处理方法可以应用于该流量数据的实时处理装置中,流量数据的实时处理方法将在之后进行说明。如图1所示,在一应用场景中,流量数据的实时处理装置可以接收多个流量数据,其中,流量数据A、流量数据B和流量数据C可以来自于同一虚拟局域网,也可以分别来自于不同的虚拟局域网;接着,流量数据的实时处理装置可以基于本申请实施例提供的流量数据的实时处理方法将流量数据A、流量数据B和流量数据C均匀分配至哈希环上的多个不同处理节点中,其中,处理节点可以是具备处理流量数据能力的服务器。如此,当产生大量的流量数据时,各处理节点均能够在各自的负载范围内处理分配到的流量数据,避免了部分处理节点过载造成流量数据的处理效率低下。
接着,具体通过如下实施例说明本申请实施例中的流量数据的实时处理方法。
在本申请实施例中,将从流量数据的实时处理装置的维度进行描述,该流量数据的实时处理装置可以集成在计算机设备,如服务器中。如图2所示,图2是本申请实施例提供的流量数据的实时处理方法的一个可选的流程图,图2中的方法可以包括但不限于包括步骤101至步骤104,流量数据的实时处理装置(为便于描述,以下简称“处理装置”)在执行流量数据的实时处理方法时,具体流程如下,需要首先说明的是,本实施例对图2中步骤101至步骤104的顺序不做具体限定,可以根据实际需求调整步骤顺序或者减少、增加某些步骤。
步骤101,获取至少一个虚拟局域网内不同会话对应产生的流量数据,其中,每一会话下包含有至少一个流量数据,且相同的会话发生在相同的主机之间。
以下对步骤101进行详细描述。
在本申请实施例中,流量数据的实时处理装置可以首先获取多个流量数据,以便后续对这些流量数据进行特征处理,并将特征处理后的流量数据分配到对应的处理节点中以进行数据处理。其中,同一会话可以发生于同一虚拟局域网内,也可以发生于不同的虚拟局域网内,例如,虚拟局域网A包括计算机a和计算机b,在时间段T1内,计算机a和计算机b进行通信,则时间段T1内产生的流量数据均来自于同一会话;或者,另一虚拟局域网B包括计算机c,在时间段T2内,计算机a和计算机c进行通信,则时间段T2内产生的流量数据也均来自于同一会话。
进一步地,可以通过网络抓包工具例如网络封包分析软件(Wireshark)、网络数据采集分析工具(Tcpdump)等对流量数据进行抓取,或者,可以通过虚拟局域网中部署的路由器、交换机等对流量数据的统计获取流量数据,当然,还可以基于应用程序编程接口(API)来实现流量数据的获取,接着,将处理装置与上述获取流量数据的装置连接,以获取会话产生的流量数据。需要说明的是,流量数据的获取方式有多种,本申请实施例并不做具体地限制。
如图3所示,图3是图2中的步骤101之前的一个实现流程图,在获取至少一个虚拟局域网内不同会话对应产生的流量数据之前,包括以下步骤201至步骤203。
步骤201,获取处理节点对应的节点信息。
步骤202,基于一致性哈希函数,计算节点信息在预设的环形空间中的第一分配位置。
步骤203,根据第一分配位置,将处理节点映射到环形空间中,得到哈希环。
以下对步骤201至步骤203进行详细描述。
在本申请实施例中,多个处理节点可以通过映射的方式部署到预设的环形空间上以形成哈希环,以便后续基于该哈希环上的多个处理节点,对流量数据进行数据处理,其中,环形空间的范围通常根据预设的一致性哈希函数的不同而随之变化。
进一步地,在定义环形空间之前,首先会根据预先选定的一致性哈希函数确定该环形空间的范围。例如,当一致性哈希函数为安全散列算法(SHA-256)时,环形空间的范围为[0,2256-1],又例如,当一致性哈希函数为另一安全散列算法(MD5)时,环形空间的范围为[0,2128-1],为了便于计算,本申请实施例中的环形空间定义为整数范围[0,232-1]。
进一步地,在完成环形空间的范围定义后,接着获取参与处理流量数据的处理节点对应的节点信息,处理节点可以是计算机、计算机群或其他智能处理设备,节点信息可以是处理节点对应的唯一标识符、唯一主机地址或其他状态信息,之后,基于预设的一致性哈希函数对节点信息进行哈希计算,得到节点信息对应的第一分配位置,并基于该第一匹配为止将处理节点映射到环形空间上,得到哈希环。
示例性地,将处理节点A的唯一序列号ABC12345作为节点信息,使用SHA-256函数对该唯一序列号进行哈希计算,得到哈希结果a,根据将该哈希结果a在环形空间上找到对应的映射位置,以该映射位置作为节点信息对应的第一分配位置,基于该第一分配位置,将处理节点映射到环形空间,当所有的处理节点均映射完毕时,得到哈希环。
步骤102,确定每个流量数据对应的目标主机地址,并基于预设的一致性哈希函数,对各个目标主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,其中,同一会话下的流量数据之间的哈希索引值相同。
以下对步骤102进行详细描述。
在本申请实施例中,在得到哈希环以及获取到需要处理的流量数据后,处理装置首先会确定每个流量数据对应的目标主机地址,以便之后根据目标主机地址计算得到对应的哈希索引值,并根据该哈希索引值将流量数据索引到对应的处理节点中进行处理。其中,目标主机地址是基于流量数据解析的初始地址得到的,由于初始地址的位数通常较长,在产生大量数据流量的情况下,处理装置直接使用初始地址对流量数据进行哈希计算会导致计算时间过长,进而导致流量数据不能及时分配到对应的处理节点上进行后续的数据处理。因此,本申请实施例使用目标主机地址进行哈希计算,在处理装置同时接收大量流量数据,尤其是来自于多个不同虚拟局域网下的流量数据时,处理装置能够基于目标主机地址将流量数据快速分配到对应的处理节点中,以提高流量数据的处理速度,提高流量数据的处理效率。
进一步地,由于同一会话下流量数据的初始地址即源IP地址、目的IP地址、目的MAC地址、源MAC地址、源端口号、目的端口号、时间戳以及VLAN ID均相同,因此,同一会话下的流量数据在根据目标主机地址进行计算得到的哈希索引值均相同,如此,同一会话下流量数据能够分配到同一处理节点中进行后续的数据处理,进而,当数据处理完毕后,可以将同一会话对应的处理结果进行统一存储,保证了同一会话下流量数据的唯一性,处理装置在同一时间段内处理的流量数据只会出现在同一存储设备中,后续在统一合并会话处理结果时,无需重复遍历每一处理结果,由此进一步加快了流量数据地实时处理效率。
如图4所示,图4是图2中的步骤102的一个实现流程图,确定每个流量数据对应的目标主机地址,包括以下步骤301至步骤303。
步骤301,解析多个流量数据,得到每一流量数据在不同类别下的初始地址,并确定初始地址在主机标识位上对应的信息为主机地址。
步骤302,选择多个流量数据在同一类别下的初始地址。
步骤303,针对每一流量数据,从同一类别下的初始地址中提取得到对应的主机地址,并将主机地址作为流量数据对应的目标主机地址。
以下对步骤301至步骤303进行详细描述。
在本申请实施例中,在获取得到流量数据后,处理装置首先对流量数据进行解析,得到初始地址,并从初始地址中提取得到目标主机地址。示例性地,处理装置首先对获取到的流量数据a进行解析,得到流量数据a在不同类别下的初始地址,初始地址包括源IP地址、目的IP地址、目的MAC地址、源MAC地址、源端口号、目的端口号、时间戳以及VLAN ID。其中,每一初始地址都包括网络标识位和主机标识位,例如,流量数据a的源IP地址为192.168.0.1,“.”为分隔符,所有分隔符前为网络标识位,网络标识位上的信息为网络地址,其中,最后一位分隔符后为主机标识位,主机标识位上的信息为主机地址,在上述例子中,“1”即为流量数据a源IP地址对应的主机地址。
进一步地,可以统一选择其中一个类别的初始地址,以提取其主机地址作为对应流量数据的目标主机地址。即,对于所有的流量数据,均选择目的IP地址这一初始地址,并确定目的IP地址对应的主机地址为目标主机地址。示例性地,对于流量数据b和流量数据c,均确定流量数据b和流量数据c的目的IP地址对应的主机地址为目标主机地址,如此,当时流量数据b和流量数据c需要发往的目的主机不同时,其对应的目标主机地址自然不同,进而处理装置在之后分别根据流量数据b和流量数据c对应的目标主机地址计算时,所分配的处理节点随之不同,当需要处理的流量数据数量较大时,处理装置能够根据流量数据本身携带的信息对流量数据进行分配,而不需要额外训练数据预测模型,并基于数据预测模型对流量数据复杂的数据特征处理来实现流量数据的分配,如此,能够实现流量数据的快速以及均衡分配。
如图5所示,图5是图4中的步骤301之后的一个实现流程图,在得到每一流量数据在不同类别下的初始地址之后,还包括以下步骤401至步骤403。
步骤401,分别从不同类别下的初始地址中提取得到对应的多个主机地址。
步骤402,基于预先训练好的哈希模型分别计算不同类别下的多个主机地址在哈希环上对应的分布位置,得到不同类别下的多个负载均衡偏差结果。
步骤403,确定最小的负载均衡偏差结果对应类别下的主机地址为目标主机地址。
以下对步骤401至步骤403进行详细描述。
在本申请实施例中,处理装置可以在不同的时间段对流量数据进行特征处理,除了每一时间段内都选择同一类别下的主机地址作为目标主机地址外,处理装置每次进行特征处理的目标主机地址也可以是从不同类别的初始地址中得到的。基于此,可以将预先训练好的哈希模型设置在预测模块中,并将该预测模块设置于处理装置中,处理装置在对流量数据进行特征处理的同时,可以利用哈希模型对下一批要进行特征处理的流量数据在不同类别下的主机地址进行分布位置计算,并选择分布位置最为均匀的主机地址作为处理装置下一次计算时的目标主机地址。
示例性地,处理装置在对多个流量数据进行特征处理时包括T1和T2两个时间段,在T1时间段内,处理装置选择每一流量数据目的IP地址对应的主机地址作为目标主机地址a进行特征处理,与此同时,哈希模型分别计算当流量数据以源IP地址、目的IP地址、目的MAC地址、源MAC地址、源端口号、目的端口号、时间戳以及VLAN ID对应的主机地址作为目标主机地址时的负载均衡偏差结果,其中,负载均衡偏差结果用于表征流量数据被分配到不同处理节点的分布情况,负载均衡偏差结果越小表示流量数据分配得越均衡,假设哈希模型计算得到在T2时间段内,每一流量数据均使用源IP地址对应的主机地址(目标主机地址b)进行特征处理时对应的负载均衡偏差结果最小,则在T2时间段内,处理装置将根据目标主机地址b对每一流量数据进行特征处理。
可以理解的是,处理装置预先对下一次特征处理中所使用到的目标主机地址进行计算,能够使流量数据在每一次的特征处理中都能够最大程度地均匀分配到对应的处理节点中。另外,相关技术中的数据预测模型通过对流量数据的数据预处理、数据特征提取转换、数据特征评估与预测等复杂的处理手段以实现流量数据在各个处理节点上的分配,而与相关技术中使用的数据预测模型不同的是,本申请实施例在确定目标主机地址时所使用的哈希模型仅对主机地址进行预测处理,由于主机地址所包含的数据较少,因此哈希模型能够在较短的时间内轻易计算得到大量流量数据在下一时间段内的负载均衡偏差结果,进而处理装置能够根据负载均衡偏差结果快速确定流量数据在各个处理节点上的分配,尤其是在高密度流量数据的场景下,本申请实施例能够提高流量数据的处理效率。
进一步地,本申请实施例能够根据实际情况动态确定目标主机地址,例如,当基于步骤301至步骤303确定得到的目标主机地址对流量数据进行实时处理时的负载均衡程度无法满足当前的流量数据实时处理需求时,可以立即根据步骤401至步骤403更换确定目标主机地址的方法,如此,提高了处理装置对流量数据进行处理的灵活性,使得处理装置对流量数据进行处理的负载均衡程度更高,进而提高了流量数据尤其是高密度流量数据场景下的实时处理能力。
需要说明的是,处理装置中可以预先设定有负载均衡阈值,当哈希环上一定范围内的处理节点的负载处理能力均高于设定的负载均衡阈值时,即对目标主机地址的确定方法进行调整,或者,可以根据实际情况设定更换目标主机地址的确定方法的时机点,本申请实施例并不做具体地限制。
如图6所示,图6是图2中的步骤102的另一个实现流程图,基于预设的一致性哈希函数,对各个目标主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,包括以下步骤501至步骤503。
步骤501,基于一致性哈希函数,对各个目标主机地址进行哈希计算,得到每一流量数据对应的哈希值。
步骤502,根据哈希环上所有处理节点的数量,确定模数。
步骤503,基于模数,对哈希值进行取模运算,得到流量数据对应的哈希索引值。
以下对步骤501至步骤503进行详细描述。
在本申请实施例中,在确定目标主机地址之后,使用一致性哈希函数对各个目标主机地址进行哈希计算,得到每一流量数据对应的哈希索引值,以便之后根据该哈希索引值将流量数据分配到对应的处理节点中进行数据处理,其中,计算哈希值所使用的一致性哈希函数可以是MD5或SHA-256。
示例性地,某一流量数据的目标主机地址为“1”,首先使用预先选定的一致性哈希函数SHA-256对该目标主机地址进行哈希计算,得到对应的256位结果哈希值;根据哈希环上的处理节点数量确定模数,例如,当处理节点的数量为10时,模数为210;接着,根据模数210,对之前计算得到的256位结果哈希值对应的十进制数进行取模运算,进而得到哈希索引值。
进一步地,由于一致性哈希函数具有均匀性和随机性,因此不同的目标主机地址在经过处理装置的特征处理后所得到的哈希索引值同样具有均匀性和随机性,使得处理装置能够基于哈希索引值将流量数据随机、均匀地索引到哈希环上,避免了单一处理节点的负荷过载,实现了流量数据的均匀分布与负载均衡。
如图7所示,图7是图2中的步骤101之后的一个实现流程图,在获取至少一个虚拟局域网内不同会话对应产生的流量数据之后,还包括以下步骤601至步骤604。
步骤601,解析多个流量数据,得到每一流量数据在不同类别下的初始地址,从多个初始地址中随机选取一个主机标识位上对应的信息作为目标主机地址。
步骤602,基于预设的一致性哈希函数,对各个目标主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,其中,同一会话下的流量数据之间的哈希索引值不同。
步骤603,在预设的哈希环上,根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点中,其中,各个处理节点基于对应的不同第一分配位置均匀分布在哈希环上。
步骤604,通过各个处理节点对相应会话下的流量数据进行处理,得到各个会话下的流量数据处理结果。
以下对步骤601至步骤604进行详细描述。
在本申请实施例中,处理装置在获取得到流量数据之后,除了可以选择同一类别初始地址对应的主机地址作为目标主机地址外,针对每一流量数据,还可以从多个初始地址中随机选取一个主机标识位上对应的信息作为目标主机地址,即可以根据不同类别的初始地址,得到对应的目标主机地址。
示例性地,处理装置获取到流量数据c和流量数据d,其中,流量数据c和流量数据d均来自于同一会话,并由主机A发送得到;之后,选择流量数据c源IP地址主机标识位上对应的信息作为目标主机地址,选择流量数据d目的IP地址主机标识位上对应的信息作为目标主机地址。可以理解的是,流量数据c和流量数据d均来自于主机A,若在对流量数据进行特征处理时,所有的流量数据均采用源IP地址主机标识位上对应的信息作为目标主机地址,当主机A产生高密度的流量数据时,极易造成对应处理节点的崩溃,本申请实施例通过随机选择目标主机地址的方式,将来自于同一主机的流量数据进行分散至多个不同的处理节点中,进一步提高处理装置在对流量数据进行特征处理时的均匀性,进而提高流量数据的处理效率。
进一步地,处理装置将基于不同类别的目标主机地址对来自于同一会话的多个流量数据进行哈希计算,得到对应的哈希索引值,其中,同一会话下的流量数据之间的哈希索引值不同。
进一步地,基于哈希索引值将流量数据索引到对应的处理节点中进行数据处理,可以理解的是,在本申请实施例中,来自于同一会话的多个流量数据最多会被分配到7个不同的处理节点中以进行后续的数据处理,如此,在保证负载均衡的同时,限制了流量数据处理结果的合并次数上限,提高了流量数据的实时处理效率。
进一步地,来自不同局域网、同一会话下的流量数据的主机地址存在可能相同的情况,基于此,还可以将主机地址和VLAN ID结合的结果作为目标主机地址,并在之后根据该目标主机地址进行哈希计算,得到对应的哈希索引值,其中,同一会话下的流量数据之间的哈希索引值不同。如此,进一步提高了流量数据分配的均匀性,从而进一步提高了流量数据的处理效率。
步骤103,在预设的哈希环上,根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点中,其中,各个处理节点基于对应的不同第一分配位置均匀分布在哈希环上。
以下对步骤103进行详细描述。
在本申请实施例中,在得到哈希索引值之后,处理装置会接着根据哈希索引值确定其在哈希环上对应的第一分配位置,以便之后根据第一分配位置确定流量数据对应的处理节点。其中,如上述步骤201至步骤203,各个处理节点基于其对应的不同第一分配位置均匀分布在哈希环上。
如图8所示,图8是图2中的步骤103的一个实现流程图,根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点中,包括以下步骤701至步骤703。
步骤701,根据哈希索引值的大小,确定哈希索引值在哈希环上对应的第二分配位置。
步骤702,沿着预设的分配方向,从多个第一分配位置中确定与第二分配位置距离最近的目标分配位置。
步骤703,将每一会话下的流量数据均匀索引到目标分配位置对应的处理节点中。
以下对步骤701至步骤703进行详细描述。
在本申请实施例中,在得到哈希索引值之后,处理装置将根据哈希索引值的大小确定其在哈希环上的第二分配位置。如图9所示,图9是本申请实施例提供的流量数据的实时处理方法的一个可选的流量数据索引示意图,例如,某一流量数据E在经过计算后得到对应的哈希索引值e,并确定哈希索引值e在哈希环上的位置(第二分配位置)如图9所示,则从多个处理节点在哈希环上的位置(第一分配位置)中,确定目标分配位置,以将流量数据E分配至目标分配位置对应的处理节点上进行后续地数据处理。
进一步地,预设的分配方向可以包括顺时针和逆时针两种,在选择目标分配节点时,可以以顺时针方向作为分配方向,在上述示例中,可以确定处理节点A所在的第一分配位置距离流量数据E所在的第二分配位置最近,进而确定处理节点A所在的第一分配位置为目标分配位置,接着,将流量数据E索引到目标分配位置上,以使处理节点A对流量数据E进行后续的数据处理操作。
或者,在确定了流量数据对应的第二分配位置后,不设定分配方向,可以直接选择距离第二分配位置最近的第一分配位置作为目标分配位置。例如,在上述示例中,图9中的流量数据E将会被索引到处理节点C中,以使处理节点C对流量数据E进行后续的数据处理操作。
进一步地,每一会话下的流量数据能够根据对应的哈希索引值均匀地索引到多个不同的处理节点上,避免了某些处理节点的负载过重,提高了批量流量数据地实时处理能力。
需要说明的是,为了便于理解,图9中的哈希环上仅示出了3个处理节点,实际则可以根据具体情况增加或删减,即,本申请实施例对处理节点的数量并不做具体限制。
如图10所示,图10是图2中的步骤103之前的一个实现流程图,在根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点之前,还包括以下步骤801至步骤805。
步骤801,获取每一存储容器的已用空间值。
步骤802,根据已用空间值,计算得到所有存储容器对应的总已用空间值,并计算总已用空间值与存储容器的总数量的比值,得到存储均值;
步骤803,确定已用空间值超过存储均值至少一倍的处理节点为过载处理节点,确定已用空间值低于存储均值至少一倍的处理节点为空闲处理节点;
步骤804,将所有存储容器中的流量数据处理结果均存储至目标存储容器中,以清空所有存储容器中存储的流量数据处理结果。
步骤805,基于过载处理节点和/或空闲处理节点,对哈希环上的处理节点进行重新调整。
以下对步骤801至步骤805进行详细描述。
在本申请实施例中,在将流量数据分配到处理节点之前,可以首先对当前哈希环上的处理节点进行调整,这样,通过动态调整处理节点的数量以及其在哈希环上对应的分配位置,提高哈希环对批量流量数据的承载能力。
进一步地,哈希环上的每一个处理节点都对应设置有存储容器,处理节点可以将对流量数据处理后的流量数据处理结果存储于对应的存储容器中。可以理解的是,由于同一会话下的流量数据均被分配到了同一处理节点中,因此,同一会话下所有流量数据对应的流量数据处理结果将均被存储到的对应的存储容器中,如此,后续将所有流量数据处理结果进行汇总时,无需再对流量数据处理结果进行逐一遍历以进行去重以及合并,其中,需要进行解释说明的是,当同一会话下的多个流量数据处理结果被保存到不同的存储容器中时,每一存储容器中会保存该流量数据处理结果对应的基本信息,当对所有存储容器中的流量数据处理结果进行汇总时,需要对其进行去重,只保留一份基本信息。
进一步地,在将流量数据分配到处理节点之前,可以先获取每一存储和容器的已用空间值,其中,已用空间值表征了存储容器当前占用的存储值,同时可以表征对应处理节点的当前负载程度;接着,将所有存储容器的已用空间值进行加和计算,得到总已用空间值,通过总已用空间值和已用空间值确定每一处理节点的当前负载程度是否超出负载均衡范围,当超过负载均衡值范围时,对哈希环上的处理节点进行调整。
示例性地,哈希环上包括处理节点A、处理节点B和处理节点C,处理装置获取得到处理节点A、处理节点B和处理节点C对应的存储容器A、存储容器B和存储容器C的已用空间值分别为5000请求、25000请求和5000请求;则计算得到总已用空间值为5000+25000+5000=35000请求,存储均值为35000/3≈11666请求,则可以计算得到处理节点A和处理节点C的负载程度均为(11666-5000)/11666=0(取整),即处理节点A和处理节点C的已用空间值均未超过或低于当前存储均值的至少一倍,处理节点A和处理节点C既不是过载处理节点,也不是空闲处理节点;而处理节点B的负载程度为(35000-11666)/11666=1(取整),即处理节点B的已用空间值超过当前存储均值的一倍,处理节点B为过载处理节点。
进一步地,确定哈希环上是否存在过载处理节点和/或空闲处理节点可以是随流量数据的实时处理同步进行的,或者,为了减少算力资源的浪费,可以每隔一段预设时间对哈希环上的所有处理节点进行过载/空闲筛查。
进一步地,当确定存在过载处理节点和/或空闲处理节点时,可以在对流量数据进行数据处理前先对哈希环上的处理节点进行重新调整,如此,避免了直接将流量数据分配至对应处理节点中进行数据处理所造成的负载失衡,从而提升对流量数据的整体实时处理性能。
如图11所示,图11是图10中的步骤805的一个实现流程图,基于过载处理节点和/或空闲处理节点,对哈希环上的处理节点进行重新调整,包括以下步骤901至步骤904。
步骤901,计算过载处理节点对应的已用空间值和存储均值之间的第一存储差值。
步骤902,计算第一存储差值和预设的存储阈值之间的第一比值。
步骤903,根据第一比值,确定需要增加的新增处理节点的数量。
步骤904,根据预设的添加方向,基于数量在过载处理节点之后依次增加新增处理节点。
以下对步骤901至步骤904进行详细描述。
在本申请实施例中,当存在过载处理节点时,首先需要确定需要基于过载处理节点增加的处理节点数量,可以根据每一处理节点对应已用空间值超出当前存储均值对应的倍数来确定需要增加的新增处理节点。
进一步地,为了便于理解,接着以上述步骤801至步骤805中的示例进行说明,在确定处理节点B为过载处理节点后,可以确定第一存储差值为(11666-5000)=6666请求,假设预设的存储阈值为3000请求,则可以确定第一比值为6666/3000=3(取整),此时,确定需要增加的新增处理节点的数量为3。
进一步地,添加方向可以是顺时针方向或逆时针方向,根据添加方向,可以在过载处理节点之后依次添加3个新增处理节点;或者,添加方向也可以是随机方向,即可以将3个新增处理节点随机分配至哈希环任一无映射有处理节点的位置上。
需要说明的是,为了减少算力资源的浪费,存储阈值也可以设定为存储均值,在此基础上,可以根据上述步骤803中取整计算得到的倍数直接确定需要增加的新增处理节点的数量,避免了重复计算,进一步提高了流量数据的处理速度。也即,存储阈值可以根据实际情况进行具体地设定,本申请实施例并不做具体地限制。
如此,当哈希环上存在过载处理节点时,能够对哈希环上的所有处理节点进行重新调整,避免了单一或部分处理节点过载导致的处理节点工作性能下降、服务质量下降甚至造成流量数据处理系统崩溃等问题,提高了对流量数据的动态处理能力。
如图12所示,图12是图10中的步骤805的另一个实现流程图,基于过载处理节点和/或空闲处理节点,对哈希环上的处理节点进行重新调整,还包括以下步骤1001至步骤1002。
步骤1001,计算空闲处理节点对应的已用空间值和存储均值之间的第二存储差值。
步骤1002,当第二存储差值超过预设的存储阈值时,删除空闲处理节点。
以下对步骤1001至步骤1002进行详细描述。
在本申请实施例中,当存在空闲处理节点时,需要首先确定空闲处理节点对应的已用空间值和存储均值之间的第二存储差值,以便确定该空闲处理节点是否需要删除,如此,能够提高处理节点的资源利用率并降低实际使用过程中的使用成本。
进一步地,为了便于理解,同样接着以上述步骤801至步骤805中的示例进行说明,若还存在一处理节点D,处理节点D对应的存储容器D的已用空间值为1000请求,则第二存储差值为(11666-1000)=10666,假设预设的存储阈值为8000请求,由于10666>8000,可以确定需要删除该空闲处理节点。
或者,为了减少算力资源的浪费,也可以根据空闲处理节点对应的已用空间值与预设的存储阈值之间的大小关系来确定是否删除空闲处理节点。例如,处理节点D对应的存储容器D的已用空间值为1000请求,假设预设的存储阈值为2000请求,由于1000<2000,可以确定需要删除该空闲处理节点。
步骤104,通过各个处理节点对相应会话下的流量数据进行处理,得到各个会话下的流量数据处理结果。
以下对步骤104进行详细描述。
在本申请实施例中,在将各流量数据索引至对应的处理节点之后,各处理节点能够对各流量数据进行处理,得到流量数据处理结果,其中,同一会话下的流量数据均由同一处理节点进行处理,保证了会话的唯一性。
进一步地,在处理装置同时接收多个虚拟局域网下如多网络靶场产生的流量数据时,无需对流量数据进行复杂地处理,只需要对目标主机地址进行处理即可快速将对应的流量数据索引至对应的处理节点中,这样,无论流量数据来自于何种网络,无论流量数据所包含的特征信息如何变化,本申请实施例都能对其进行快速处理,在需要处理海量流量数据以及需要实时处理流量数据的场景下,具有优越地处理速度和处理效率。
如图13所示,图13是图7中的步骤604之后的一个实现流程图,在得到各个会话下的流量数据处理结果之后,还包括以下步骤1101至步骤1102。
步骤1101,确定多个初始地址均相同的第一流量数据处理结果和第二流量数据处理结果。
步骤1102,合并第一流量数据处理结果和第二流量数据处理结果,得到同一会话下的总流量数据处理结果,并将总流量数据处理结果存储于预设的总存储容器中。
以下对步骤1101至步骤1102进行详细描述。
在本申请实施例中,在所有处理节点均对所需处理的流量数据完成处理后,需要将所有存储容器中的流量数据处理结果进行融合处理,以便之后根据该融合后的结果进行数据管理操作。
进一步地,若以步骤601至步骤604确定流量数据对应的流量数据处理结果,则同一会话下的多个不同流量数据处理结果将被分散存储于各存储容器中,在此情况下,可以确定当多个流量数据的至少两个初始地址相同时,多个流量数据均来自于同一会话。示例性地,第一流量数据处理结果和第二流量数据处理结果的源IP地址和目的IP地址均相同时,可以确定第一流量数据处理结果和第二流量数据处理结果对应的第一流量数据和第二流量数据属于同一会话,则可以将第一流量数据处理结果和第二流量数据处理结果进行融合处理,以形成同一会话下的总流量数据处理结果,总流量数据处理结果可以存储于总存储容器中。
进一步地,在流量数据处理结果存储到对应的存储容器中时,可以同步统计同一会话下对应的流量数据处理结果出现的次数,进而,能够基于该次数,将所有的流量数据处理结果融合至总存储容器中。
进一步地,当总流量数据处理结果存储于总存储容器时,可以将各存储容器中的流量数据处理结果进行清空,以执行下一批次的流量数据处理。
如图14所示,图14是本申请实施例提供的流量数据的实时处理装置的一个可选的功能模块示意图,其中,流量数据的实时处理装置可以包括:
获取模块1201,用于获取至少一个虚拟局域网内不同会话对应产生的流量数据,其中,每一会话下包含有至少一个流量数据,且相同的会话发生在相同的主机之间。
计算模块1202,用于确定每个流量数据对应的目标主机地址,并基于预设的一致性哈希函数,对各个目标主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,其中,同一会话下的流量数据之间的哈希索引值相同。
索引模块1203,用于在预设的哈希环上,根据哈希索引值的大小,将每一会话下的流量数据均匀索引到对应第一分配位置下的处理节点中,其中,各个处理节点基于对应的不同第一分配位置均匀分布在哈希环上。
处理模块1204,用于通过各个处理节点对相应会话下的流量数据进行处理,得到各个会话下的流量数据处理结果。
本申请实施例中通过获取至少一个虚拟局域网内的多个主机之间产生的流量数据,而相同的会话下包含有至少一个流量数据,且相同会话下包含相同的主机,随后确定每个流量数据相关的主机地址,并基于预设的一致性哈希函数,对各个主机地址分别进行哈希计算,得到各个流量数据对应的哈希索引值,而相同的会话下的流量数据之间的哈希索引值相同,因此,根据哈希计算的特性,一旦存在大量的流量数据,那么大量的流量数据相应的哈希索引值之间就是均匀分布的,且计算采用主机地址,无论会话相关的主机来自哪一个虚拟局域网都能进行处理;接着,在预设哈希环上,由于各个处理节点基于对应的哈希值均匀分布在哈希环上,所以根据哈希索引值的大小,可以为每个会话下的流量数据均匀索引到对应哈希值下的处理节点中,这样就实现了流量的均匀分配,每个会话下的流量数据都会被分配到相同的处理节点中进行处理,后续不再需要对所有结果进行遍历就可以得到各个会话下的流量数据处理结果,因此本申请实施例能提高流量数据的处理效率。
该流量数据的实时处理装置的具体实施方式与上述流量数据的实时处理方法的具体实施例基本相同,在此不再赘述。
本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述流量数据的实时处理方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
如图15所示,图15是本申请实施例提供的电子设备的硬件结构示意图,电子设备包括:
处理器1301,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器1302,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器1302可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1302中,并由处理器1301来调用执行本申请实施例的流量数据的实时处理方法;
输入/输出接口1303,用于实现信息输入及输出;
通信接口1304,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线1305,在设备的各个组件(例如处理器1301、存储器1302、输入/输出接口1303和通信接口1304)之间传输信息;
其中处理器1301、存储器1302、输入/输出接口1303和通信接口1304通过总线1305实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述流量数据的实时处理方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (11)
1.一种流量数据的实时处理方法,其特征在于,包括:
获取至少一个虚拟局域网内不同会话对应产生的流量数据,其中,每一所述会话下包含有至少一个所述流量数据,且相同的所述会话发生在相同的主机之间;
确定每个所述流量数据对应的目标主机地址,并基于预设的一致性哈希函数,对各个所述目标主机地址分别进行哈希计算,得到各个所述流量数据对应的哈希索引值,其中,同一所述会话下的所述流量数据之间的哈希索引值相同;
在预设的哈希环上,根据所述哈希索引值的大小,将每一所述会话下的所述流量数据均匀索引到对应第一分配位置下的处理节点中,其中,各个所述处理节点基于对应的不同所述第一分配位置均匀分布在所述哈希环上;
通过各个所述处理节点对相应所述会话下的所述流量数据进行处理,得到各个所述会话下的流量数据处理结果;
所述确定每个所述流量数据对应的目标主机地址,包括:
解析多个所述流量数据,得到每一所述流量数据在不同类别下的初始地址,并确定所述初始地址在主机标识位上对应的信息为主机地址;
选择多个所述流量数据在同一类别下的所述初始地址;
针对每一所述流量数据,从同一类别下的所述初始地址中提取得到对应的所述主机地址,并将所述主机地址作为所述流量数据对应的目标主机地址;
在所述得到每一所述流量数据在不同类别下的初始地址之后,还包括:
分别从不同类别下的所述初始地址中提取得到对应的多个所述主机地址;
基于预先训练好的哈希模型分别计算不同类别下的多个所述主机地址在所述哈希环上对应的分布位置,得到不同类别下的多个负载均衡偏差结果;
确定最小的所述负载均衡偏差结果对应类别下的所述主机地址为目标主机地址。
2.根据权利要求1所述的方法,其特征在于,在所述得到各个所述会话下的流量数据处理结果之后,还包括:
确定多个所述初始地址均相同的第一流量数据处理结果和第二流量数据处理结果;
合并所述第一流量数据处理结果和所述第二流量数据处理结果,得到同一所述会话下的总流量数据处理结果,并将所述总流量数据处理结果存储于预设的总存储容器中。
3.根据权利要求1所述的方法,其特征在于,在所述获取至少一个虚拟局域网内不同会话对应产生的流量数据之前,还包括:
获取所述处理节点对应的节点信息;
基于所述一致性哈希函数,计算所述节点信息在预设的环形空间中的所述第一分配位置;
根据所述第一分配位置,将所述处理节点映射到所述环形空间中,得到哈希环。
4.根据权利要求1所述的方法,其特征在于,所述基于预设的一致性哈希函数,对各个所述目标主机地址分别进行哈希计算,得到各个所述流量数据对应的哈希索引值,包括:
基于所述一致性哈希函数,对各个所述目标主机地址进行哈希计算,得到每一所述流量数据对应的哈希值;
根据所述哈希环上所有所述处理节点的数量,确定模数;
基于所述模数,对所述哈希值进行取模运算,得到所述流量数据对应的哈希索引值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述哈希索引值的大小,将每一所述会话下的所述流量数据均匀索引到对应第一分配位置下的处理节点中,包括:
根据所述哈希索引值的大小,确定所述哈希索引值在所述哈希环上对应的第二分配位置;
沿着预设的分配方向,从多个所述第一分配位置中确定与所述第二分配位置距离最近的目标分配位置;
将每一所述会话下的所述流量数据均匀索引到所述目标分配位置对应的所述处理节点中。
6.根据权利要求5所述的方法,其特征在于,每一所述处理节点包括对应的存储容器;
在所述根据所述哈希索引值的大小,将每一所述会话下的所述流量数据均匀索引到对应第一分配位置下的处理节点之前,还包括:
获取每一所述存储容器的已用空间值;
根据所述已用空间值,计算得到所有所述存储容器对应的总已用空间值,并计算所述总已用空间值与所述存储容器的总数量的比值,得到存储均值;
确定所述已用空间值超过所述存储均值至少一倍的所述处理节点为过载处理节点,确定所述已用空间值低于所述存储均值至少一倍的所述处理节点为空闲处理节点;
将所有所述存储容器中的所述流量数据处理结果均存储至目标存储容器中,以清空所有所述存储容器中存储的所述流量数据处理结果;
基于所述过载处理节点和/或所述空闲处理节点,对所述哈希环上的所述处理节点进行重新调整。
7.根据权利要求6所述的方法,其特征在于,所述基于所述过载处理节点和/或所述空闲处理节点,对所述哈希环上的所述处理节点进行重新调整,包括:
计算所述过载处理节点对应的所述已用空间值和所述存储均值之间的第一存储差值;
计算所述第一存储差值和预设的存储阈值之间的第一比值;
根据所述第一比值,确定需要增加的新增处理节点的数量;
根据预设的添加方向,基于所述数量在所述过载处理节点之后依次增加所述新增处理节点。
8.根据权利要求7所述的方法,其特征在于,所述基于所述过载处理节点和/或所述空闲处理节点,对所述哈希环上的所述处理节点进行重新调整,还包括:
计算所述空闲处理节点对应的所述已用空间值和所述存储均值之间的第二存储差值;
当所述第二存储差值超过预设的存储阈值时,删除所述空闲处理节点。
9.一种流量数据的实时处理装置,其特征在于,所述装置包括:
获取模块,用于获取至少一个虚拟局域网内不同会话对应产生的流量数据,其中,每一所述会话下包含有至少一个所述流量数据,且相同的所述会话发生在相同的主机之间;
计算模块,用于确定每个所述流量数据对应的目标主机地址,并基于预设的一致性哈希函数,对各个所述目标主机地址分别进行哈希计算,得到各个所述流量数据对应的哈希索引值,其中,同一所述会话下的所述流量数据之间的哈希索引值相同;
索引模块,用于在预设的哈希环上,根据所述哈希索引值的大小,将每一所述会话下的所述流量数据均匀索引到对应第一分配位置下的处理节点中,其中,各个所述处理节点基于对应的不同所述第一分配位置均匀分布在所述哈希环上;
处理模块,用于通过各个所述处理节点对相应所述会话下的所述流量数据进行处理,得到各个所述会话下的流量数据处理结果;
其中,所述确定每个所述流量数据对应的目标主机地址,包括:
解析多个所述流量数据,得到每一所述流量数据在不同类别下的初始地址,并确定所述初始地址在主机标识位上对应的信息为主机地址;
选择多个所述流量数据在同一类别下的所述初始地址;
针对每一所述流量数据,从同一类别下的所述初始地址中提取得到对应的所述主机地址,并将所述主机地址作为所述流量数据对应的目标主机地;
在所述得到每一所述流量数据在不同类别下的初始地址之后,还包括:
分别从不同类别下的所述初始地址中提取得到对应的多个所述主机地址;
基于预先训练好的哈希模型分别计算不同类别下的多个所述主机地址在所述哈希环上对应的分布位置,得到不同类别下的多个负载均衡偏差结果;
确定最小的所述负载均衡偏差结果对应类别下的所述主机地址为目标主机地址。
10.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述的流量数据的实时处理方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的流量数据的实时处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410316102.8A CN117914783B (zh) | 2024-03-20 | 2024-03-20 | 流量数据的实时处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410316102.8A CN117914783B (zh) | 2024-03-20 | 2024-03-20 | 流量数据的实时处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117914783A CN117914783A (zh) | 2024-04-19 |
CN117914783B true CN117914783B (zh) | 2024-07-02 |
Family
ID=90689368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410316102.8A Active CN117914783B (zh) | 2024-03-20 | 2024-03-20 | 流量数据的实时处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117914783B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311876A (zh) * | 2020-10-30 | 2021-02-02 | 武汉绿色网络信息服务有限责任公司 | 通过负载均衡设备确定当前会话的后端设备的方法与设备 |
CN112948120A (zh) * | 2021-03-18 | 2021-06-11 | 广东好太太智能家居有限公司 | 负载均衡方法、系统、装置和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100907946B1 (ko) * | 2007-07-30 | 2009-07-16 | 펌킨네트웍스코리아 (주) | 동적 해싱 기반의 부하 분산 시스템 및 그 방법 |
CN111352716B (zh) * | 2020-03-10 | 2024-03-01 | 深圳市腾讯计算机系统有限公司 | 一种基于大数据的任务请求方法、装置、系统及存储介质 |
CN114785737B (zh) * | 2022-04-11 | 2024-07-02 | 阿里巴巴(中国)有限公司 | 报文处理方法、网关设备、服务器及存储介质 |
CN115665161B (zh) * | 2022-10-17 | 2024-04-02 | 重庆邮电大学 | 一种clickhouse实时数据流负载均衡方法及系统 |
CN117176796A (zh) * | 2023-09-22 | 2023-12-05 | 中国建设银行股份有限公司 | 消息推送方法、装置、计算机设备和存储介质 |
CN117271525A (zh) * | 2023-10-27 | 2023-12-22 | 衡阳凯新特种材料科技有限公司 | 一种特种陶瓷数据长期存储系统及方法 |
-
2024
- 2024-03-20 CN CN202410316102.8A patent/CN117914783B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311876A (zh) * | 2020-10-30 | 2021-02-02 | 武汉绿色网络信息服务有限责任公司 | 通过负载均衡设备确定当前会话的后端设备的方法与设备 |
CN112948120A (zh) * | 2021-03-18 | 2021-06-11 | 广东好太太智能家居有限公司 | 负载均衡方法、系统、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117914783A (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881448B (zh) | Api请求的处理方法及装置 | |
CN106656800B (zh) | 一种路径选取方法及系统、网络加速节点及网络加速系统 | |
CN107438994B (zh) | 用于服务器负载均衡的方法、设备和计算机存储介质 | |
EP2849384B1 (en) | Approximate matching method and related device, and communication system | |
CN110198332B (zh) | 内容分发网络节点的调度方法、装置及存储介质 | |
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
CN105786451A (zh) | 一种复杂事件处理方法、装置及系统 | |
CN107733867B (zh) | 一种发现僵尸网络及防护的方法、系统和存储介质 | |
KR101639797B1 (ko) | 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법 | |
US10476746B2 (en) | Network management method, device, and system | |
CN103731482A (zh) | 一种集群负载均衡系统及其实现方法 | |
CN104408182A (zh) | 分布式系统上网络爬虫数据的处理方法和装置 | |
CN108206788B (zh) | 一种流量的业务识别方法及相关设备 | |
WO2018028344A1 (zh) | 负载处理方法和装置 | |
CN105471700B (zh) | 一种消息处理的方法、装置和系统 | |
CN107645540A (zh) | web应用系统的负载均衡方法 | |
CN107154915A (zh) | 防御分布式拒绝服务DDoS攻击的方法、装置及系统 | |
CN106713220A (zh) | 基于ddos攻击防范方法和装置 | |
CN111163015B (zh) | 报文发送方法、装置及汇聚分流设备 | |
CN111294285B (zh) | 一种网络数据的分发方法及负载均衡器 | |
CN106716974B (zh) | 访问分发方法、装置及系统 | |
CN104883362A (zh) | 异常访问行为控制方法及装置 | |
CN116418893A (zh) | 一种数据管理的方法及相应装置 | |
CN117914783B (zh) | 流量数据的实时处理方法、装置、设备及存储介质 | |
CN110380981B (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 |