CN112671918A - 基于二进制的分布式数据下载方法、装置、设备及介质 - Google Patents

基于二进制的分布式数据下载方法、装置、设备及介质 Download PDF

Info

Publication number
CN112671918A
CN112671918A CN202011593608.1A CN202011593608A CN112671918A CN 112671918 A CN112671918 A CN 112671918A CN 202011593608 A CN202011593608 A CN 202011593608A CN 112671918 A CN112671918 A CN 112671918A
Authority
CN
China
Prior art keywords
binary
target file
server
file block
cache
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.)
Granted
Application number
CN202011593608.1A
Other languages
English (en)
Other versions
CN112671918B (zh
Inventor
杨小彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jianyibao Technology Co ltd
Original Assignee
Ping An Puhui Enterprise Management Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202011593608.1A priority Critical patent/CN112671918B/zh
Publication of CN112671918A publication Critical patent/CN112671918A/zh
Application granted granted Critical
Publication of CN112671918B publication Critical patent/CN112671918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于二进制的分布式数据下载方法、装置、设备及介质,应用于云存储技术领域,用于解决用户在下载资源的时候突然中断、网络环境发生变化或者用户更换了设备导致之前下载的数据全部作废,又需要重新下载的问题。本发明提供的方法包括:将目标文件转换为二进制目标文件并存储在分布式集群中的服务器;将二进制目标文件分割为多个文件块并进行编号,然后存储在服务器的缓存器中;响应于客户端发送的包括所需要的二进制目标文件块的编号的下载请求,判断曾经发送过目标文件的服务器的缓存器中是否存储有对应编号的二进制目标文件块;将下载请求中所需的二进制目标文件块发送给客户端。

Description

基于二进制的分布式数据下载方法、装置、设备及介质
技术领域
本发明涉及云存储技术领域,尤其涉及一种基于二进制的分布式数据下载方法、装置、设备及介质。
背景技术
随着科技的发展和用户需求的不断提高,目前的文件越来越大,尤其是在在高清影视、大型电脑游戏以及大数据等的方面,文件动辄上百G,对于这方面的文件下载需求,往往采取分布式下载。分布式就是指数据可以不位于一个服务器上,而是分散到多个服务器。分布式有利于任务在整个计算机系统上进行分配与优化,克服了传统集中式系统会导致中心主机资源紧张与响应瓶颈的缺陷。通过将大量的数据存储服务器集合起来,在内部表现为多个存储服务器协同工作,共同承担数据存储的任务,将数据存储任务划分为多个子任务并行存储,从而减小了数据存储的时间,并增加数据安全性。
但是用户在下载资源的时候如果突然中断,服务器和客户端必须重新建立连接,从头开始将数据发送给客户端。此外,若网络环境发生变化或者用户更换了设备,则可能导致之前下载的数据将全部作废,又需要重新下载,严重影响用户使用体验。
发明内容
在本发明的一个方面,提供了一种基于二进制的分布式数据下载方法、装置、计算机设备及存储介质,以解决用户在下载资源的时候意外中断导致需要重新下载,从而造成下载效率低的问题。其中,基于二进制的分布式数据下载方法具体包括:
接收到客户端发送的下载请求时,根据所述下载请求中获取二进制目标文件块的编号;
根据所述编号获取至少一台临时服务器;
判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块;
若在所述缓存器中未找到所述二进制目标文件块,则选取所述分布式集群中负载最低的服务器,得到目标服务器;
从所述目标服务器的存储器中提取所述二进制目标文件块;
将提取的所述二进制目标文件块缓存到所述目标服务器的缓存器中,并从所述目标服务器的缓存器中提取所述二进制目标文件块;
将所述二进制目标文件块发送给所述客户端。
在本发明的另一个方面,还提供了一种基于二进制的分布式数据下载系统,包括分布式集群以及客户端,
所述分布式集群执行以下步骤:
接收到客户端发送的下载请求时,根据所述下载请求中获取二进制目标文件块的编号;
根据所述编号获取至少一台临时服务器;
判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块;
若在所述缓存器中未找到所述二进制目标文件块,则选取所述分布式集群中负载最低的服务器,得到目标服务器;
从所述目标服务器的存储器中提取所述二进制目标文件块;
将提取的所述二进制目标文件块缓存到所述目标服务器的缓存器中,并从所述目标服务器的缓存器中提取所述二进制目标文件块;
将所述二进制目标文件块发送给所述客户端。
所述客户端执行以下步骤:
将从所述分布式集群中提取的所有二进制目标文件块合并为完整的二进制目标文件;
将所述完整的二进制目标文件转换为对应的目标文件。
在本发明的另一个方面,还提供了一种基于二进制的分布式数据下载装置,包括:
文件块编号获取模块,用于接收到客户端发送的下载请求时,根据所述下载请求中获取二进制目标文件块的编号;
临时服务器获取模块,用于根据所述编号获取至少一台临时服务器;
文件块判断模块,用于判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块;
目标服务器获取模块,用于若在所述缓存器中未找到所述二进制目标文件块,则选取所述分布式集群中负载最低的服务器,得到目标服务器;
存储器提取模块,用于从所述目标服务器的存储器中提取所述二进制目标文件块;
文件块缓存模块,用于将提取的所述二进制目标文件块缓存到所述目标服务器的缓存器中,并从所述目标服务器的缓存器中提取所述二进制目标文件块;
文件块发送模块,用于将所述二进制目标文件块发送给所述客户端。
在本发明的另一个方面,还提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于二进制的分布式数据下载方法的步骤。
在本发明的另一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于二进制的分布式数据下载方法的步骤。
本发明的有益技术效果包括:通过将目标文件转换为二进制进行存储,可以通用于各种应用环境,只需要在下载后进行转换回原文件即可。通过将二进制的目标文件分成小片段的文件块并且编号,当用户下载中断,下次下载可以从终端编号位置继续下载,无需整个文件重新下载。此外,上述文件块的大小可以根据服务器的缓存进行设定,通过在服务器的缓存中保存一定量的文件块,可以加快文件的获取和下载速度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例中基于二进制的分布式数据下载方法的应用环境示意图;
图2是本发明一个实施例中基于二进制的分布式数据下载方法的一个流程图;
图3是本发明另一个实施例中基于二进制的分布式数据下载方法的一个流程图;
图4是本发明一个实施例中基于二进制的分布式数据下载装置的交互流程图;
图5是本发明一个实施例中基于二进制的分布式数据下载装置的结构示意图;
图6是本发明一个实施例中计算机设备的示意图;
图7是本发明另一个实施例中计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的基于二进制的分布式数据下载方法,可应用在如图1的应用环境中,其中,终端设备通过网络与服务器进行通信。其中,终端设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种基于二进制的分布式数据下载方法方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S1:接收到客户端发送的下载请求时,根据所述下载请求中获取二进制目标文件块的编号。
客户端向分布式集群请求下载文件时,会向分布式集群中的索引服务器或者中央控制服务器发送下载请求,该下载请求包括了需要下载的目标文件的文件名以及具体的二进制目标文件块的编号。
S2:根据所述编号获取至少一台临时服务器。
此处,当用户端向分布式集群请求获取目标文件时,根据分布式集群中的索引服务器或者中央控制服务器中的系统记录日志,优先连接到曾经发送过目标文件的服务器作为临时服务器。具体地,由于选择的服务器曾经发送过客户端所需要的目标文件,因此该服务器的缓存器具有编号对应的二进制目标文件块的几率较高。
S3:判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块。
连接到临时服务器后,判断上述临时服务器的缓存器中是否存储有目标。
S4:若在所述缓存器中未找到所述二进制目标文件块,则选取所述分布式集群中负载最低的服务器,得到目标服务器。
若临时服务器的缓存器中没有存储所述编号对应的二进制目标文件块,则索引服务器或者中央控制服务器选取分布式集群中负载最低的服务器作为目标服务器,可减轻后续系统响应用户下载请求时,处理请求的压力。
S5:从所述目标服务器的存储器中提取所述二进制目标文件块。
包括目标服务器在内的各个服务器的存储器均存储有包含完整二进制目标文件的二进制目标文件块,该存储器的种类将在后述展开说明。
S6:将提取的所述二进制目标文件块缓存到所述目标服务器的缓存器中,并从所述目标服务器的缓存器中提取所述二进制目标文件块。
由于后续可能有其他的客户端会请求同一二进制目标文件块,因此将其先缓存在目标服务器的缓存器中,若有其他客户端请求该二进制目标文件块,可以直接从缓存器中提取并发送给客户端。该缓存器的种类将在后述展开说明。
S7:将所述二进制目标文件块发送给所述客户端。
选择的服务器将下载请求中所需编号的二进制目标文件块缓存到缓存器中,并从所述服务器的缓存器中提取下载请求中所需编号的二进制目标文件块。在步骤S7中,分布式集群将下载请求中所需编号的二进制目标文件块发送给客户端,客户端将其存储在自身的存储器中,然后客户端发出新的下载请求,直至将构成目标文件的所有二进制目标文件块下载完毕。
在一个具体的实施例中,步骤S3之后,还包括:
若所述临时服务器的缓存器中存储有所述二进制目标文件块,则从所述临时服务器的缓存器中提取所述二进制目标文件块。
如果选择的服务器的缓存器中存储有编号对应的二进制目标文件块,则直接从服务器的缓存器中提取该二进制目标文件块即可。
在一个具体的实施例中,在步骤S3中,还包括:
获取所有所述缓存器中存储有所述二进制目标文件块的所述临时服务器;对获取的所述临时服务器按照接收所述下载请求的次数进行排序;
从排序结果中接收所述下载请求次数最多的所述服务器的缓存器中提取所述二进制目标文件块。
在多数情况下,分布性集群中有多台服务器都曾经发送过目标文件,此时可以将这些服务器按照响应下载请求的次数进行排序,响应下载请求的次数越多排名越靠前,原因同上,即由于排名靠前的服务器多次发送过客户端所需要的目标文件,因此该服务器的缓存器具有编号对应的二进制目标文件块的几率较高。将上述服务器进行排序后,优先连接响应下载请求的次数多的服务器。
如上所述,将上述服务器按照响应下载请求的次数进行排序后,优先连接响应下载请求的次数多的服务器,若没有在该服务器的缓存器中检测到下载请求中的编号对应的二进制目标文件块,则按照排序依次对排序的服务器进行检测,直至检测到下载请求中的编号对应的二进制目标文件块。若在排序后的服务器中都没有找到下载请求中的编号对应的二进制目标文件块,则执行步骤S4中的选取分布式集群中负载最低的服务器。选择的服务器将下载请求中所需编号的二进制目标文件块缓存到缓存器中,并从服务器的缓存器中提取所述下载请求中所需编号的二进制目标文件块的步骤。
在一个具体的实施例中,步骤S3还包括:
分多个线程判断所述临时服务器的缓存器是否存储有所述二进制目标文件块。
具体地,客户端能够一次性向分布性集群发送多条下载请求,分别请求下载不同编号的二进制目标文件块。为了提高下载效率以及降低单台服务器的运行负载,客户端可以将上述多条下载请求分别连接到不同的服务器,更具体的,连接到多台曾经发送过目标文件的服务器。
在一个优选的实施例中,为了提高下载效率,客户端可以将上述多条下载请求同时在一台服务器的缓存器中检测是否具有上述多条下载请求所需编号的多个二进制目标文件块,如果有一个或者多个所需编号的二进制目标文件块,则可以同时提取上述二进制目标文件块,以提高下载效率。
在一个具体的实施例中,如图3所示,所述上述基于二进制的分布式数据下载方法在所述步骤S1之前,还包括:
S101:将预设的目标文件转换为二进制目标文件。
转换成二进制的原因是因为二进制数据在传输过程中不会因为传输过程中的网络环境和设备不同而被更改(计算机底层只识别二进制)。在客户端也能用相同的方法将二进制数据拼接还原成源文件。具体地,当目标文件是音视频,音视频本身就是以二进制的格式进行存储(只是不同的文件类型二进制编码方式不一样)。当目标文件是文本文件(txt、json,yml等)这种里边存储的是字符,需要使用一种字符编码协议将其转换成二进制(例如UTF-8)。
S102:分别将所述二进制目标文件存储在所述分布式集群的各服务器的存储器中。
目标文件存储在分布式集群中的每一台服务器中,各服务器均可响应客户端的用户请求。上述存储器具体是例如机械硬盘(HDD,Hard Disk Drive)或者固态硬盘(SSD,Solid-State Drive)等的非易失存储器,也可以包括磁带存储器(Magnetic TapeStorage)等。相对于后述的缓存器而言,其读写速度未必需要非常快,只要容量相对大,价格相对低,能够用于长期存放各类数据即可。
S103:分别将所述二进制目标文件,按预设数据量分割成多个二进制目标文件块,并分别对每一个二进制目标文件块进行编号。
具体地,将二进制目标文件的数据分割成多个二进制目标文件块,并为每个数据片段进行编号后存储。切割的多个文件块可以是大小相同的文件块,也可以是大小不同的文件块。此外,标注编号的方式可以是从原目标文件的文件头到文件尾进行编号,也可以按照目标文件被响应的时间先后顺序依次进行顺序编号。具体地,目标文件分割成多个文件块的步骤是在转换成二进制之后进行的。
S104:按照所述缓存器的大小将预设数量的所述二进制目标文件块缓存到所述服务器的缓存器中。
根据服务器的缓存器的大小设置缓存到缓存器的二进制目标文件块的数量,缓存的二进制目标文件块的编号可以是随机的,也可以是连续的,在一个优选的实施例中,各个服务器的缓存器中缓存不同编号的二进制目标文件块,以利于客户端一次能够请求到尽可能多编号的二进制目标文件块。此处的缓存器不仅包括芯片内部的SRAM缓存、主板或者芯片上的DRAM内存等的具有高读写性能的易失性存储器,也包括具有高读写性能的非易失性存储器,例如傲腾内存(Optane)、直接连接到PCI-Express总线上的高性能固态硬盘、以及由固态硬盘组成的磁盘阵列,只要读写性能高于步骤S102中的存储器的存储设备,都可以作为缓存器使用。
在一个具体的实施例中,步骤S104还包括:
为所述缓存到所述缓存器中的所述二进制目标文件块设置缓存时间;
若所述二进制目标文件块在所述缓存时间内没有被提取,则从所述服务器的缓存器中删除所述二进制目标文件块。
由于服务器的缓存器的大小有限,有必要定时删除一些一直没有被请求的二进制目标文件块,以释放服务器的缓存器的空间以缓存其他编号的二进制目标文件块。缓存时间是指缓存中的文件多久过期(例如,1分钟后过期,10分钟后过期),这里的目的是为了更合理的保存缓存,防止有的文件被频繁请求,但是缓存时间却很短,导致每次都要去存储器中获取,响应时间就会变慢。
在本发明的另一个实施例中,上述基于二进制的分布式数据下载方法用于客户端时,包括以下步骤:
将从分布式集群中提取的所有二进制目标文件块合并为完整的二进制目标文件;
将所述完整的二进制目标文件转换为对应的目标文件。
客户端接收到所有的二进制目标文件块后,将其合并为完整的二进制目标文件。由于下载的是二进制目标文件,在任何客户端上都是一样的,例如下载到一半的时候客户端发生损坏或者需要更换到其他客户端时,将从原客户端的存储器中将已经下载好的二进制目标文件块拷贝到其他的客户端内,可以继续下载未下载的二进制目标文件块,之前下载的二进制目标文件块并不会丢失。然后,根据具体需要,将二进制目标文件变换为目标文件。
本发明通过将目标文件转换为二进制进行存储,可以通用于各种应用环境,只需要在下载后进行转换回原文件即可。通过将二进制的目标文件分成小片段的文件块并且编号,当用户下载中断,下次下载可以从终端编号位置继续下载,无需整个文件重新下载。此外,上述文件块的大小可以根据服务器的缓存进行设定,通过在服务器的缓存中保存一定量的文件块,可以加快文件的获取和下载速度。进一步地,可以通过优化服务器的连接次序,以及开启多线程,以提高下载的效率以及降低服务器的负载。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一个具体的实施例中,还提供了一种基于二进制的分布式数据下载系统,包括分布式集群以及客户端,其交互关系如图4所示。
所述分布式集群用于执行以下步骤:
接收到客户端发送的下载请求时,根据所述下载请求中获取二进制目标文件块的编号;
根据所述编号获取至少一台临时服务器;
判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块;
若在所述缓存器中未找到所述二进制目标文件块,则选取所述分布式集群中负载最低的服务器,得到目标服务器;
从所述目标服务器的存储器中提取所述二进制目标文件块;
将提取的所述二进制目标文件块缓存到所述目标服务器的缓存器中,并从所述目标服务器的缓存器中提取所述二进制目标文件块;
将所述二进制目标文件块发送给所述客户端。
所述客户端用于执行以下步骤:
将从所述分布式集群中提取的所有二进制目标文件块合并为完整的二进制目标文件;
将所述完整的二进制目标文件转换为对应的目标文件。
在一个具体的实施例中,在所述判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块的步骤之后,还包括:
若所述临时服务器的缓存器中存储有所述二进制目标文件块,则从所述临时服务器的缓存器中提取所述二进制目标文件块。
在一个具体的实施例中,在所述若所述临时服务器的缓存器中存储有所述二进制目标文件块,则从所述临时服务器的缓存器中提取所述二进制目标文件块的步骤中,还包括:
获取所有所述缓存器中存储有所述二进制目标文件块的所述临时服务器;对获取的所述临时服务器按照接收所述下载请求的次数进行排序;
从排序结果中接收所述下载请求次数最多的所述服务器的缓存器中提取所述二进制目标文件块。
在一个具体的实施例中,所述判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块的步骤还包括:
分多个线程判断所述临时服务器的缓存器是否存储有所述二进制目标文件块。
在一个具体的实施例中,在所述在接收到客户端发送的下载请求时,根据所述下载请求中的编号获取所述编号对应的二进制目标文件块的步骤之前,所述方法还包括:
将预设的目标文件转换为二进制目标文件;
分别将所述二进制目标文件存储在所述分布式集群的各服务器的存储器中;
分别将所述二进制目标文件,按预设数据量分割成多个二进制目标文件块,并分别对每一个二进制目标文件块进行编号;
按照所述缓存器的大小将预设数量的所述二进制目标文件块缓存到所述服务器的缓存器中。
在一个具体的实施例中,所述按照所述缓存器的大小将预设数量的所述二进制目标文件块缓存到所述服务器的缓存器中的步骤包括:
为所述缓存到所述缓存器中的所述二进制目标文件块设置缓存时间;
若所述二进制目标文件块在所述缓存时间内没有被提取,则从所述服务器的缓存器中删除所述二进制目标文件块。
在一实施例中,提供一种基于二进制的分布式数据下载装置,该基于二进制的分布式数据下载装置与上述实施例中基于二进制的分布式数据下载方法一一对应。如图5所示,该基于二进制的分布式数据下载装置包括:文件块编号获取模块101、临时服务器获取模块102、文件块判断模块103、目标服务器获取模块104、存储器提取模块105、文件块缓存模块106、文件块发送模块107。各功能模块详细说明如下:
文件块编号获取模块101,用于接收到客户端发送的下载请求时,根据所述下载请求中获取二进制目标文件块的编号;
临时服务器获取模块102,用于根据所述编号获取至少一台临时服务器;
文件块判断模块103,用于判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块;
目标服务器获取模块104,用于若在所述缓存器中未找到所述二进制目标文件块,则选取所述分布式集群中负载最低的服务器,得到目标服务器;
存储器提取模块105,用于从所述目标服务器的存储器中提取所述二进制目标文件块;
文件块缓存模块106,用于将提取的所述二进制目标文件块缓存到所述目标服务器的缓存器中,并从所述目标服务器的缓存器中提取所述二进制目标文件块;
文件块发送模块107,用于将所述二进制目标文件块发送给所述客户端。
在一个具体的实施例中,基于二进制的分布式数据下载装置还包括:
缓存器提取模块,用于若所述临时服务器的缓存器中存储有所述二进制目标文件块,则从所述临时服务器的缓存器中提取所述二进制目标文件块。
在一个具体的实施例中,缓存器提取模块还包括:
临时服务器获取单元,用于获取所有所述缓存器中存储有所述二进制目标文件块的所述临时服务器;
临时服务器排序单元,用于对获取的所述临时服务器按照接收所述下载请求的次数进行排序;
优先提取单元,用于从排序结果中接收所述下载请求次数最多的所述服务器的缓存器中提取所述二进制目标文件块。
在一个具体的实施例中,文件块判断模块103还包括:
多线程判断单元,用于分多个线程判断所述临时服务器的缓存器是否存储有所述二进制目标文件块。
在一个具体的实施例中,基于二进制的分布式数据下载装置还包括:
二进制转换模块,用于将预设的目标文件转换为二进制目标文件;
存储模块,用于分别将所述二进制目标文件存储在所述分布式集群的各服务器的存储器中;
文件块分割模块,用于分别将所述二进制目标文件,按预设数据量分割成多个二进制目标文件块,并分别对每一个二进制目标文件块进行编号;
文件块缓存模块,用于按照所述缓存器的大小将预设数量的所述二进制目标文件块缓存到所述服务器的缓存器中。
在一个具体的实施例中,文件块缓存模块还包括:
缓存时间设置单元,用于为所述缓存到所述缓存器中的所述二进制目标文件块设置缓存时间;
缓存删除单元,用于若所述二进制目标文件块在所述缓存时间内没有被提取,则从所述服务器的缓存器中删除所述二进制目标文件块。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于基于二进制的分布式数据下载装置的具体限定可以参见上文中对于基于二进制的分布式数据下载方法的限定,在此不再赘述。上述基于二进制的分布式数据下载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于二进制的分布式数据下载方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于二进制的分布式数据下载方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中基于二进制的分布式数据下载方法的步骤,例如图2所示的步骤S1至步骤S7及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机程序时实现上述实施例中基于二进制的分布式数据下载装置的各模块/单元的功能,例如图6所示模块101至模块107的功能。为避免重复,这里不再赘述。
在另一个实施例中,还提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种基于二进制的分布式数据下载方法。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
所述存储器可以集成在所述处理器中,也可以与所述处理器分开设置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中基于二进制的分布式数据下载方法的步骤,例如图2所示的步骤S1至步骤S7及该方法的其它扩展和相关步骤的延伸。或者,计算机程序被处理器执行时实现上述实施例中基于二进制的分布式数据下载装置的各模块/单元的功能,例如图5所示模块101至模块107的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于二进制的分布式数据下载方法,其特征在于,所述方法包括以下步骤:
接收到客户端发送的下载请求时,根据所述下载请求中获取二进制目标文件块的编号;
根据所述编号获取至少一台临时服务器;
判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块;
若在所述缓存器中未找到所述二进制目标文件块,则选取所述分布式集群中负载最低的服务器,得到目标服务器;
从所述目标服务器的存储器中提取所述二进制目标文件块;
将提取的所述二进制目标文件块缓存到所述目标服务器的缓存器中,并从所述目标服务器的缓存器中提取所述二进制目标文件块;
将所述二进制目标文件块发送给所述客户端。
2.根据权利要求1所述的基于二进制的分布式数据下载方法,其特征在于,在所述判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块的步骤之后,还包括:
若所述临时服务器的缓存器中存储有所述二进制目标文件块,则从所述临时服务器的缓存器中提取所述二进制目标文件块。
3.根据权利要求2所述的基于二进制的分布式数据下载方法,其特征在于,在所述若所述临时服务器的缓存器中存储有所述二进制目标文件块,则从所述临时服务器的缓存器中提取所述二进制目标文件块的步骤中,还包括:
获取所有所述缓存器中存储有所述二进制目标文件块的所述临时服务器;
对获取的所述临时服务器按照接收所述下载请求的次数进行排序;
从排序结果中接收所述下载请求次数最多的所述服务器的缓存器中提取所述二进制目标文件块。
4.根据权利要求3所述的基于二进制的分布式数据下载方法,其特征在于,所述判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块的步骤还包括:
分多个线程判断所述临时服务器的缓存器是否存储有所述二进制目标文件块。
5.根据权利要求1-4中任一项所述的基于二进制的分布式数据下载方法,其特征在于,在所述在接收到客户端发送的下载请求时,根据所述下载请求中的编号获取所述编号对应的二进制目标文件块的步骤之前,所述方法还包括:
将预设的目标文件转换为二进制目标文件;
分别将所述二进制目标文件存储在所述分布式集群的各服务器的存储器中;
分别将所述二进制目标文件,按预设数据量分割成多个二进制目标文件块,并分别对每一个二进制目标文件块进行编号;
按照所述缓存器的大小将预设数量的所述二进制目标文件块缓存到所述服务器的缓存器中。
6.根据权利要求5所述的基于二进制的分布式数据下载方法,其特征在于,所述按照所述缓存器的大小将预设数量的所述二进制目标文件块缓存到所述服务器的缓存器中的步骤包括:
为所述缓存到所述缓存器中的所述二进制目标文件块设置缓存时间;
若所述二进制目标文件块在所述缓存时间内没有被提取,则从所述服务器的缓存器中删除所述二进制目标文件块。
7.一种基于二进制的分布式数据下载系统,其特征在于,包括分布式集群以及客户端,
所述分布式集群执行以下步骤:
接收到客户端发送的下载请求时,根据所述下载请求中获取二进制目标文件块的编号;
根据所述编号获取至少一台临时服务器;
判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块;
若在所述缓存器中未找到所述二进制目标文件块,则选取所述分布式集群中负载最低的服务器,得到目标服务器;
从所述目标服务器的存储器中提取所述二进制目标文件块;
将提取的所述二进制目标文件块缓存到所述目标服务器的缓存器中,并从所述目标服务器的缓存器中提取所述二进制目标文件块;
将所述二进制目标文件块发送给所述客户端;
所述客户端执行以下步骤:
将从所述分布式集群中提取的所有二进制目标文件块合并为完整的二进制目标文件;
将所述完整的二进制目标文件转换为对应的目标文件。
8.一种基于二进制的分布式数据下载装置,其特征在于,包括:
文件块编号获取模块,用于接收到客户端发送的下载请求时,根据所述下载请求中获取二进制目标文件块的编号;
临时服务器获取模块,用于根据所述编号获取至少一台临时服务器;
文件块判断模块,用于判断所述临时服务器的缓存器中是否存储有所述编号对应的所述二进制目标文件块;
目标服务器获取模块,用于若在所述缓存器中未找到所述二进制目标文件块,则选取所述分布式集群中负载最低的服务器,得到目标服务器;
存储器提取模块,用于从所述目标服务器的存储器中提取所述二进制目标文件块;
文件块缓存模块,用于将提取的所述二进制目标文件块缓存到所述目标服务器的缓存器中,并从所述目标服务器的缓存器中提取所述二进制目标文件块;
文件块发送模块,用于将所述二进制目标文件块发送给所述客户端。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述基于二进制的分布式数据下载方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述基于二进制的分布式数据下载方法的步骤。
CN202011593608.1A 2020-12-29 2020-12-29 基于二进制的分布式数据下载方法、装置、设备及介质 Active CN112671918B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011593608.1A CN112671918B (zh) 2020-12-29 2020-12-29 基于二进制的分布式数据下载方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011593608.1A CN112671918B (zh) 2020-12-29 2020-12-29 基于二进制的分布式数据下载方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN112671918A true CN112671918A (zh) 2021-04-16
CN112671918B CN112671918B (zh) 2024-03-05

Family

ID=75411902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011593608.1A Active CN112671918B (zh) 2020-12-29 2020-12-29 基于二进制的分布式数据下载方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112671918B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401121B1 (en) * 1995-12-26 2002-06-04 Mitsubishi Denki Kabushiki Kaisha File server load distribution system and method
US7584261B1 (en) * 2001-02-09 2009-09-01 Microsoft Corporation Distribution of binary executables and content from peer locations/machines
CN102164160A (zh) * 2010-12-31 2011-08-24 青岛海信传媒网络技术有限公司 支持大并发量文件下载的方法、装置及系统
CN102685232A (zh) * 2012-05-14 2012-09-19 安科智慧城市技术(中国)有限公司 基于流媒体服务器的多媒体文件获取方法及流媒体服务器
CN109819039A (zh) * 2019-01-31 2019-05-28 网宿科技股份有限公司 一种文件获取方法、文件存储方法、服务器及存储介质
CN110703980A (zh) * 2018-07-09 2020-01-17 网宿科技股份有限公司 一种文件传输方法及装置
CN111355791A (zh) * 2020-02-25 2020-06-30 腾讯科技(深圳)有限公司 文件传输方法、装置、计算机设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401121B1 (en) * 1995-12-26 2002-06-04 Mitsubishi Denki Kabushiki Kaisha File server load distribution system and method
US7584261B1 (en) * 2001-02-09 2009-09-01 Microsoft Corporation Distribution of binary executables and content from peer locations/machines
CN102164160A (zh) * 2010-12-31 2011-08-24 青岛海信传媒网络技术有限公司 支持大并发量文件下载的方法、装置及系统
CN102685232A (zh) * 2012-05-14 2012-09-19 安科智慧城市技术(中国)有限公司 基于流媒体服务器的多媒体文件获取方法及流媒体服务器
CN110703980A (zh) * 2018-07-09 2020-01-17 网宿科技股份有限公司 一种文件传输方法及装置
CN109819039A (zh) * 2019-01-31 2019-05-28 网宿科技股份有限公司 一种文件获取方法、文件存储方法、服务器及存储介质
CN111355791A (zh) * 2020-02-25 2020-06-30 腾讯科技(深圳)有限公司 文件传输方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112671918B (zh) 2024-03-05

Similar Documents

Publication Publication Date Title
CN107832100B (zh) 一种apk插件的加载方法及其终端
CN111159436B (zh) 一种推荐多媒体内容的方法、装置及计算设备
CN113419824A (zh) 数据处理方法、装置、系统及计算机存储介质
CN111221634A (zh) 合并请求的处理方法、装置、设备及存储介质
CN110019873B (zh) 人脸数据处理方法、装置及设备
CN110943934A (zh) 服务请求处理方法、系统、终端及可读存储介质
CN106708627A (zh) 一种基于kvm的多虚拟机映射、多通路的fuse加速方法及系统
JP2018532202A (ja) クラウドファイル処理方法および装置
CN113163255B (zh) 视频播放方法、装置、终端及存储介质
CN111294377A (zh) 一种依赖关系的网络请求发送方法、终端装置及存储介质
CN113641928A (zh) 一种网页请求方法、系统及存储介质
CN110489138B (zh) 一种应用更新方法、装置和存储介质
CN112671918A (zh) 基于二进制的分布式数据下载方法、装置、设备及介质
RU2635255C2 (ru) Системный когерентный кэш с возможностью фрагментации/дефрагментации
CN113157738B (zh) 堆内数据缓存同步方法、装置、计算机设备及存储介质
CN112860720B (zh) 一种存储容量的更新方法以及装置
CN115495020A (zh) 文件处理方法、装置、电子设备和可读存储介质
CN113961298A (zh) 一种页面切换方法、装置、设备及介质
CN108846141B (zh) 一种离线缓存加载方法及装置
CN113849195A (zh) 应用程序加载方法、装置、存储介质以及终端
CN113536168A (zh) 组件处理方法及设备
CN112579282A (zh) 数据处理方法、装置、系统、计算机可读存储介质
CN115203159B (zh) 一种数据存储方法、装置、计算机设备和存储介质
CN117724852B (zh) 一种云电脑计算资源分配方法及装置
US20220197756A1 (en) System and method for data back- up using a proxy pool

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
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240506

Address after: Room 2203, 2nd Floor, Building 2, No. 18 Keyuan Road, Daxing Economic Development Zone, Beijing, 102600

Patentee after: Beijing Jianyibao Technology Co.,Ltd.

Country or region after: China

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee before: PING AN PUHUI ENTERPRISE MANAGEMENT Co.,Ltd.

Country or region before: China