发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据自适应传输方法、装置及计算机存储介质。
第一方面,本实施例提供一种数据自适应传输方法,应用于前端设备,所述方法包括:
在确定需要向所述前端设备对应的目标引擎请求第一预设数量的目标数据时,如果截至当前时刻,从所述目标引擎获得的目标数据的数量小于所述第一预设数量情况下,向所述前端设备对应的目标引擎发送数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件;
接收所述目标引擎基于所述数据请求传输的第二预设数量的目标数据,直至从所述目标引擎中累计获得所述第一预设数量的目标数据,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
可选的,所述方法还包括:
如果数据请求为所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,基于与所述第一预设数量的目标数据对应的预设参数,确定目标数据请求的起始位置;
如果数据请求不是所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,确定目标数据请求的起始位置为上一次所述目标引擎发送的断点位置。
可选的,所述方法还包括:
在获得所述目标引擎发送的结束标识时,确定从所述目标引擎中累计获得所述第一预设数量的目标数据。
可选的,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
可选的,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
第二方面,本实施例还提供一种数据自适应传输方法,应用于目标引擎,所述方法包括:
接收与所述目标引擎对应的前端设备发送的数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件,所述目标引擎中存储有所述第一预设数量的目标数据;
基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
可选的,所述基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,包括:
基于所述第一预设数量的目标数据中每个目标数据的数据量,确定满足所述预设传输条件的第二预设数量的目标数据;
传输所述第二预设数量目标数据至所述前端设备。
可选的,在所述确定满足所述预设传输条件的第二预设数量的目标数据之后,所述方法还包括:
判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据;
如果是,发送结束标识至所述前端设备,以使得所述前端设备在接收到所述结束标识后,确认获得所述第一预设数量的目标数据,停止向所述目标引擎发送数据请求。
可选的,在所述判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据之后,所述方法还包括:
如果否,确定断点位置,将所述断点位置发送至所述前端设备,以使得所述前端设备在下一次发送数据请求时,将所述断点位置作为下一次数据请求的起始位置,所述目标引擎在下一次反馈目标数据时,从所述断点位置开始读取。
可选的,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
可选的,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
第三方面,本发明实施例还提供一种数据自适应传输装置,应用于前端设备,所述装置包括:
数据请求单元,用于在确定需要向所述前端设备对应的目标引擎请求第一预设数量的目标数据时,如果截至当前时刻,从所述目标引擎获得的目标数据的数量小于所述第一预设数量情况下,向所述前端设备对应的目标引擎发送数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件;
数据接收单元,用于接收所述目标引擎基于所述数据请求传输的第二预设数量的目标数据,直至从所述目标引擎中累计获得所述第一预设数量的目标数据,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
可选的,所述数据请求单元还用于:
如果数据请求为所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,基于与所述第一预设数量的目标数据对应的预设参数,确定目标数据请求的起始位置;
如果数据请求不是所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,确定目标数据请求的起始位置为上一次所述目标引擎发送的断点位置。
可选的,所述数据接收单元还用于:
在获得所述目标引擎发送的结束标识时,确定从所述目标引擎中累计获得所述第一预设数量的目标数据。
可选的,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
可选的,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
第四方面,本发明实施例还提供一种数据自适应传输装置,应用于目标引擎,所述装置包括:
接收单元,用于接收与所述目标引擎对应的前端设备发送的数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件,所述目标引擎中存储有所述第一预设数量的目标数据;
数据传输单元,用于基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
可选的,所述数据传输单元还用于:
基于所述第一预设数量的目标数据中每个目标数据的数据量,确定满足所述预设传输条件的第二预设数量的目标数据;
传输所述第二预设数量目标数据至所述前端设备。
可选的,所述数据传输单元还用于:
在所述确定满足所述预设传输条件的第二预设数量的目标数据之后,判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据;
如果是,发送结束标识至所述前端设备,以使得所述前端设备在接收到所述结束标识后,确认获得所述第一预设数量的目标数据,停止向所述目标引擎发送数据请求。
可选的,所述数据传输单元还用于:
在所述判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据之后,如果否,确定断点位置,将所述断点位置发送至所述前端设备,以使得所述前端设备在下一次发送数据请求时,将所述断点位置作为下一次数据请求的起始位置,所述目标引擎在下一次反馈目标数据时,从所述断点位置开始读取。
可选的,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
可选的,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
第五方面,本申请提供数据自适应传输装置,包括处理器和存储器:所述存储器用于存储执行前述第一方面和第二方面的数据自适应传输方法的程序;所述处理器被配置为用于执行所述存储器中存储的程序。
第六方面,本申请提供一种计算机存储介质,用于储存为上述数据自适应传输装置所用的计算机软件指令,其包含用于执行上述方面为数据自适应传输装置所设计的程序。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明实施例的技术方案中,通过提供一种数据自适应传输方法,在前端设备确定需要向目标引擎请求第一预设数量的目标数据时,如果截至当前时刻,从目标引擎获得的目标数据的数量小于第一预设数量情况下,向前端设备对应的目标引擎发送数据请求,其中,数据请求中包括第一预设数量、目标数据请求的起始位置与预设传输条件。进而,目标引擎在接收到该数据请求后,可以根据其前端设备的实际情况,目标引擎从起始位置指示的存储空间开始读取满足预设传输条件的第二预设数量的目标数据传输给前端设备,进而,根据用于表明前端设备实际处理能力的预设传输条件,目标引擎动态控制返回数据量,这样,前端设备与目标引擎间传输的数据可自适应的调整,有效减轻前端设备处理压力,提升了前端设备处理效率,使前端设备保持在高可用的最佳效果。
具体实施方式
本实施例公开一种数据自适应传输方法、装置及计算机存储介质。在前端设备向目标引擎请求数据时,目标引擎动态控制返回数据量,前端设备与目标引擎间传输的数据可自适应的调整,能够有效减轻前端设备处理压力,提升了前端设备处理效率。应用于前端设备的数据自适应传输方法包括:应用于前端设备,所述方法包括:在确定需要向所述前端设备对应的目标引擎请求第一预设数量的目标数据时,如果截至当前时刻,从所述目标引擎获得的目标数据的数量小于所述第一预设数量情况下,向所述前端设备对应的目标引擎发送数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件;接收所述目标引擎基于所述数据请求传输的第二预设数量的目标数据,直至从所述目标引擎中累计获得所述第一预设数量的目标数据,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例
本发明第一实施例提供一种数据自适应传输方法,该方法的流程图如图1所示,该数据自适应传输方法应用于前端设备,该数据自适应传输方法包括如下步骤:
S101:在确定需要向所述前端设备对应的目标引擎请求第一预设数量的目标数据时,如果截至当前时刻,从所述目标引擎获得的目标数据的数量小于所述第一预设数量情况下,向所述前端设备对应的目标引擎发送数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件;
S102:接收所述目标引擎基于所述数据请求传输的第二预设数量的目标数据,直至从所述目标引擎中累计获得所述第一预设数量的目标数据,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
具体的,在本实施例中,数据自适应传输方法可以应用于许多大数据处理的场景中,比如:云查杀数据分析、云搜索、网盾日志分析等场景。举例来说,以网盾日志分析的场景为例,在该场景下,分析人员通过前端设备设置搜索条件,云端保存了全网用户对应的大量的日志数据,在后端搜索引擎通过该搜索条件搜索到符合条件的日志数量巨大,而单条日志的大小也不能够确定,在分析员进行日志提取时,给前端设备展示带来一定的压力,在某些日志比较大的数据集中时,会造成前端设备处理压力过大,请求量多时甚至造成前端设备处理进程崩溃。
进而,针对上述问题,本实施例中的数据自适应传输方法,通过步骤S101,前端设备与目标引擎间会进行数据传输,由于前端设备的处理能力有限,比如:内存的限制、处理器限制等。前端设备根据自身的处理能力,制定数据传输的预设传输条件,规定目标引擎单次传输至前端设备的数据量的相关限定条件。进而,前端设备在确定需要向目标引擎请求第一预设数量的目标数据时,目标引擎中锁定该第一预设数量的目标数据,该第一预设数量的目标数据存储在对应的第一存储空间中。为了避免目标引擎一次全部返回该第一预设数量的数据,造成前端设备处理压力过大,前端设备可以分多次向目标引擎请求目标数据。如果在当前时刻,前端设备还未完全获得所有请求的目标数据,会发送数据请求至目标引擎,该数据请求中包括该第一预设数量,表明前端设备需要从目标引擎处请求共计第一预设数量的目标数据,该数据请求中还包括指示目标引擎读取目标数据的起始位置以及指示目标数据传输的预设传输条件。
目标引擎在接收到该数据请求后,从第一存储空间中的该数据请求中的起始位置开始读取第二预设数量的目标数据,并将第二预设数量的目标数据发送至前端设备,读取的第二预设数量的目标数据满足前端设备规定的预设传输条件。进而,前端设备通过步骤S102,接收目标引擎传输的该第二预设数量的目标数据。在接收完成第二预设数量的目标数据后,前端设备确认当前从目标引擎累计接收到的目标数据的数量是否小于第一预设数量,如果小于第一预设数量,表明还未获得全部的目标数据,继续向目标引擎发送数据请求,请求剩余的目标数据。如果获得全部的目标数据,即累计获得的目标数据的数量等于第一预设数量,停止向目标引擎发送数据请求。
前端设备可分多次向目标引擎请求目标数据,每次请求到目标数据后,即可及时对该次请求得到的目标数据进行对应的处理,避免了前端设备因为目标引擎单次反馈的数据量过大导致处理压力过大造成系统崩溃。并且,目标引擎可以根据前端设备的处理能力反馈对应数据量的目标数据,使前端设备与目标引擎间的数据通讯处于一个相对均衡的状态,大大减轻了系统压力,增强了系统稳定性。
进一步,在本实施例中,前端设备制定的预设传输条件可以包括但不限于以下三种预设条件:所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
具体的,在本实施例中,前端设备制定的预设传输条件可以是针对单次传输至前端设备的数据量的相关限制。包括限制目标引擎单次传输至前端设备的数据总量的第一预设条件,比如:目标引擎单次传输至前端设备的数据总量需要小于第一预设数据量(例如:100M、150M等)。
具体的,第一预设数据量的配置方式可采用静态配置或动态配置的方式。
具体的,在采用静态配置的方式时,第一预设数据量可以是预先设置的默认值(例如:100M),每次发送的数据请求中限制的单次传输的数据总量为固定值,即为该默认值。该默认值可结合前端设备的处理能力进行设置,比如:处理器的处理速度、空闲内存等参数。在具体实施过程中,默认值可根据实际需要进行设定,在此,本申请不做限制。
具体的,在采用动态配置的方式时,前端设备可以在每次发送数据请求时,均可根据当前运行状态,动态配置该第一预设数据量。前端设备中设置有不同空闲内存与第一预设数据量间的对应关系,空闲内存越大,表明前端设备当前处理能力越强,对应的第一预设数据量越大,表明前端设备有能力处理较大数据量的目标数据,允许目标引擎传输较大数据量的目标数据。动态配置的方式能更好地适配前端设备的处理能力,使得前端的处理能力得到充分利用,数据处理的效率更高。
在具体实施过程中,第一预设数据量的配置方式以及具体数值均可根据实际需要进行设定,在此,本申请不做限制。
进一步,在本实施例中,前端设备制定的预设传输条件还可以限制目标引擎单次传输至前端设备的单个目标数据的大小,包括目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件。比如:目标引擎在获得待传输的目标数据中每个目标数据的大小,如果有超过第二预设数据量(例如:100M、200M等)的目标数据,该目标数据仅能单独传输至前端设备。
第二预设数据量的配置方式类似前述第一预设数据量的配置方式,可采用静态配置或动态配置方式。
具体的,在采用静态配置的方式时,第二预设数据量可以是预先设置的默认值(例如:200M),每次发送的数据请求中限制,如果待传输目标数据的数据量大于该第二预设数据量,则目标引擎单次传输仅包括一条数据量大于第二预设数据量的目标数据。第二预设数据量为固定值,即为该默认值。该默认值可结合前端设备的处理能力进行设置,比如:处理器的处理速度、空闲内存等参数。在具体实施过程中,默认值可根据实际需要进行设定,在此,本申请不做限制。
具体的,在采用动态配置的方式时,前端设备可以在每次发送数据请求时,均可根据当前运行状态,动态配置该第二预设数据量。前端设备中设置有不同空闲内存与第二预设数据量间的对应关系,空闲内存越大,表明前端设备当前处理能力越强,对应的第二预设数据量越大,表明前端设备有能力处理较大数据量的目标数据,允许目标引擎传输较大数据量的目标数据。动态配置的方式能更好地适配前端设备的处理能力,使得前端的处理能力得到充分利用,数据处理的效率更高。
在具体实施过程中,第二预设数据量的配置方式以及具体数值均可根据实际需要进行设定,在此,本申请不做限制。
结合前述第一预设条件,预设传输条件可以是限定单次传输的数据总量小于第一预设数据量的目标数据,或,在读取到待传输的目标数据的数据量大于第二预设数据量时,该待传输的目标数据需单独传输至前端设备。
进一步,在本实施例中,前端设备还可以对目标引擎单次返回的目标数据的数量进行限定,可限定为目标引擎单次传输的目标数据的数量在预设范围内。比如:规定目标引擎单次返回的目标数据的数量需要大于或等于1个且小于或等于5个,即:目标引擎单次传输至前端设备的目标数据最多包括5个,前端设备每次最多对5个返回的数据进行处理,这样,也能有效确保前端设备具备足够的处理能力高效处理目标数据,使得数据处理快速高效。预设范围可以根据实际情况进行静态或动态配置,动态配置时,也是结合前端设备的当前运行状态,如:内存占用率、剩余缓存等运行参数。静态配置与动态配置的方式类似前述第一预设数据量与第二预设数据量,在此,本申请不做赘述。
预设传输条件可以包括前述第一预设条件、第二预设条件和第三预设条件中任意一种或多种组合,当然,预设传输条件也不限制于此三种预设条件,在具体实施过程中,还可以根据实际需要设定该预设传输条件,比如:设定为单次传输的数据量的上限为第一预设数据量的目标数据中单个目标数据最大的数据量。在此,本申请不做限制。
进而,目标引擎可基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,包括:基于所述第一预设数量的目标数据中每个目标数据的数据量,确定满足所述预设传输条件的第二预设数量的目标数据;传输所述第二预设数量目标数据至所述前端设备。
具体的,目标引擎在获得数据请求后,根据起始位置确定待传输的目标数据,然后根据待传输的各个目标数据的大小,确定满足该预设传输条件的目标数据。举例来说,前端设备请求第1~20个目标数据,第1~15个目标数据大小均为1M,第16~17个目标数据大小均为200M,第18~20个目标数据大小均为1M。预设传输条件为目标引擎单次传输目标数据的数据总量小于100M,在存在大于100M的目标数据时,目标引擎单次传输一条数据量大于100M的目标数据。所以,第一次搜索引擎反馈第1~15个目标数据,数据总量为15M,第二次搜索引擎反馈第16个目标数据,数据总量为200M,第三次搜索引擎反馈第17个目标数据,数据总量为200M,第四次搜索引擎反馈第18~20个目标数据,数据总量为3M。
进一步,在本实施例中,在前端设备发送数据请求时,需要确定请求数据的起始位置,起始位置的确定分为以下两种情况:
第一种:如果数据请求为所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,基于与所述第一预设数量的目标数据对应的预设参数,确定目标数据请求的起始位置。
具体的,在本实施例中,如果数据请求为前端设备向目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,可基于与第一预设数量的目标数据对应的预设参数,确定目标数据请求的起始位置。与第一预设数量的目标数据对应的预设参数可以是搜索引擎反馈的该第一预设数量的目标数据存储在第一存储空间中的位置信息,包括起始位置和结束位置等。前端设备在发送数据请求时,将指示目标引擎读取目标数据的起始位置设置为该目标引擎反馈的起始位置。或者,第一预设数量的目标数据需要展示在预设页面上,数据请求中的起始位置可以是该预设页面的页码,目标引擎通过该页码定位出读取目标数据的起始位置。以云搜索场景为例,前端服务器在接收到某搜索关键词时,发送搜索关键词至搜索引擎,搜索引擎确定与该搜索关键词对应的多条搜索结果,前端服务器确定需要在多个页面上分别展示该搜索关键词对应的搜索结果,每页需展示20条搜索结果,每个页面的页面对应有一个起始位置,搜索引擎确定第1页需展示第1条~第20条搜索结果,第2页需展示第21条~第40条搜索结果,第3页需展示第31条~第50条搜索结果,这样,第1页的起始位置为第1条搜索结果所在的位置,第2页对应的起始位置为第21条搜索结果所在的位置,第3页对应的起始位置为第21条搜索结果所在的位置,以此类推,可以确定每页的起始位置。进而,前端服务器仅需要将起始位置设置为对应的需要展示搜索结果的页面的页码,搜索引擎获得该页码后,对应得到起始位置,然后从该起始位置开始读取满足预设传输条件的搜索结果。
第二种:如果数据请求不是所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,确定目标数据请求的起始位置为上一次所述目标引擎发送的断点位置。
具体的,在本实施例中,如果数据请求不是前端设备向目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,确定目标数据请求的起始位置为上一次目标引擎发送的断点位置。前端设备向目标引擎请求第一预设数量的目标数据,目标引擎如果未反馈完所有的目标数据,每次反馈目标数据时均会反馈断点位置至前端设备,进而,前端设备在下一次请求目标数据时,可将目标数据请求的起始位置设置为该断点位置,指示目标引擎从该断点位置开始读取目标数据,确保数据读取的连续性与准确性。举例来说,前端设备向目标请求20个目标数据,前端设备在第一次发送数据请求后,获得目标引擎传输的第1个~第10个目标数据,目标引擎反馈至前端设备的断点位置为第11个目标数据所在的位置,由于还未完全获得20个目标数据,前端设备继续向目标引擎发送数据请求,该数据请求中的起始位置为上一次目标引擎反馈的断点位置,即第11个目标数据所在的位置,目标引擎从该第11个目标数据所在的位置开始读取目标数据。
进一步,在本实施例中,目标引擎在读取目标数据时,可采用游标式分块读取方式。具体的,第一预设数据量的目标数据依次存储在第一存储空间内,可在最后一个目标数据处设置结束标识。由于前端设备发送的数据请求中包括预设传输条件,比如:单次传输的数据量不超过100M,目标引擎从起始位置处开始读取第一存储空间中的目标数据,如果读取到最后一个目标数据时,也读取到该结束标识,表示目标数据全部读取完成,在反馈目标数据至前端设备时,还会发送该结束标识至前端设备,进而,前端设备在获得目标引擎发送的结束标识时,确定从目标引擎中累计获得第一预设数量的目标数据,完成全部目标数据的获取,不再向目标引擎请求数据。
当然,目标引擎可对第一预设数据量的目标数据依次编号,数据请求中包括前端设备请求的数据总量,即第一预设数量,目标引擎提取每次读取的最后一个目标数据的编号,判断该编号是否小于第一预设数量,如果最后一个目标数据的编号小于第一预设数量,表明目标数据还未全部传输完成,目标引擎发送断点位置至前端设备。同时,目标引擎还可以发送对应的未结束标识至前端设备,前端设备接收到该未结束标识时,可确定截至当前时刻,从目标引擎获得的目标数据的数量小于第一预设数量,未完全获得第一预设数量的目标数据,继续向目标引擎发送数据请求。如果最后一个目标数据的编号等于第一预设数量,表明目标数据已经全部传输完成,目标引擎发送结束标识至前端设备。前端设备接收到该结束标识时,可确定截至当前时刻,从目标引擎获得的目标数据的数量等于第一预设数量,停止向目标引擎发送数据请求。
为了更好地理解本实施例中的数据自适应传输方法,下面引入具体的场景对本实施例中的数据自适应传输方法进行详细阐述,在云查杀、云搜索等场景,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
在现有技术中,如请求当前页面需要展示的20条搜索结果,前端服务器向搜索引擎发送数据请求,包括起始位置为当前页码n,每页条数为20。进而,搜索引擎返回20条搜索结果,返回的数据量为20条搜索结果的数据总和。如果20条搜索结果中有3条搜索结果大小为200M,10条搜索结果的大小为1M,7条搜索结果的大小为20K,那么,搜索引擎向前端服务器反馈的数据总量为200M*3+1M*10+20K*7=610.14M,这样,每一个数据请求可能会消耗前端服务器超过600M的内存,无论处理速度、处理能力、进程数都受到了较大限制,加上网络带宽限制问题,前端服务器只有把这600M数据全部返回给客户端之后,这部分前端服务器资源才有可能释放。一台4G内存的前端服务器,前端请求单进程占用内存大小为预定制,单个进程设置预分配内存为1024M,因为512M已经不满足需求,会造成http500服务器内部错误,类似数据请求,除去服务器操作系统自身进程占用的内存1G,剩余的内存只能开2-3个进程用于处理此类数据请求,服务器利用率较低。
在采用本实施例中的数据自适应传输方法后,沿用上述示例,请求20条搜索结果,前端服务器发送数据请求,包括起始位置为:n,预设传输条件为单次传输的数据总量小于100M,或仅传输1条大于100M的搜索结果。
20条搜索结果中仍然包括3条搜索结果大小为200M,10条搜索结果的大小为1M,7条搜索结果的大小为20K,3条200M的搜索结果据分别是第16条、第17条、第20条,那么搜索引擎返回模式如下:
第一次,返回第1-15条搜索结果,数据总量小于100M,并且返回下次请求断点位置为第16条搜索结果所在位置,针对本次数据请求前端服务器消耗内存为:小于15*1M=15M;
第二次,前端服务器继续发送数据请求,包括起始位置为:第16条搜索结果所在位置,预设传输条件为单次传输的数据总量小于100M,或仅传输1条大于100M的搜索结果。搜索引擎根据起始位置继续读取,返回第16条搜索结果,总大小为200M,下次请求断点为第17条搜索结果所在位置。本次数据请求消耗前端服务器内存为:200M。
第三次,前端服务器继续发送数据请求,包括起始位置为:第17条搜索结果所在位置,预设传输条件为单次传输的数据总量小于100M,或仅传输1条大于100M的搜索结果。搜索引擎根据起始位置继续读取,返回第17条搜索结果,总大小为200M,下次请求断点为第18条搜索结果所在位置。本次数据请求消耗前端服务器内存为:200M。
第四次,前端服务器继续发送数据请求,包括起始位置为:第18条搜索结果所在位置,预设传输条件为单次传输的数据总量小于100M,或仅传输1条大于100M的搜索结果。搜索引擎根据起始位置继续读取,返回第18条、第19条搜索结果,总大小为小于2M,下次请求断点为第20条搜索结果所在位置。本次数据请求消耗前端服务器内存为:小于2*1M=2M。
第五次,前端服务器继续发送数据请求,包括起始位置为:第20条搜索结果所在位置,预设传输条件为单次传输的数据总量小于100M,或仅传输1条大于100M的搜索结果。搜索引擎根据起始位置继续读取,返回第20条搜索结果,总大小为200M,返回结束标识。本次数据请求消耗前端服务器内存为:200M。
由此可看出,使用本实施例中的数据自适应传输方法,20条数据请求被系统自动拆分成了5次请求,单次请求消耗的前端服务器最大内存为200M,同样4G内存的前端服务器,可以开的进程数为:3G/单个进程256M内存=12进程,前端服务器由原来的3进程处理能力提升到了12进程处理能力,前端服务器无论从带宽、压力处理质量等方面都会有较大的提升,系统质量及体验得到比较高的提升。
请参照图2,本发明第二实施例还提供了一种数据自适应传输方法,应用于目标引擎,所述方法包括以下步骤:
S201:接收与所述目标引擎对应的前端设备发送的数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件,所述目标引擎中存储有所述第一预设数量的目标数据;
S202:基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
作为一种可选的实施例,所述基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,包括:
基于所述第一预设数量的目标数据中每个目标数据的数据量,确定满足所述预设传输条件的第二预设数量的目标数据;传输所述第二预设数量目标数据至所述前端设备。
作为一种可选的实施例,在所述确定满足所述预设传输条件的第二预设数量的目标数据之后,所述方法还包括:判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据;如果是,发送结束标识至所述前端设备,以使得所述前端设备在接收到所述结束标识后,确认获得所述第一预设数量的目标数据,停止向所述目标引擎发送数据请求。
作为一种可选的实施例,在所述判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据之后,所述方法还包括:
如果否,确定断点位置,将所述断点位置发送至所述前端设备,以使得所述前端设备在下一次发送数据请求时,将所述断点位置作为下一次数据请求的起始位置,所述目标引擎在下一次反馈目标数据时,从所述断点位置开始读取。
作为一种可选的实施例,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
作为一种可选的实施例,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
具体的,在本实施例中,应用于目标引擎的数据自适应传输方法的具体实现方式已经在前述第一实施例中详细阐述,在此,本实施例不再赘述。
请参照图3,本发明第三实施例还提供了一种数据自适应传输装置,应用于前端设备,所述装置包括:
数据请求单元301,用于在确定需要向所述前端设备对应的目标引擎请求第一预设数量的目标数据时,如果截至当前时刻,从所述目标引擎获得的目标数据的数量小于所述第一预设数量情况下,向所述前端设备对应的目标引擎发送数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件;
数据接收单元302,用于接收所述目标引擎基于所述数据请求传输的第二预设数量的目标数据,直至从所述目标引擎中累计获得所述第一预设数量的目标数据,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
作为一种可选的实施例,所述数据请求单元还用于:
如果数据请求为所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,基于与所述第一预设数量的目标数据对应的预设参数,确定目标数据请求的起始位置;
如果数据请求不是所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,确定目标数据请求的起始位置为上一次所述目标引擎发送的断点位置。
作为一种可选的实施例,所述数据接收单元还用于:
在获得所述目标引擎发送的结束标识时,确定从所述目标引擎中累计获得所述第一预设数量的目标数据。
作为一种可选的实施例,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
作为一种可选的实施例,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
具体的,在本实施例中,应用于前端设备的数据自适应传输装置进行数据传输的具体实现方式已经在前述第一实施例中详细阐述,在此,本实施例不再赘述。
请参照图4,本发明第四实施例还提供了一种数据自适应传输装置,应用于目标引擎,所述装置包括:
接收单元401,用于接收与所述目标引擎对应的前端设备发送的数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件,所述目标引擎中存储有所述第一预设数量的目标数据;
数据传输单元402,用于基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
作为一种可选的实施例,所述数据传输单元还用于:
基于所述第一预设数量的目标数据中每个目标数据的数据量,确定满足所述预设传输条件的第二预设数量的目标数据;
传输所述第二预设数量目标数据至所述前端设备。
作为一种可选的实施例,所述数据传输单元还用于:
在所述确定满足所述预设传输条件的第二预设数量的目标数据之后,判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据;
如果是,发送结束标识至所述前端设备,以使得所述前端设备在接收到所述结束标识后,确认获得所述第一预设数量的目标数据,停止向所述目标引擎发送数据请求。
作为一种可选的实施例,所述数据传输单元还用于:
在所述判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据之后,如果否,确定断点位置,将所述断点位置发送至所述前端设备,以使得所述前端设备在下一次发送数据请求时,将所述断点位置作为下一次数据请求的起始位置,所述目标引擎在下一次反馈目标数据时,从所述断点位置开始读取。
作为一种可选的实施例,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
作为一种可选的实施例,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
具体的,在本实施例中,应用于目标引擎的数据自适应传输装置进行数据传输的具体实现方式已经在前述第一实施例中详细阐述,在此,本实施例不再赘述。
本发明第五实施例还提供了一种数据自适应传输装置,请参照图4,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。
图5示出的是与本发明实施例提供的数据自适应传输装置的部分结构的示意图。该数据自适应传输装置包括存储器501,所述存储器501用于存储执行前述第一实施例中的数据自适应传输方法的程序。该数据自适应传输装置还包括处理器502,与所述存储器501连接,所述处理器502被配置为用于执行所述存储器501中存储的程序。
所述处理器502执行所述计算机程序时实现上述第一实施例或第二实施例中数据自适应传输方法中的步骤。或者,所述处理器执行所述计算机程序时实现上述第三实施例或第四实施例中的数据自适应传输装置中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述计算机装置中的执行过程。
所述装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图5仅仅是数据自适应传输装置的功能部件的示例图,并不构成对数据自适应传输装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据自适应传输装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器502可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器501可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据数据自适应传输装置的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在本发明实施例中,该数据自适应传输应用于前端设备情况下,处理器502具有以下功能:
在确定需要向所述前端设备对应的目标引擎请求第一预设数量的目标数据时,如果截至当前时刻,从所述目标引擎获得的目标数据的数量小于所述第一预设数量情况下,向所述前端设备对应的目标引擎发送数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件;
接收所述目标引擎基于所述数据请求传输的第二预设数量的目标数据,直至从所述目标引擎中累计获得所述第一预设数量的目标数据,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
在本发明实施例中,该处理器502还具有以下功能:
如果数据请求为所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,基于与所述第一预设数量的目标数据对应的预设参数,确定目标数据请求的起始位置;
如果数据请求不是所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,确定目标数据请求的起始位置为上一次所述目标引擎发送的断点位置。
在本发明实施例中,该处理器502还具有以下功能:
在获得所述目标引擎发送的结束标识时,确定从所述目标引擎中累计获得所述第一预设数量的目标数据。
在本发明实施例中,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
在本发明实施例中,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
在本发明实施例中,该数据自适应传输应用于目标引擎情况下,处理器502具有以下功能:
接收与所述目标引擎对应的前端设备发送的数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件,所述目标引擎中存储有所述第一预设数量的目标数据;
基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
在本发明实施例中,该处理器502还具有以下功能:
基于所述第一预设数量的目标数据中每个目标数据的数据量,确定满足所述预设传输条件的第二预设数量的目标数据;
传输所述第二预设数量目标数据至所述前端设备。
在本发明实施例中,该处理器502还具有以下功能:
判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据;
如果是,发送结束标识至所述前端设备,以使得所述前端设备在接收到所述结束标识后,确认获得所述第一预设数量的目标数据,停止向所述目标引擎发送数据请求。
在本发明实施例中,该处理器502还具有以下功能:
在所述判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据之后,如果否,确定断点位置,将所述断点位置发送至所述前端设备,以使得所述前端设备在下一次发送数据请求时,将所述断点位置作为下一次数据请求的起始位置,所述目标引擎在下一次反馈目标数据时,从所述断点位置开始读取。
本发明第六实施例提供了一种计算机可读存储介质,其上存储有计算机程序,本发明第三实施例或第四实施例中的所述数据自适应传输装置集成的功能单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述第一实施例的数据自适应传输方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
本发明还公开A1、一种数据自适应传输方法,应用于前端设备,所述方法包括:
在确定需要向所述前端设备对应的目标引擎请求第一预设数量的目标数据时,如果截至当前时刻,从所述目标引擎获得的目标数据的数量小于所述第一预设数量情况下,向所述前端设备对应的目标引擎发送数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件;
接收所述目标引擎基于所述数据请求传输的第二预设数量的目标数据,直至从所述目标引擎中累计获得所述第一预设数量的目标数据,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
A2、如A1所述的方法,所述方法还包括:
如果数据请求为所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,基于与所述第一预设数量的目标数据对应的预设参数,确定目标数据请求的起始位置;
如果数据请求不是所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,确定目标数据请求的起始位置为上一次所述目标引擎发送的断点位置。
A3、如A1所述的方法,所述方法还包括:
在获得所述目标引擎发送的结束标识时,确定从所述目标引擎中累计获得所述第一预设数量的目标数据。
A4、如A1-A3中任一所述的方法,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
A5、如A1-A3中任一所述的方法,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
B6、一种数据自适应传输方法,应用于目标引擎,所述方法包括:
接收与所述目标引擎对应的前端设备发送的数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件,所述目标引擎中存储有所述第一预设数量的目标数据;
基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
B7、如B6所述的方法,所述基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,包括:
基于所述第一预设数量的目标数据中每个目标数据的数据量,确定满足所述预设传输条件的第二预设数量的目标数据;
传输所述第二预设数量目标数据至所述前端设备。
B8、如B6所述的方法,在所述确定满足所述预设传输条件的第二预设数量的目标数据之后,所述方法还包括:
判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据;
如果是,发送结束标识至所述前端设备,以使得所述前端设备在接收到所述结束标识后,确认获得所述第一预设数量的目标数据,停止向所述目标引擎发送数据请求。
B9、如B8所述的方法,在所述判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据之后,所述方法还包括:
如果否,确定断点位置,将所述断点位置发送至所述前端设备,以使得所述前端设备在下一次发送数据请求时,将所述断点位置作为下一次数据请求的起始位置,所述目标引擎在下一次反馈目标数据时,从所述断点位置开始读取。
B10、如B6-B9中任一所述的方法,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
B11、如B6-B9中任一所述的方法,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
C12、一种数据自适应传输装置,应用于前端设备,所述装置包括:
数据请求单元,用于在确定需要向所述前端设备对应的目标引擎请求第一预设数量的目标数据时,如果截至当前时刻,从所述目标引擎获得的目标数据的数量小于所述第一预设数量情况下,向所述前端设备对应的目标引擎发送数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件;
数据接收单元,用于接收所述目标引擎基于所述数据请求传输的第二预设数量的目标数据,直至从所述目标引擎中累计获得所述第一预设数量的目标数据,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
C13、如C12所述的装置,所述数据请求单元还用于:
如果数据请求为所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,基于与所述第一预设数量的目标数据对应的预设参数,确定目标数据请求的起始位置;
如果数据请求不是所述前端设备向所述目标引擎发送的与所述第一预设数量的目标数据对应的首次数据请求,确定目标数据请求的起始位置为上一次所述目标引擎发送的断点位置。
C14、如C12所述的装置,所述数据接收单元还用于:
在获得所述目标引擎发送的结束标识时,确定从所述目标引擎中累计获得所述第一预设数量的目标数据。
C15、如C12-C14中任一所述的装置,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
C16、如C12-C14中任一所述的装置,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
D17、一种数据自适应传输装置,应用于目标引擎,所述装置包括:
接收单元,用于接收与所述目标引擎对应的前端设备发送的数据请求,其中,所述数据请求中包括所述第一预设数量、目标数据请求的起始位置与预设传输条件,所述目标引擎中存储有所述第一预设数量的目标数据;
数据传输单元,用于基于所述数据请求,传输第二预设数量的目标数据至所述前端设备,其中,所述第二预设数量小于或等于所述第一预设数量,所述第二预设数量的目标数据为所述目标引擎从所述起始位置指示的存储空间开始读取的满足所述预设传输条件的目标数据。
D18、如D17所述的装置,所述数据传输单元还用于:
基于所述第一预设数量的目标数据中每个目标数据的数据量,确定满足所述预设传输条件的第二预设数量的目标数据;
传输所述第二预设数量目标数据至所述前端设备。
D19、如D17所述的装置,所述数据传输单元还用于:
在所述确定满足所述预设传输条件的第二预设数量的目标数据之后,判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据;
如果是,发送结束标识至所述前端设备,以使得所述前端设备在接收到所述结束标识后,确认获得所述第一预设数量的目标数据,停止向所述目标引擎发送数据请求。
D20、如D19所述的装置,所述数据传输单元还用于:
在所述判断所述第二预设数量的目标数据的最后一个目标数据是否为所述第一预设数量的目标数据中的最后一个目标数据之后,如果否,确定断点位置,将所述断点位置发送至所述前端设备,以使得所述前端设备在下一次发送数据请求时,将所述断点位置作为下一次数据请求的起始位置,所述目标引擎在下一次反馈目标数据时,从所述断点位置开始读取。
D21、如D16-D20中任一所述的装置,所述预设传输条件包括:
所述目标引擎单次传输目标数据的数据总量小于第一预设数据量的第一预设条件;或
所述目标引擎单次传输一条数据量大于第二预设数据量的目标数据的第二预设条件;或
所述目标引擎单次传输的目标数据的数量在预设范围内的第三预设条件。
D22、如D16-D20中任一所述的装置,所述前端设备为前端服务器,所述目标引擎为搜索引擎,所述目标数据为搜索结果,所述第一预设数量为预设页面需要展示的搜索结果的数量。
E23、一种数据自适应传输装置,包括处理器和存储器:
所述存储器用于存储执行A1至A11中任一项所述方法的程序;
所述处理器被配置为用于执行所述存储器中存储的程序。
F24、一种计算机存储介质,用于储存为上述A1至A11中任一项所述数据自适应传输方法所用的计算机软件指令,其包含用于执行上述方面为自适应传输方法所设计的程序。