本技术涉及数据处理,尤其涉及一种分布式系统的文件传输方法及装置。
背景技术:
1、现有的分布式系统的文件传输方案中,有的采用单点传输协议,同样的文件每一次传输都需要耗费不少的源服务器网络带宽,有的则采用cdn策略,将文件存储在源站中,当有文件传输的请求到达cdn服务器时,cdn服务器会查询当前是否已缓存该文件,若未缓存该文件,则去访问一次文件源站,将文件缓存下来,再将文件返回给请求端,若已缓存该文件,则直接返回。
2、现有分布式系统的文件传输方案,若采用单点传输协议,则容易出现明显的性能瓶颈,当成百上千个文件传输请求同时到达源服务器时,很容易出现带宽被占满,文件传输速度很慢的问题。若采用cdn策略,则需要建立大规模的cdn服务器来应对大量的文件传输请求,十分消耗的各种硬件资源。
技术实现思路
1、针对现有技术中的至少一个问题,本技术提出了一种分布式系统的文件传输方法及装置,能够在保证分布式系统中文件传输的可靠性的基础上,提高分布式系统中文件传输的速度,节省资源消耗。
2、为了解决上述技术问题,本技术提供以下技术方案:
3、第一方面,本技术提供一种分布式系统的文件传输方法,包括:
4、获取目标源文件;
5、将所述目标源文件分解成多个文件段并确定各自的顺序编号;
6、根据各个所述文件段、预获取的编码块个数和原始数据块个数,得到文件段集,所述文件段集包括:多组文件段组,每个文件组包括:编码块、文件段及其顺序编号,各组文件段组对应的文件段不同;
7、基于用户数据报协议,将所述文件段集以组播的方式传输至分布式系统中的多个服务器节点。
8、在一个实施例中,在所述将所述文件段集以组播的方式传输至分布式系统中的多个服务器节点之后,还包括:
9、每个服务器节点根据所述文件段集,判断是否存在丢包的文件段并且丢包数量小于丢包阈值,若是,则根据所述丢包的文件段所在的文件段组中的编码块,恢复出所述丢包的文件段,得到完整的目标源文件。
10、在一个实施例中,所述的分布式系统的文件传输方法,还包括:
11、获取服务器节点信息,该服务器节点信息包括:单个服务器节点对应的丢包率以及所述多个服务器节点的个数;
12、应用所述服务器节点信息以及预设的预测模型,确定所述预获取的编码块个数和原始数据块个数;
13、所述预设的预测模型是基于批量历史服务器节点信息、其各自对应的实际编码块个数和原始数据块个数对人工智能模型预先训练得到的。
14、在一个实施例中,所述将所述目标源文件分解成多个文件段并确定各自的顺序编号,包括:
15、根据预设的文件段长度,将所述目标源文件分解成多个文件段;
16、根据各个所述文件段在所述目标源文件中的位置,确定各自的顺序编号。
17、在一个实施例中,每个文件组中的文件段的个数为所述预获取的原始数据块个数,每个文件组中的编码块的个数为所述预获取的编码块个数,每组文件段组中的编码块是对该文件段组中的文件段进行编码得到的。
18、在一个实施例中,所述根据预设的文件段长度,将所述目标源文件分解成多个文件段,还包括:
19、根据所述预设的文件段长度和文件段的个数,确定文件段的实际总长度,将所述文件段的实际总长度发送至所述多个服务器节点;
20、相对应的,所述每个服务器节点根据所述文件段集,判断是否存在丢包的文件段并且丢包数量小于丢包阈值,包括:
21、判断所述文件段集中的文件段的总长度是否小于所述文件段的实际总长度,若是,则根据所述文件段集中的顺序编码,确定丢包的文件段和丢包数量,判断所述丢包数量是否小于丢包阈值。
22、在一个实施例中,所述预设的文件段长度为1472字节。
23、第二方面,本技术提供一种分布式系统的文件传输装置,包括:
24、获取模块,用于获取目标源文件;
25、分解模块,用于将所述目标源文件分解成多个文件段并确定各自的顺序编号;
26、确定模块,用于根据各个所述文件段、预获取的编码块个数和原始数据块个数,得到文件段集,所述文件段集包括:多组文件段组,每个文件组包括:编码块、文件段及其顺序编号,各组文件段组对应的文件段不同;
27、传输模块,用于基于用户数据报协议,将所述文件段集以组播的方式传输至分布式系统中的多个服务器节点。
28、在一个实施例中,所述分布式系统的文件传输装置,还包括:
29、每个服务器节点根据所述文件段集,判断是否存在丢包的文件段并且丢包数量小于丢包阈值,若是,则根据所述丢包的文件段所在的文件段组中的编码块,恢复出所述丢包的文件段,得到完整的目标源文件。
30、在一个实施例中,所述的分布式系统的文件传输装置,还包括:
31、获取模块,用于获取服务器节点信息,该服务器节点信息包括:单个服务器节点对应的丢包率以及所述多个服务器节点的个数;
32、应用模块,用于应用所述服务器节点信息以及预设的预测模型,确定所述预获取的编码块个数和原始数据块个数;
33、所述预设的预测模型是基于批量历史服务器节点信息、其各自对应的实际编码块个数和原始数据块个数对人工智能模型预先训练得到的。
34、在一个实施例中,所述分解模块包括:
35、分解单元,用于根据预设的文件段长度,将所述目标源文件分解成多个文件段;
36、确定单元,用于根据各个所述文件段在所述目标源文件中的位置,确定各自的顺序编号。
37、在一个实施例中,每个文件组中的文件段的个数为所述预获取的原始数据块个数,每个文件组中的编码块的个数为所述预获取的编码块个数,每组文件段组中的编码块是对该文件段组中的文件段进行编码得到的。
38、在一个实施例中,所述分解单元还用于:
39、根据所述预设的文件段长度和文件段的个数,确定文件段的实际总长度,将所述文件段的实际总长度发送至所述多个服务器节点;
40、相对应的,所述每个服务器节点根据所述文件段集,判断是否存在丢包的文件段并且丢包数量小于丢包阈值,包括:
41、判断所述文件段集中的文件段的总长度是否小于所述文件段的实际总长度,若是,则根据所述文件段集中的顺序编码,确定丢包的文件段和丢包数量,判断所述丢包数量是否小于丢包阈值。
42、在一个实施例中,所述预设的文件段长度为1472字节。
43、第三方面,本技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的分布式系统的文件传输方法。
44、第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时实现所述的分布式系统的文件传输方法。
45、由上述技术方案可知,本技术提供一种分布式系统的文件传输方法及装置。其中,该方法包括:获取目标源文件;将所述目标源文件分解成多个文件段并确定各自的顺序编号;根据各个所述文件段、预获取的编码块个数和原始数据块个数,得到文件段集,所述文件段集包括:多组文件段组,每个文件组包括:编码块、文件段及其顺序编号,各组文件段组对应的文件段不同;基于用户数据报协议,将所述文件段集以组播的方式传输至分布式系统中的多个服务器节点,能够在保证分布式系统中文件传输的可靠性的基础上,提高分布式系统中文件传输的速度,节省资源消耗;具体地,可以通过组播的方式传输文件,组播在发送者和每一接收者之间实现点对多点的网络连接,如果一台发送者同时给多个接收者传输相同的数据,也只需复制一份相同的数据包,可以提高数据传送效率,可以有效减少同一文件在分布式系统中传输时骨干网络出现拥塞的可能性;采用纠删码来解决udp协议不可靠,容易丢包的问题,通过冗余发包的方式,即使在传输过程中有一定量的丢包,能够还原出原有的文件。