System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及大数据处理领域,具体而言,涉及一种数据转发方法、装置、电子设备和存储介质。
技术介绍
1、目前,在一些场景中,需要对数据进行转发,例如,网络审计设备从数流量中得到还原文件后,需要将还原文件转发至文件检测引擎,在数据转发过程中,如果待转发数据峰值过高,会出现数据丢失这一情况,同时,会导致数据转发的实时性降低。
技术实现思路
1、本申请实施例的目的在于提供一种数据转发方法、装置、电子设备和存储介质,用以提高数据转发的实时性和降低数据丢失的概率。
2、第一方面,本申请提供一种数据转发方法,所述方法包括:
3、当接收到多个目标消息时,判断第一共享内存的存储容量是否能够存储多个所述目标消息,如果所述第一共享内存的存储容量能够存储多个所述目标消息,则将多个所述目标消息存入所述第一共享内存,如果所述第一共享内存的存储容量不足以存储多个所述目标消息,则将多个所述目标消息存入第一文件系统中;
4、基于处理进程和所述处理进程管理的处理线程并发从所述第一文件系统或所述第一共享内存读取所述目标消息,并将所述目标消息转发至文件检测引擎,其中,所述处理进程的数量为两个或两个以上,每个所述处理进程管理两个或两个以上的所述处理线程,并关联一个第二共享内存和第二文件系统,每个所述处理进程独立从所述第一共享内存或所述第一文件系统读取一个所述目标消息并将所述目标消息存在所述第二共享内存或所述第二文件系统中,每个所述处理线程从所述第二共享内存或所述第二文件系统读取所述目标消息
5、本申请能够在接收到多个目标消息时,判断第一共享内存的存储容量是否能够存储多个所述目标消息,如果所述第一共享内存的存储容量能够存储多个所述目标消息,则将多个所述目标消息存入所述第一共享内存,如果所述第一共享内存的存储容量不足以存储多个所述目标消息,则将多个所述目标消息存入第一文件系统中,另一方面,能够基于处理进程和所述处理进程管理的处理线程并发从所述第一文件系统或所述第一共享内存读取所述目标消息,并将所述目标消息转发至文件检测引擎,其中,所述处理进程的数量为两个或两个以上,每个所述处理进程管理两个或两个以上的所述处理线程,并关联一个第二共享内存和第二文件系统,每个所述处理进程独立从所述第一共享内存或所述第一文件系统读取一个所述目标消息并将所述目标消息存在所述第二共享内存或所述第二文件系统中,每个所述处理线程从所述第二共享内存或所述第二文件系统读取所述目标消息并将所述目标消息转发至所述文件检测引擎,这样一来,就能够通过多进程/多线程+共享内存/文件的方式,实现大并发数据的接收和传递,保证了数据的实时性,避免了数据的丢失。同时,共享内存和文件切换的模式,也兼顾的系统的资源占用。
6、在可选的实施方式中,所述处理进程在将所述目标消息以分片形式存入所述第二共享内存或所述第二文件系统之前,判断所述目标消息的数据量是否大于预设阈值,如果所述目标消息的数据量大于所述预设阈值,则基于压缩算法压缩所述目标消息并生成压缩信息;
7、以及,所述处理进程在压缩所述目标消息后,将压缩结果切分为两个或两个以上的消息分片并生成切分信息,所述切分信息具有唯一性。
8、本可选的方式能够使处理进程在将所述目标消息以分片形式存入所述第二共享内存或所述第二文件系统之前,判断所述目标消息的数据量是否大于预设阈值,如果所述目标消息的数据量大于所述预设阈值,则基于压缩算法压缩所述目标消息并生成压缩信息,以及,使所述处理进程在压缩所述目标消息后,将压缩结果切分为两个或两个以上的消息分片并生成切分信息,这样一来,通过压缩和分片处理,能够解决大消息传递慢,占用资源的问题。
9、在可选的实施方式中,所述处理线程从所述第二共享内存或所述第二文件系统读取所述目标消息后,基于所述切分信息判断所述目标消息是否为分片形式,如果是则基于所述切分信息重组两个或两个以上的所述消息分片,所述处理线程重组两个或两个以上的所述消息分片之后,基于所述压缩信息判断切片重组结果是否需要解压,如果是则对所述切片重组结果进行解压。
10、本可选的实施方式可实现在对目标消息进行压缩和分片操作的基础上,通过重组、解密操作还原目标消息。
11、在可选的实施方式中,所述切分信息包括缓冲区编号和分片标记,其中,所述缓冲区编号用于表征每个所述消息分片的存储位置。
12、本可选的实施方式通过分片标记和缓冲区编号结合的方式,解决在多进程/多线程并发处理消息过程中,消息的重复消费和重复生产。同时,通过缓冲区编号加快了分片获取,分片重组速度。
13、第二方面,本申请提供一种数据转发装置,所述装置包括:
14、判断模块,用于在接收到多个目标消息时,判断第一共享内存的存储容量是否能够存储多个所述目标消息,如果所述第一共享内存的存储容量能够存储多个所述目标消息,则将多个所述目标消息存入所述第一共享内存,如果所述第一共享内存的存储容量不足以存储多个所述目标消息,则将多个所述目标消息存入第一文件系统中;
15、转发模块,用于基于处理进程和所述处理进程管理的处理线程并发从所述第一文件系统或所述第一共享内存读取所述目标消息,并将所述目标消息转发至文件检测引擎,其中,所述处理进程的数量为两个或两个以上,每个所述处理进程管理两个或两个以上的所述处理线程,并关联一个第二共享内存和第二文件系统,每个所述处理进程独立从所述第一共享内存或所述第一文件系统读取一个所述目标消息并将所述目标消息存在所述第二共享内存或所述第二文件系统中,每个所述处理线程从所述第二共享内存或所述第二文件系统读取所述目标消息并将所述目标消息转发至所述文件检测引擎。
16、本申请能够在接收到多个目标消息时,判断第一共享内存的存储容量是否能够存储多个所述目标消息,如果所述第一共享内存的存储容量能够存储多个所述目标消息,则将多个所述目标消息存入所述第一共享内存,如果所述第一共享内存的存储容量不足以存储多个所述目标消息,则将多个所述目标消息存入第一文件系统中,另一方面,能够基于处理进程和所述处理进程管理的处理线程并发从所述第一文件系统或所述第一共享内存读取所述目标消息,并将所述目标消息转发至文件检测引擎,其中,所述处理进程的数量为两个或两个以上,每个所述处理进程管理两个或两个以上的所述处理线程,并关联一个第二共享内存和第二文件系统,每个所述处理进程独立从所述第一共享内存或所述第一文件系统读取一个所述目标消息并将所述目标消息存在所述第二共享内存或所述第二文件系统中,每个所述处理线程从所述第二共享内存或所述第二文件系统读取所述目标消息并将所述目标消息转发至所述文件检测引擎,这样一来,就能够通过多进程/多线程+共享内存/文件的方式,实现大并发数据的接收和传递,保证了数据的实时性,避免了数据的丢失。同时,共享内存和文件切换的模式,也兼顾的系统的资源占用。
17、在可选的实施方式中,所述处理进程在将所述目标消息本文档来自技高网...
【技术保护点】
1.一种数据转发方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述处理进程在将所述目标消息以分片形式存入所述第二共享内存或所述第二文件系统之前,判断所述目标消息的数据量是否大于预设阈值,如果所述目标消息的数据量大于所述预设阈值,则基于压缩算法压缩所述目标消息并生成压缩信息;
3.如权利要求2所述的方法,其特征在于,所述处理线程从所述第二共享内存或所述第二文件系统读取所述目标消息后,基于所述切分信息判断所述目标消息是否为分片形式,如果是则基于所述切分信息重组两个或两个以上的所述消息分片,所述处理线程重组两个或两个以上的所述消息分片之后,基于所述压缩信息判断切片重组结果是否需要解压,如果是则对所述切片重组结果进行解压。
4.如权利要求3所述的方法,其特征在于,所述切分信息包括缓冲区编号和分片标记,其中,所述缓冲区编号用于表征每个所述消息分片的存储位置。
5.一种数据转发装置,其特征在于,所述装置包括:
6.如权利要求5所述的装置,其特征在于,所述处理进程在将所述目标消息以分片形式存入所述第二共享内
7.如权利要求6所述的装置,其特征在于,所述处理线程从所述第二共享内存或所述第二文件系统读取所述目标消息后,基于所述切分信息判断所述目标消息是否为分片形式,如果是则基于所述切分信息重组两个或两个以上的所述消息分片,所述处理线程重组两个或两个以上的所述消息分片之后,基于所述压缩信息判断切片重组结果是否需要解压,如果是则对所述切片重组结果进行解压。
8.如权利要求7所述的装置,其特征在于,所述切分信息包括缓冲区编号和分片标记,其中,所述缓冲区编号用于表征每个所述消息分片的存储位置。
9.一种电子设备,其特征在于,包括:
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如权利要求1-4任一项所述的数据转发方法。
...【技术特征摘要】
1.一种数据转发方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述处理进程在将所述目标消息以分片形式存入所述第二共享内存或所述第二文件系统之前,判断所述目标消息的数据量是否大于预设阈值,如果所述目标消息的数据量大于所述预设阈值,则基于压缩算法压缩所述目标消息并生成压缩信息;
3.如权利要求2所述的方法,其特征在于,所述处理线程从所述第二共享内存或所述第二文件系统读取所述目标消息后,基于所述切分信息判断所述目标消息是否为分片形式,如果是则基于所述切分信息重组两个或两个以上的所述消息分片,所述处理线程重组两个或两个以上的所述消息分片之后,基于所述压缩信息判断切片重组结果是否需要解压,如果是则对所述切片重组结果进行解压。
4.如权利要求3所述的方法,其特征在于,所述切分信息包括缓冲区编号和分片标记,其中,所述缓冲区编号用于表征每个所述消息分片的存储位置。
5.一种数据转发装置,其特征在于,所述装置包括:
6.如权利要求5所述的装置,...
【专利技术属性】
技术研发人员:李鹏飞,豆莎莎,
申请(专利权)人:北京天融信网络安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。