CN113438274A - 数据传输方法、装置、计算机设备及可读存储介质 - Google Patents
数据传输方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN113438274A CN113438274A CN202110577396.6A CN202110577396A CN113438274A CN 113438274 A CN113438274 A CN 113438274A CN 202110577396 A CN202110577396 A CN 202110577396A CN 113438274 A CN113438274 A CN 113438274A
- Authority
- CN
- China
- Prior art keywords
- data
- search engine
- distributed search
- engine server
- target
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 120
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 124
- 230000011218 segmentation Effects 0.000 claims abstract description 40
- 238000012546 transfer Methods 0.000 claims abstract description 5
- 238000004590 computer program Methods 0.000 claims description 17
- 230000002776 aggregation Effects 0.000 claims description 12
- 238000004220 aggregation Methods 0.000 claims description 12
- 238000005192 partition Methods 0.000 claims description 6
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 238000013480 data collection Methods 0.000 abstract description 9
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000006798 recombination Effects 0.000 description 2
- 238000005215 recombination Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 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
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据传输方法、装置、计算机设备及可读存储介质。该方法包括:通过N个数据传输连接接收N个数据包,对N个数据包中的原始数据进行汇聚处理,获得目标数据;原始数据为待写入分布式搜索引擎服务器的数据;根据分布式搜索引擎服务器的最大数据处理量对目标数据进行数据分割处理,获得M个数据单元;M小于N;通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元。能够解决ES服务器收集数据时由于TCP并发或TCP突发现象导致数据收集效率下降的问题。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据传输方法、装置、计算机设备及可读存储介质。
背景技术
目前,Google等常见的搜索引擎通常采用中心化服务器,为了实现去中心化的引擎服务,逐渐衍生出了分布式搜索引擎。ElasticSearch(简称ES)是Elastic公司开发的分布式搜索和分析引擎,利用ElasticSearch搜索引擎可以基于分布式的数据提供数据搜索、分析功能。
现有技术中,ES服务器可以通过传输控制协议TCP(transmission controlprotocol,TCP)连接从不同的数据源采集数据,基于采集到的数据提供引擎服务。但是数据源的数据存在不确定,可能会出现TCP高并发(high concurrency)和TCP突发(brust)两种现象。例如,一个数据源从其它数据源接收数据后,会针对该数据向ES服务器发起TCP连接请求,以通过TCP连接向ES服务器发送该数据。随着数据源、数据量的增多,导致TCP连接请求大量并发,超出ES服务器支持的TCP连接数量,从而部分导致TCP连接请求得不到响应,导致部分数据传输失败。或者,在TCP突发情况下,数据源与ES服务器的某个TCP连接上传输的数量超过ES服务器的最大处理量,会导致该TCP连接上传输部分数据无法被ES服务器处理、写入,从而影响ES服务器的数据收集效率。
可见,由于TCP高并发、TCP突发现象,可能导致ES服务器的数据收集效率下降。
发明内容
本申请实施例提供一种数据传输方法、装置、计算机设备及可读存储介质,能够解决ES服务器收集数据时由于TCP并发或TCP突发现象导致数据收集效率下降的问题。
第一方面,提供了一数据传输方法,包括:
通过N个数据传输连接接收N个数据包,对N个数据包中的原始数据进行汇聚处理,获得目标数据;原始数据为待写入分布式搜索引擎服务器的数据;
根据分布式搜索引擎服务器的最大数据处理量对目标数据进行数据分割处理,获得M个数据单元;M小于N;
通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元。
本申请中,通过数据传输连接接收到数据时,对接收到的多个数据包进行汇聚、分割,不会针对N个数据包发起N个数据传输连接请求,减少了数据传输连接请求的并发量,从而减少了分布式搜索引擎服务器对数据传输连接请求的处理量,避免TCP高并发导致数据传输速率降低的问题。另外,单个数据单元的数据大小不超过分布式搜索引擎服务器的最大数据处理量,也可以避免TCP突发导致数据无法写入,数据传输速率降低的问题。
结合第一方面,在第一方面的第一种可能的实现方式中,对N个数据包中的原始数据进行汇聚处理,获得目标数据包括:
解析N个数据包,获取N个数据包中的原始数据;
将N个数据包中的原始数据依次写入预设的缓存空间中,获得目标数据。
本申请提供的方法中设置专用的缓存空间来存储多个数据包汇聚所得的目标数据,使得汇聚处理和数据分割处理在时间上有所隔离,避免数据源设备频繁进行汇聚处理和数据分割处理,降低数据源设备的处理负荷。
结合第一方面,在第一方面的第二种可能的实现方式中,
在N个数据包中的原始数据全部写入预设的缓存空间后,为预设的缓存空间添加写入完成标识。
本申请提供的方法中,在专用的缓存空间写入数据后,可以给缓存空间添加写入完成标识,可以保证待发送数据的完整保存。在间隔进行数据汇聚、数据分割的同时,避免发生数据遗漏。
结合第一方面,在第一方面的第三种可能的实现方式中,该方法还包括:
周期性轮询预设的缓存空间,根据写入完成标识确定预设的缓存空间的为写入完成状态,则在预设的缓存空间读取目标数据。
本申请提供的方法中,数据源设备缓存数据后间隔一段时间再进行数据分割处理时,可以根据写入完成标识确定缓存空间存储了待发送的所有数据,避免进行数据分割处理时发生数据遗漏。
结合第一方面,在第一方面的第四种可能的实现方式中,根据分布式搜索引擎服务器的最大数据处理量对目标数据进行数据分割处理,获得M个数据单元,包括:
判断目标数据的大小是否超过最大数据处理量;
若目标数据的大小超过最大数据处理量,则以预设的划分粒度对目标数据进行数据分割处理,获得M个数据单元;预设的划分粒度对应的数据大小不超过最大数据处理量对应的数据大小。
本申请提供的方法中,当缓存的目标数据超过了分布式搜索引擎服务器的最大数据处理量,需要按照分布式搜索引擎服务器的最大数据处理量分割目标数据,使得分割获得的数据单元不超过分布式搜索引擎服务器的最大数据处理量,单个数据传输连接一次发送的数据不会过大,能够避免TCP突发情况,从而避免由此导致数据无法被分布式搜索引擎服务器处理、写入的问题,在一定程度上优化了分布式搜索引擎服务器的数据写入效率。
结合第一方面,在第一方面的第五种可能的实现方式中,该方法还包括:
若目标数据的大小未超过最大数据处理量,则禁止对目标数据进行数据分割处理,通过与分布式搜索引擎服务器之间的数据传输连接发送目标数据。
本申请提供的方法中,当缓存的目标数据未超过分布式搜索引擎服务器的最大数据处理量,无需分割目标数据,单个数据传输连接的传输量不会超过分布式搜索引擎服务器的最大数据处理量,能够避免TCP突发情况。
结合第一方面,在第一方面的第六种可能的实现方式中,通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元,包括:
按照M个数据单元的分割顺序,通过与分布式搜索引擎服务器之间的数据传输连接依次发送M个数据单元。
本申请提供的方法中,还可以按照一定的顺序依次发送多个数据单元,保证分布式搜索引擎服务器根据接收顺序正确重组数据。示例性的,前文涉及的通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元的具体实现包括:按照M个数据单元的分割顺序,通过与分布式搜索引擎服务器之间的数据传输连接依次发送M个数据单元。
第二方面,提供了一种数据传输装置,包括:
接收单元,用于通过N个数据传输连接接收N个数据包,对N个数据包中的原始数据进行汇聚处理,获得目标数据;原始数据为待写入分布式搜索引擎服务器的数据;
数据处理单元,用于根据分布式搜索引擎服务器的最大数据处理量对目标数据进行数据分割处理,获得M个数据单元;最大数据处理量用于限制分布式搜索服务器的数据传输连接的单次数据传输量;
发送单元,用于通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元。
第三方面,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面以及第一方面任一种实现方式所述的方法的步骤。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面以及第一方面任一种实现方式所述的方法的步骤。
本申请实施例提供一种数据传输方法、装置、计算机设备及可读存储介质,对来自多个数据传输连接的数据包中的数据进行汇聚处理,并根据分布式搜索引擎服务器的最大数据处理量对汇聚后的数据进行分割,分割后的数据单元的数量不超过原始接收的数据包数量,因此可以通过较少的数据传输连接将目标数据传输至分布式搜索引擎服务器,不会针对N个数据包发起N个数据传输连接请求,减少了数据传输连接请求的并发量,从而减少了分布式搜索引擎服务器对数据传输连接请求的处理量,避免TCP高并发导致数据传输速率降低的问题。另外,单个数据单元的数据大小不超过分布式搜索引擎服务器的最大数据处理量,也可以避免TCP突发导致数据无法写入,数据传输速率降低的问题。
附图说明
图1为本申请实施例提供的数据收集***的示意图;
图2为本申请实施例提供的数据传输方法的流程示意图;
图3为本申请实施例提供的数据传输方法的另一流程示意图;
图4为本申请实施例提供的数据传输方法的另一流程示意图;
图5为本申请实施例提供的数据源设备的结构示意图;
图6为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的方法适用于图1所示的数据收集***。参考图1,该***包括分布式搜索引擎服务器10和数据源设备20。其中,数据源设备20包括与分布式搜索引擎服务器10直接通信的一级数据源设备,以及无法与分布式搜索引擎服务器10直接通信的二级数据源设备、三级数据源设备等。
分布式搜索引擎服务器面向客户端30提供搜索引擎,用户可以通过客户端30使用分布式搜索引擎进行数据搜索。分布式搜索引擎服务器10可以从各个数据源设备20收集数据,以支持客户端的数据搜索、引擎业务。
示例性的,任一数据源设备20可以通过TCP连接从下一级数据源设备收集数据,并针对该TCP连接接收的数据向上一级设备发起TCP连接请求,通过与上一级设备之间的TCP连接将接收到的数据转发给上一级设备。对于图1所示***中的一级设备,接收二级数据源设备通过TCP连接发送的数据后,向分布式搜索引擎服务器10发起TCP连接请求,通过与分布式搜索引擎服务器10发送数据。
当发生TCP高并发,例如,一级数据源设备发起的TCP连接请求大量并发,超出分布式搜索引擎服务器10支持的TCP连接数量,从而导致部分TCP连接请求得不到响应,导致部分数据传输失败。当发生TCP突发,例如,一级数据源设备与ES服务器的某个TCP连接上传输的数量超过ES服务器的最大处理量,会导致该TCP连接上传输部分数据无法被ES服务器处理、写入,从而影响ES服务器的数据收集效率。
基于此,本申请实施例提供一种数据传输方法,能够解决分布式搜索引擎服务器收集数据时由于TCP并发或TCP突发现象导致数据收集效率下降的问题。参考图2,该方法包括以下步骤:
步骤201、数据源设备通过N个数据传输连接接收N个数据包,对N个数据包中的原始数据进行汇聚处理,获得目标数据。
其中,数据源设备用于为分布式搜索引擎服务器提供数据,以支撑分布式搜索引擎服务器的引擎、分析功能。数据传输连接可以是TCP连接,数据源设备之间传输数据之前,首先发起TCP连接请求,以建立设备之间的TCP连接。
具体实现中,数据源设备可以根据协议标准对待发送的原始数据进行封装,获得数据包,再通过数据源设备之间的TCP连接发送数据包。相应的,接收方的数据源设备可以通过TCP连接接收数据包。可以理解的是,原始数据为待写入分布式搜索引擎服务器的数据。
一种可能的实现方式中,数据源设备接收数据包后根据协议标准对数据包进行解析,获得其中的原始数据。并将通过多个数据传输连接接收到的数据包中的原始数据进行汇聚。示例性地,通过N个数据传输连接接收N个数据包,对N个数据包中的原始数据进行汇聚处理,获得目标数据。需要说明的是,本申请实施例所述的协议标准是设备之间用于通信的协议,例如,可以数据源设备之间用于通信的协议。
本申请实施例中,数据源设备可以是图1所示***中的一级数据源设备通过数据传输连接接收数据包后,避免直接针对该数据包向分布式搜索引擎发起数据传输连接请求,而是将多个数据包中的数据汇聚起来,以便后续进行分割后发送,如此能够减少数据传输连接请求的并发量。
步骤202、数据源设备根据分布式搜索引擎服务器的最大数据处理量对目标数据进行数据分割处理,获得M个数据单元。
其中,M为小于N的整数。正是因为M小于N,且M个数据单元可以通过M个数据传输连接发送至分布式搜索引擎服务器,因此本申请实施例可以通过较少的数据传输连接将目标数据传输至分布式搜索引擎服务器,不会针对N个数据包发起N个数据传输连接请求,减少了数据传输连接请求的并发量,从而减少了分布式搜索引擎服务器对数据传输连接请求的处理量。
一种可能的实现方式中,本申请实施例所述的最大数据处理量可以是分布式搜索引擎服务器单次处理的最大数据量。例如,可以是分布式搜索引擎服务器针对单个TCP连接的最大数据处理量,即分布式搜索引擎服务器通过单个数据传输连接接收数据后,最大能处理的数据量。
示例性的,根据最大数据处理量对目标数据进行分割处理,即将目标数据分割成多个数据单元,每个数据单元的数据量大小不超过上述最大数据处理量。进一步,数据源设备还可以根据数据源设备与分布式搜索引擎服务器之间的通信协议标准,对分割后的数据进行封装获得多个数据单元。
步骤203、数据源设备通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元。
其中,数据源设备可以同时向分布式搜索引擎服务器发起M个数据传输连接请求,与分布式搜索引擎服务器之间建立M个数据传输连接,通过M个数据传输连接分别发送上述M个数据单元。
或者,数据源设备可以同时向分布式搜索引擎服务器发起P(小于M)个数据传输连接请求,与分布式搜索引擎服务器之间建立P个数据传输连接,通过P个数据传输连接分别发送上述M个数据单元。具体的,上述P个数据传输连接中的某个数据传输连接上发送多个数据单元。
本申请实施例中,对来自多个数据传输连接的数据包中的数据进行汇聚处理,并根据分布式搜索引擎服务器的最大数据处理量对汇聚后的数据进行分割,分割后的数据单元的数量不超过原始接收的数据包数量,因此可以通过较少的数据传输连接将目标数据传输至分布式搜索引擎服务器,不会针对N个数据包发起N个数据传输连接请求,减少了数据传输连接请求的并发量,从而减少了分布式搜索引擎服务器对数据传输连接请求的处理量,避免TCP高并发导致数据传输速率降低的问题。另外,单个数据单元的数据大小不超过分布式搜索引擎服务器的最大数据处理量,也可以避免TCP突发导致数据无法写入,数据传输速率降低的问题。
本申请实施例中,数据源设备可以将通过多个数据传输连接接收的数据汇聚在缓存中。示例的,前文涉及的对N个数据包中的原始数据进行汇聚处理,获得目标数据的具体实现包括图3所示的步骤:
步骤301、解析N个数据包,获取N个数据包中的原始数据。
具体实现中,数据源设备根据与数据包发送方的通信协议解析接收到的数据包,从数据包的payload中获取原始数据,即待写入分布式搜索引擎服务器的数据。
步骤302、将N个数据包中的原始数据依次写入预设的缓存空间中,获得目标数据。
具体实现中,可以按照所述N个数据包的接收顺序,将N个数据包中的原始数据依次写入预设的缓存空间。需要说明的是,数据源设备也可以按照其他顺序依次写入N个数据包中的原始数据,本申请实施例对此不做限定。
一种可能的实现方式中,上述预设的缓存空间可以是专用于缓存多个数据传输连接的汇聚数据(即前文所述的目标数据)的缓存空间。
需要说明的是,本申请提供的方法中设置专用的缓存空间来存储多个数据包汇聚所得的目标数据,使得汇聚处理和数据分割处理在时间上有所隔离,避免数据源设备频繁进行汇聚处理和数据分割处理,降低数据源设备的处理负荷。
本申请实施例中,在专用的缓存空间写入通过数据传输连接接收的数据后,还可以为该内存空间增加写入完成标识。示例性的,图2所示的方法还包括:在所述N个数据包中的原始数据全部写入所述预设的缓存空间后,为所述预设的缓存空间添加写入完成标识。
需要说明的是,在专用的缓存空间写入数据后,可以给缓存空间添加写入完成标识,可以保证待发送数据的完整保存。在间隔进行数据汇聚、数据分割的同时,避免发生数据遗漏。
本申请实施例中,数据源设备还可以根据缓存空间的写入完成标识实现数据的完整读取,避免发生数据遗漏。示例性的,前文涉及的从预设的缓存空间中读取目标数据的具体实现包括:
周期性轮询预设的缓存空间,根据写入完成标识确定预设的缓存空间的为写入完成状态,则在预设的缓存空间中读取目标数据。
需要说明的是,数据源设备缓存数据后间隔一段时间再进行数据分割处理时,可以根据写入完成标识确定缓存空间存储了待发送的所有数据,避免进行数据分割处理时发生数据遗漏。
本申请实施例中,数据源设备可以根据一定的数据大小对缓存的数据进行分割,避免分割的数据单元超过分布式搜索引擎服务器的单次数据处理量。示例性的,前文涉及的根据分布式搜索引擎服务器的最大数据处理量对目标数据进行数据分割处理,获得M个数据单元的具体实现包括:
判断目标数据的大小是否超过上述最大数据处理量;若目标数据的大小超过最大数据处理量,则以预设的划分粒度对目标数据进行数据分割处理,获得M个数据单元;预设的划分粒度对应的数据大小不超过最大数据处理量对应的数据大小。
也就是说,当缓存的目标数据超过了分布式搜索引擎服务器的最大数据处理量,需要按照分布式搜索引擎服务器的最大数据处理量分割目标数据,使得分割获得的数据单元不超过分布式搜索引擎服务器的最大数据处理量,单个数据传输连接一次发送的数据不会过大,能够避免TCP突发情况,从而避免由此导致数据无法被分布式搜索引擎服务器处理、写入的问题,在一定程度上优化了分布式搜索引擎服务器的数据写入效率。
在一个可能的实现方式中,若目标数据的大小未超过最大数据处理量,则禁止对目标数据进行数据分割处理,通过与分布式搜索引擎服务器之间的数据传输连接发送目标数据。
也就是说,当缓存的目标数据未超过分布式搜索引擎服务器的最大数据处理量,无需分割目标数据,单个数据传输连接的传输量不会超过分布式搜索引擎服务器的最大数据处理量,能够避免TCP突发情况。
本申请实施例中,还可以按照一定的顺序依次发送多个数据单元,保证分布式搜索引擎服务器根据接收顺序正确重组数据。示例性的,前文涉及的通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元的具体实现包括:按照M个数据单元的分割顺序,通过与分布式搜索引擎服务器之间的数据传输连接依次发送M个数据单元。
具体实现中,数据源设备可以通过M个数据传输连接向分布式搜索引擎服务器发送M个数据单元,并且M个数据单元的发送时间是先后错开的。由于数据源设备与分布式搜索引擎服务器之间的数据传输连接的传输时延大致相同,因此可以保证分布式搜索引擎服务器依次接收M个数据单元,从而实现对数据的正确重组,避免出现乱序重组的现象。
本申请实施例还提供一种数据传输方法,数据源设备可以执行相关进程对接收到的数据进行汇聚、分割,以避免TCP高并发以及TCP突发的问题。示例性的,参考图4,所述方法包括以下步骤:
步骤401、启动数据采集任务之后,建立两个作业线程,分别为数据接收线程和缓存轮询线程。
其中,数据接收线程、数据轮询线程用于执行前文所述的汇聚处理以及数据分割处理。
步骤402、启动数据接收线程监听TCP端口,当有TCP连接建立时,启动数据汇聚处理流程。
步骤403、执行数据接收线程,通过TCP连接接收数据,按数据解析策略完成数据预处理,并将数据写入预设的缓存空间。
其中,预设的缓存空间为在共享内存空间预先申请的一块缓存,专用于缓存数据汇聚的数据。
步骤404、执行数据接收线程,在完成写入后为该缓存空间添加写入完成标记。
因此,在多并发场景下,可同时完成多份数据写入,还可以保证待发送数据的完整保存。
步骤405、缓存轮询线程轮询该缓存空间,当判断缓存空间有写入完成标记,则将该缓存空间的缓存索引列入任务队列。
步骤406、缓存轮询线程执行任务队列将该缓存空间中的数据汇聚成目标数据。
具体实现中,由数据聚合逻辑确定任务队列的缓存索引对应的缓存空间,将缓存空间中的数据汇聚成一个数据块,完成并发TCP的数据汇聚。
步骤407、缓存轮询线程计算目标数据的大小(DataBufferSize),跟单次发送最大值(MaxSendSize)相比较。
其中,MaxSendSize可以是前文所述的最大数据处理量,可以是分布式搜索引擎服务器响应于单个TCP连接最大能处理的数据量,或者,分布式搜索引擎服务器通过单个TCP连接最大能接收的数据量。
如果DataBufferSize<=MaxSendSize,则执行步骤408;如果DataBufferSize>MaxSendSize,则执行步骤409。
步骤408、将目标数据直接交给输出逻辑,通过与分布式搜索引擎服务器之间的TCP连接发送目标数据。
步骤409、对目标数据进行数据分割处理获得N个数据单元,通过与分布式搜索引擎服务器之间的TCP连接逐一发送N个数据单元。
对目标数据进行分割处理的切分算法为:以MaxSendSize为切割粒度对目标数据进行切割,切割后的多个数据单元组成的数据序列的长度为int(DataBufferSize/MaxSendSize)+DataBufferSize%MaxSendSize。
其中,前N-1个数据单元的长均为MaxSendSize,最后一个数据单元的长度为DataBufferSize%MaxSendSize。
本申请实施例提供的方法,通过数据汇聚和切割方法,能够解决流式数据传输场景下的高并发和突发波动导致接收到无法接收数据,使得ElasticSearch数据写入失败的问题。
本申请实施例还提供一种数据源设备,如图5所示,该设备包括:
接收单元501,用于通过N个数据传输连接接收N个数据包,对N个数据包中的原始数据进行汇聚处理,获得目标数据;原始数据为待写入分布式搜索引擎服务器的数据;
数据处理单元502,用于根据分布式搜索引擎服务器的最大数据处理量对目标数据进行数据分割处理,获得M个数据单元;最大数据处理量用于限制分布式搜索服务器的数据传输连接的单次数据传输量;
发送单元503,用于通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元。
本申请中,通过数据传输连接接收到数据时,对接收到的多个数据包进行汇聚、分割,不会针对N个数据包发起N个数据传输连接请求,减少了数据传输连接请求的并发量,从而减少了分布式搜索引擎服务器对数据传输连接请求的处理量,避免TCP高并发导致数据传输速率降低的问题。另外,单个数据单元的数据大小不超过分布式搜索引擎服务器的最大数据处理量,也可以避免TCP突发导致数据无法写入,数据传输速率降低的问题。
在一个实施例中,数据处理单元502用于,解析N个数据包,获取N个数据包中的原始数据;
将N个数据包中的原始数据依次写入预设的缓存空间中,获得目标数据。
本申请提供的装置可以设置专用的缓存空间来存储多个数据包汇聚所得的目标数据,使得汇聚处理和数据分割处理在时间上有所隔离,避免数据源设备频繁进行汇聚处理和数据分割处理,降低数据源设备的处理负荷。
在一个实施例中,数据处理单元502用于,在N个数据包中的原始数据全部写入预设的缓存空间后,为预设的缓存空间添加写入完成标识。
本申请提供的装置,在专用的缓存空间写入数据后,可以给缓存空间添加写入完成标识,可以保证待发送数据的完整保存。在间隔进行数据汇聚、数据分割的同时,避免发生数据遗漏。
在一个实施例中,数据处理单元502用于,周期性轮询预设的缓存空间,根据写入完成标识确定预设的缓存空间的为写入完成状态,则在预设的缓存空间读取目标数据。
本申请提供的数据源设备缓存数据后间隔一段时间再进行数据分割处理时,可以根据写入完成标识确定缓存空间存储了待发送的所有数据,避免进行数据分割处理时发生数据遗漏。
在一个实施例中,数据处理单元502用于,判断目标数据的大小是否超过最大数据处理量;
若目标数据的大小超过最大数据处理量,则以预设的划分粒度对目标数据进行数据分割处理,获得M个数据单元;预设的划分粒度对应的数据大小不超过最大数据处理量对应的数据大小。
本申请提供的装置,当缓存的目标数据超过了分布式搜索引擎服务器的最大数据处理量,需要按照分布式搜索引擎服务器的最大数据处理量分割目标数据,使得分割获得的数据单元不超过分布式搜索引擎服务器的最大数据处理量,单个数据传输连接一次发送的数据不会过大,能够避免TCP突发情况,从而避免由此导致数据无法被分布式搜索引擎服务器处理、写入的问题,在一定程度上优化了分布式搜索引擎服务器的数据写入效率。
在一个实施例中,数据处理单元502用于,若目标数据的大小未超过最大数据处理量,则禁止对目标数据进行数据分割处理,通过与分布式搜索引擎服务器之间的数据传输连接发送目标数据。
在一个实施例中,数据处理单元502用于,按照M个数据单元的分割顺序,通过与分布式搜索引擎服务器之间的数据传输连接依次发送M个数据单元。
本申请提供的装置还可以按照一定的顺序依次发送多个数据单元,保证分布式搜索引擎服务器根据接收顺序正确重组数据。示例性的,前文涉及的通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元的具体实现包括:按照M个数据单元的分割顺序,通过与分布式搜索引擎服务器之间的数据传输连接依次发送M个数据单元。
本申请实施例还提供了一种计算机设备,该计算机设备可以是前文所述的数据源设备。其内部结构图可以如图6所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库可以存储配置信息、权限信息等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现本申请实施例图6所示的方法中由服务器执行的步骤。
示例的,该计算机程序被处理器执行时以实现:通过N个数据传输连接接收N个数据包,对N个数据包中的原始数据进行汇聚处理,获得目标数据;原始数据为待写入分布式搜索引擎服务器的数据;
根据分布式搜索引擎服务器的最大数据处理量对目标数据进行数据分割处理,获得M个数据单元;M小于N;
通过与分布式搜索引擎服务器之间的数据传输连接发送M个数据单元。
在一个实施例中,该计算机程序被处理器执行时以实现:解析N个数据包,获取N个数据包中的原始数据;
将N个数据包中的原始数据依次写入预设的缓存空间中,获得目标数据。
在一个实施例中,该计算机程序被处理器执行时以实现:在N个数据包中的原始数据全部写入预设的缓存空间后,为预设的缓存空间添加写入完成标识。
在一个实施例中,该计算机程序被处理器执行时以实现:周期性轮询预设的缓存空间,根据写入完成标识确定预设的缓存空间的为写入完成状态,则在预设的缓存空间读取目标数据。
在一个实施例中,该计算机程序被处理器执行时以实现:判断目标数据的大小是否超过最大数据处理量;
若目标数据的大小超过最大数据处理量,则以预设的划分粒度对目标数据进行数据分割处理,获得M个数据单元;预设的划分粒度对应的数据大小不超过最大数据处理量对应的数据大小。
在一个实施例中,该计算机程序被处理器执行时以实现:若目标数据的大小未超过最大数据处理量,则禁止对目标数据进行数据分割处理,通过与分布式搜索引擎服务器之间的数据传输连接发送目标数据。
在一个实施例中,该计算机程序被处理器执行时以实现:按照M个数据单元的分割顺序,通过与分布式搜索引擎服务器之间的数据传输连接依次发送M个数据单元。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据传输方法,其特征在于,包括:
通过N个数据传输连接接收N个数据包,对所述N个数据包中的原始数据进行汇聚处理,获得目标数据;所述原始数据为待写入分布式搜索引擎服务器的数据;
根据所述分布式搜索引擎服务器的最大数据处理量对所述目标数据进行数据分割处理,获得M个数据单元;所述M小于所述N;
通过与所述分布式搜索引擎服务器之间的数据传输连接发送所述M个数据单元。
2.根据权利要求1所述的方法,其特征在于,所述对所述N个数据包中的原始数据进行汇聚处理,获得目标数据包括:
解析所述N个数据包,获取所述N个数据包中的原始数据;
将所述N个数据包中的原始数据依次写入预设的缓存空间中,获得所述目标数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述N个数据包中的原始数据全部写入所述预设的缓存空间后,为所述预设的缓存空间添加写入完成标识。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
周期性轮询所述预设的缓存空间,根据所述写入完成标识确定所述预设的缓存空间的为写入完成状态,则在所述预设的缓存空间读取所述目标数据。
5.根据权利要求1所述的方法,其特征在于,所述根据所述分布式搜索引擎服务器的最大数据处理量对所述目标数据进行数据分割处理,获得M个数据单元,包括:
判断所述目标数据的大小是否超过所述最大数据处理量;
若所述目标数据的大小超过所述最大数据处理量,则以预设的划分粒度对所述目标数据进行数据分割处理,获得所述M个数据单元;所述预设的划分粒度对应的数据大小不超过所述最大数据处理量对应的数据大小。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述目标数据的大小未超过所述最大数据处理量,则禁止对所述目标数据进行数据分割处理,通过与所述分布式搜索引擎服务器之间的数据传输连接发送所述目标数据。
7.根据权利要求1所述的方法,其特征在于,所述通过与所述分布式搜索引擎服务器之间的数据传输连接发送所述M个数据单元,包括:
按照所述M个数据单元的分割顺序,通过与所述分布式搜索引擎服务器之间的数据传输连接依次发送所述M个数据单元。
8.一种数据传输装置,其特征在于,包括:
接收单元,用于通过N个数据传输连接接收N个数据包,对所述N个数据包中的原始数据进行汇聚处理,获得目标数据;所述原始数据为待写入分布式搜索引擎服务器的数据;
数据处理单元,用于根据所述分布式搜索引擎服务器的最大数据处理量对所述目标数据进行数据分割处理,获得M个数据单元;所述最大数据处理量用于限制所述分布式搜索服务器的数据传输连接的单次数据传输量;
发送单元,用于通过与所述分布式搜索引擎服务器之间的数据传输连接发送所述M个数据单元。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110577396.6A CN113438274A (zh) | 2021-05-26 | 2021-05-26 | 数据传输方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110577396.6A CN113438274A (zh) | 2021-05-26 | 2021-05-26 | 数据传输方法、装置、计算机设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113438274A true CN113438274A (zh) | 2021-09-24 |
Family
ID=77802913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110577396.6A Pending CN113438274A (zh) | 2021-05-26 | 2021-05-26 | 数据传输方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113438274A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040136A (zh) * | 2021-11-05 | 2022-02-11 | 北京京东乾石科技有限公司 | 轨道巡检装置、图像处理方法、装置、设备和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377650A (zh) * | 2010-08-12 | 2012-03-14 | 华为技术有限公司 | 数据发送处理方法、装置和*** |
CN103701714A (zh) * | 2013-12-25 | 2014-04-02 | 北京奇虎科技有限公司 | 页面提取方法、服务器及网络*** |
CN109120687A (zh) * | 2018-08-09 | 2019-01-01 | 深圳市腾讯网络信息技术有限公司 | 数据包发送方法、装置、***、设备及存储介质 |
CN109800260A (zh) * | 2018-12-14 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 高并发数据存储方法、装置、计算机设备和存储介质 |
CN109951255A (zh) * | 2019-03-27 | 2019-06-28 | 深圳市网心科技有限公司 | 一种基于tcp的数据传输方法、***、源设备、及目标设备 |
US10375192B1 (en) * | 2013-03-15 | 2019-08-06 | Viasat, Inc. | Faster web browsing using HTTP over an aggregated TCP transport |
CN111147573A (zh) * | 2019-12-24 | 2020-05-12 | 网宿科技股份有限公司 | 一种数据传输的方法和装置 |
-
2021
- 2021-05-26 CN CN202110577396.6A patent/CN113438274A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377650A (zh) * | 2010-08-12 | 2012-03-14 | 华为技术有限公司 | 数据发送处理方法、装置和*** |
US10375192B1 (en) * | 2013-03-15 | 2019-08-06 | Viasat, Inc. | Faster web browsing using HTTP over an aggregated TCP transport |
CN103701714A (zh) * | 2013-12-25 | 2014-04-02 | 北京奇虎科技有限公司 | 页面提取方法、服务器及网络*** |
CN109120687A (zh) * | 2018-08-09 | 2019-01-01 | 深圳市腾讯网络信息技术有限公司 | 数据包发送方法、装置、***、设备及存储介质 |
CN109800260A (zh) * | 2018-12-14 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 高并发数据存储方法、装置、计算机设备和存储介质 |
CN109951255A (zh) * | 2019-03-27 | 2019-06-28 | 深圳市网心科技有限公司 | 一种基于tcp的数据传输方法、***、源设备、及目标设备 |
CN111147573A (zh) * | 2019-12-24 | 2020-05-12 | 网宿科技股份有限公司 | 一种数据传输的方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114040136A (zh) * | 2021-11-05 | 2022-02-11 | 北京京东乾石科技有限公司 | 轨道巡检装置、图像处理方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014528B (zh) | 报文处理方法、处理单元及虚拟专用网络服务器 | |
CN110659151B (zh) | 数据校验方法及装置,存储介质 | |
CN106959820B (zh) | 一种数据提取方法和*** | |
EP3780438B1 (en) | Data transmission method and related device | |
WO2016095149A1 (zh) | 一种数据压缩存储方法、装置,及分布式文件*** | |
US20240039995A1 (en) | Data access system and method, device, and network adapter | |
CN113742135B (zh) | 数据备份方法、装置及计算机可读存储介质 | |
US9298765B2 (en) | Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network | |
CN116208615A (zh) | 网络数据处理方法、处理模块、阵列服务器和介质 | |
CN113438274A (zh) | 数据传输方法、装置、计算机设备及可读存储介质 | |
CN109376134B (zh) | 一种文件分布式部署方法、装置、***及存储介质 | |
US7388834B2 (en) | System and method for controlling network traffic flow in a multi-processor network | |
CN111404842B (zh) | 数据传输方法、装置及计算机存储介质 | |
CN113138969A (zh) | 数据传输方法、装置、电子设备和计算机可读存储介质 | |
CN110908939B (zh) | 一种报文处理方法、装置及网络芯片 | |
CN112559116B (zh) | 内存迁移方法、装置及计算设备 | |
CN112380001A (zh) | 日志输出方法、负载均衡设备及计算机可读存储介质 | |
CN116264592A (zh) | 虚拟桌面性能探测方法、装置、设备及存储介质 | |
CN110866066B (zh) | 一种业务处理方法及装置 | |
WO2022021357A1 (zh) | 一种文件块下载方法及装置 | |
CN107615259A (zh) | 一种数据处理方法及*** | |
CN112395296A (zh) | 一种大数据归档方法、装置、设备及存储介质 | |
CN110912969A (zh) | 一种文件高速传输源节点、目的节点装置及*** | |
CN105608212B (zh) | 一种确保MapReduce的数据输入分片包含完整记录的方法与*** | |
CN112671905B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210924 |
|
RJ01 | Rejection of invention patent application after publication |