一种文件预取方法和系统与流程

文档序号:11156971阅读:323来源:国知局
一种文件预取方法和系统与制造工艺

本发明涉及网络文件下载技术领域,特别涉及一种文件预取方法和系统。



背景技术:

在互联网高速发展的今天,面对用户下载需求的剧增,传统的内容分发网络(Content Delivery Network,CDN)文件预取方式已逐渐无法满足客户需求。

在传统CDN文件预取系统中,文件预取方式采用的是:中心管理服务器直接往二级缓存节点或者边缘节点发送文件预取请求,由二级缓存节点或者边缘节点直接到源站下载需要预取的文件。

但是,这种传统的文件预取方式如今面临以下几个问题:

(1)大量边缘节点或者二级缓存节点同时向源站预取文件时,会导致源站带宽徒增,进而造成源站的系统瘫痪;

(2)由于源站压力过大,又导致其他正常CDN资源文件的回源,进而影响CDN的服务效率;

(3)对于大文件,如操作系统、大型游戏等,预取过程耗时较长。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种文件预取方法和系统。所述技术方案如下:

一方面,一种文件预取方法,其中,所述文件预取方法包括以下步骤:

分析多个边缘节点各自的当前状态信息;

根据所述当前状态信息决策并选出一个或者多个边缘节点作为种子服务器;

所述种子服务器负责从源站下载需要预取的文件,并在下载完成之后制作成种子文件供需要预取的文件的边缘节点下载。

进一步的,所述文件预取方法还包括以下步骤:

通知各个需要预取的文件的边缘节点到之前所选定的所述种子服务器下载所述种子文件;。

各个需要预取的文件的边缘节点通过P2P方式从之前所选定的种子服务器下载所述种子文件。

进一步的,所述文件预取方法还包括以下步骤:

实时分析每一个边缘节点的当前状态信息,根据实时的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

进一步的,所述文件预取方法还包括以下步骤:

从所述种子服务器获取所述种子文件,并下发所述种子文件和各个边缘节点之间的互联关系到各个需要预取的文件的边缘节点。

进一步的,所述文件预取方法还包括以下步骤:

实时分析每一个边缘节点的当前状态信息,根据实时的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

另一方面,一种文件预取系统,其中,所述文件预取系统包括决策组件、调度服务器以及多个边缘节点,其中,

所述决策组件,用于分析所述多个边缘节点各自的当前状态信息,并将分析结果实时上报至所述调度服务器;

所述调度服务器,用于根据实时上报的所述分析结果决策并选出一个或者多个边缘节点作为种子服务器;

所述种子服务器,用于负责从源站下载需要预取的文件,并在下载完成之后制作成种子文件供需要预取的文件的边缘节点下载。

进一步的,所述文件预取系统还包括追踪服务器,其中,所述调度服务器,还用于通过所述追踪服务器通知各个需要预取的文件的边缘节点到之前所选定的所述种子服务器下载所述种子文件,各个需要预取的文件的边缘节点通过P2P方式从之前所选定的种子服务器下载所述种子文件。

进一步的,所述决策组件还用于实时分析每一个边缘节点的当前状态信息,并将分析结果实时上报至所述调度服务器;

所述调度服务器,还用于根据实时上报的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果推送至所述追踪服务器;

所述追踪服务器,还用于通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

进一步的,所述调度服务器,还用于从所述种子服务器获取所述种子文件,并将所述种子文件和各个边缘节点之间的互联关系下发到所述追踪服务器中;

所述追踪服务器,还用于在接收到所述调度服务器下发的内容后,将所述种子文件下发到各个需要预取的文件的边缘节点。

进一步的,所述决策组件还用于实时分析每一个边缘节点的当前状态信息,并将分析结果实时上报至所述调度服务器;

所述调度服务器,还用于根据实时上报的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果推送至所述追踪服务器;

所述追踪服务器,还用于通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

本发明实施例提供的技术方案带来的有益效果是:利用边缘节点充当种子服务器,通过种子服务器去源站下载预取的文件,其它边缘节点再从种子服务器而非源站去取文件,能极大减小源站压力,进而提高预取文件速度,同时也减少了对其它正常CDN资源文件的回源的影响;本发明实施例还将选定的边缘节点充当种子服务器,利用种子服务器生成种子文件,而不是利用源站生成种子文件,进而提高源站文件数据的安全性。另外,本发明实施例实时分析各边缘节点的当前状态信息,实时调整并动态更新边缘节点为可用的下载节点,保证下载速度最大化,资源消耗最小化。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施方式中文件预取方法流程图;

图2为本发明一实施方式中文件预取系统的网络布局图;

图3为本发明另一实施方式中文件预取方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例一

以下将对本发明所提供的实施一中的一种文件预取方法进行详细说明。

请参阅图1,为本发明一实施方式中文件预取方法流程图。

在本实施方式中,该文件预取方法应用于文件预取系统,主要解决大文件的快速预取问题,进而减少源站及内容分发网络(Content Delivery Network,CDN)二级缓存节点的压力。较佳的,所述文件预取系统是基于点到点(Peer To Peer,P2P)的内容智能预取系统,涉及大规模集群机器P2P下载智能调度、大文件的快速下载。所述文件预取系统包括决策组件、调度服务器、追踪(Tracker)服务器以及多个边缘节点(Peer),如图2所示。

请参阅与2,所示为本发明一实施方式中文件预取系统的网络布局图。

如图2所示,所述文件预取系统包括决策组件、调度服务器、追踪(Tracker)服务器以及多个边缘节点(Peer),其中,Tracker服务器的数量可以包括一个或者多个,决策组件、调度服务器、一个或者多个Tracker服务器组成了一个中心调度系统,该中心调度系统和外部支撑平台通信连接并从该外部支撑平台收集各个Peer的当前流量信息、负载信息、机器存活等相关的运行状态信息,以及还收集点对点之间的网络质量信息并进行实时计算,该中心调度系统根据实时计算结果来决策每个Peer所能连接的最佳Tracker服务器,通过Tracker将决策结果通知到每个对应的Peer,每一个Tracker服务器可以连接一个Peer或者多个Peer,每一个Peer都引入P2P下载技术,既可以作为客户端,又可以作为服务端。源站是提供源文件的站点,现有技术中大量的Peer同时向源站预取文件时,会导致源站带宽徒增,严重的将造成源站的系统瘫痪。

请继续参阅图1,在步骤S11中,分析多个边缘节点各自的当前状态信息。

在本实施方式中,利用决策组件分析多个边缘节点各自的当前状态信息,状态信息包括实时流量信息、负载状态信息等等,决策组件通常为一台服务器,例如决策服务器,决策组件是与外部支撑平台通信连接,该外部支撑平台包括日志系统、流量系统以及监控系统,其中每一个系统通常为一台独立的服务器,例如流量系统为一台流量服务器负责收集各个Peer的当前流量信息,监控系统为一台监控服务器负责监控各个Peer的当前负载状态信息,该外部支撑平台收集各个Peer的当前流量信息、负载信息、机器存活等相关的运行状态信息,以及还收集点对点之间的网络质量信息,然后将这些运行状态信息和点对点之间的网络质量信息一起发送给决策组件进行分析,并进行实时计算,以获取哪个或者那些Peer适合充当种子服务器的分析结果。

在步骤S12中,根据所述当前状态信息决策并选出一个或者多个边缘节点作为种子服务器。

在本实施方式中,决策组件将分析结果实时上报至调度服务器,由调度服务器决策并选出一个或者多个边缘节点作为种子服务器,决策组件通过收集各种信息分析得到哪个或者那些Peer适合充当种子服务器,并将这一分析结果上报至调度服务器,由调度服务器决策并选出一个或者多个Peer作为种子服务器,通常有些适合充当种子服务器的Peer最后并一定就作为种子服务器,还需要考虑当前的网络状况等因素。

在步骤S13中,种子服务器负责从源站下载需要预取的文件,并在下载完成之后制作成种子文件供需要预取的文件的边缘节点下载。

在本实施方式中,调度服务器将决策结果通过追踪服务器发送到选定的种子服务器,然后,种子服务器负责从源站下载需要预取的文件,并在下载完成之后制作成种子文件供需要预取的文件的边缘节点下载。

在本实施方式中,P2P文件交换技术则是采用比特流(Bit Torrent,BT),BT的特点是用户下载的同时,也在为其它用户提供上传,所以不会像文件传输协议(File Transfer Protocol,FTP)服务器那样随着用户数的增加而导致下载速度降低,恰恰相反,对于BT下载而言,下载的人越多速度越快。

在本实施方式中,Tracker服务器是BT下载中必须的角色,使用BT服务不需要指定服务器,虽然在BT服务里面仍然有服务器的概念,但使用BT服务的人并不需要关心服务器在哪里。BT服务器称为Tracker,BT中的Tracker主要是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件。客户端连上Tracker服务器,就会获得一个下载人员的名单,根据这个名单BT会自动连上其它机器进行下载。

在本实施方式中,Tracker服务器负责执行调度服务器的任务,调度服务器将决策结果通过Tracker服务器发送到选定的种子服务器,通知所选定的Peer是作为种子服务器的。

在本实施方式中,所选定的Peer在接收到作为种子服务器的决策结果后,就从源站下载需要预取的文件,并在下载完成之后制作成种子文件。

在本实施方式中,CDN服务提供商一般是无法直接控制源站文件数据的,即使CDN服务提供商能直接控制源站文件数据,则在源站生成种子文件或者让源站加入P2P网络,可能会对源站的文件数据的安全性造成影响,也有可能存在大量的Peer直接从源站取文件,这样一来势必给源站造成巨大压力,导致源站带宽徒增,严重的将造成源站的系统瘫痪。但是本发明是将选定的Peer充当种子服务器,利用种子服务器生成种子文件,而不是利用源站生成种子文件,因为如果利用源站生成种子文件,则会影响源站文件数据的安全性。

在一实施例中,本发明实施例提供的文件预取方法还可以包括步骤S14~S16:其中,在步骤S14中,通知各个需要预取的文件的边缘节点到之前所选定的种子服务器下载种子文件。

在本实施方式中,调度服务器通过追踪服务器通知各个需要预取的文件的边缘节点到之前所选定的种子服务器下载种子文件,在选定的Peer充当种子服务器并完成种子文件的制作后,调度服务器通过Tracker服务器通知各个需要预取的文件的Peer到之前所选定的种子服务器下载种子文件,而不需要到源站下载种子文件,进而最大限度的减小了源站压力。

在步骤S15中,各个需要预取的文件的边缘节点通过P2P方式从之前所选定的种子服务器下载种子文件的同时,实时分析每一个边缘节点的当前状态信息,并将分析结果实时上报。

在本实施方式中,各个需要预取的文件的边缘节点通过P2P方式从之前所选定的种子服务器下载种子文件的同时,决策组件实时分析每一个边缘节点的当前状态信息,并将分析结果实时上报至调度服务器。

在步骤S16中,根据实时上报的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

在本实施方式中,由调度服务器根据实时上报的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果推送至追踪服务器,由追踪服务器通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

在本实施方式中,之前所选定的种子服务器并非固定且一成不变,本发明根据实际网络情况动态选择各种Peer充当种子服务器,并将更新后的种子服务器这一决策结果推送至Tracker服务器,通过Tracker服务器通知各个需要预取的文件的Peer到更新后的种子服务器下载种子文件,这样一来,通过动态选择种子服务器来提高预取文件的速度。

实施例二

以下将对本发明所提供的实施二中的另一种文件预取方法进行详细说明。

请参阅图3,为本发明另一实施方式中文件预取方法流程图。

在本实施方式中,步骤S21-S23分别与实施例一中步骤S11-S13相同,在此不做重复叙述。

在步骤S24中,从种子服务器获取种子文件,并下发种子文件和各个边缘节点之间的互联关系。

在本实施方式中,调度服务器从种子服务器获取种子文件,并将种子文件和各个边缘节点之间的互联关系下发到追踪服务器中,各个Peer之间的互联关系构成一个P2P网络,调度服务器将获取到的种子文件和各个边缘节点之间的互联关系下发到Tracker服务器中。

在步骤S25中,在接收到下发的内容后,将种子文件下发到各个需要预取的文件的边缘节点。

在本实施方式中,追踪服务器在接收到调度服务器下发的内容后,将种子文件下发到各个需要预取的文件的边缘节点,Tracker服务器负责执行调度服务器的任务,将下发的种子文件进一步下发到各个需要预取的文件的Peer,这样一来,各个需要预取的文件的Peer不需要从源站获取文件,而是从调度服务器获取文件种子文件,再根据种子文件进行文件的预取,同样的减少了源站的压力。

在步骤S26中,实时分析每一个边缘节点的当前状态信息,并将分析结果实时上报。

在本实施方式中,各个需要预取的文件的边缘节点(主要是指没有种子文件的边缘节点)通过P2P方式从有种子文件的边缘节点开始下载种子文件的同时,决策组件实时分析每一个边缘节点的当前状态信息,并将分析结果实时上报至调度服务器。

在步骤S27中,根据实时上报的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

在本实施方式中,由调度服务器根据实时上报的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果推送至追踪服务器,由追踪服务器通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

本发明提供的两种文件预取方法,利用边缘节点充当种子服务器,通过种子服务器去源站下载预取的文件,其它边缘节点再从种子服务器而非源站去取文件,能极大减小源站压力,进而提高预取文件速度,同时也减少了对其它正常CDN资源文件的回源的影响;同时还将选定的边缘节点充当种子服务器,利用种子服务器生成种子文件,而不是利用源站生成种子文件,进而提高源站文件数据的安全性。另外,通过实时分析各边缘节点的当前状态信息,实时调整并动态更新边缘节点为可用的下载节点,保证下载速度最大化,资源消耗最小化。

实施例三

以下将对本发明所提供的一种文件预取系统进行详细说明。

请参阅图2,所示为本发明一实施方式中文件预取系统的网络布局图。

在本实施方式中,所述文件预取系统包括决策组件、调度服务器、追踪(即Tracker)服务器以及多个边缘节点(即Peer),其中,Tracker服务器的数量可以包括一个或者多个,决策组件、调度服务器、一个或者多个Tracker服务器组成了一个中心调度系统,该中心调度系统和外部支撑平台通信连接并从该外部支撑平台收集各个Peer的当前流量信息、负载信息、机器存活等相关的运行状态信息,以及还收集点对点之间的网络质量信息并进行实时计算,该中心调度系统根据实时计算结果来决策每个Peer所能连接的最佳Tracker服务器,通过Tracker将决策结果通知到每个对应的Peer,每一个Tracker服务器可以连接一个Peer或者多个Peer,每一个Peer都引入P2P下载技术,既可以作为客户端,又可以作为服务端。源站是提供源文件的站点,现有技术中大量的Peer同时向源站预取文件时,会导致源站带宽徒增,严重的将造成源站的系统瘫痪。

决策组件,用于分析所述多个边缘节点各自的当前状态信息,并将分析结果实时上报至所述调度服务器。

在本实施方式中,状态信息包括实时流量信息、负载状态信息等等,决策组件通常为一台服务器,例如决策服务器,决策组件是与外部支撑平台通信连接,该外部支撑平台包括日志系统、流量系统以及监控系统,其中每一个系统通常为一台独立的服务器,例如流量系统为一台流量服务器负责收集各个Peer的当前流量信息,监控系统为一台监控服务器负责监控各个Peer的当前负载状态信息,该外部支撑平台收集各个Peer的当前流量信息、负载信息、机器存活等相关的运行状态信息,以及还收集点对点之间的网络质量信息,然后将这些运行状态信息和点对点之间的网络质量信息一起发送给决策组件进行分析,并进行实时计算,以获取哪个或者那些Peer适合充当种子服务器的分析结果。

调度服务器,用于根据实时上报的所述分析结果决策并选出一个或者多个边缘节点作为种子服务器。

在本实施方式中,决策组件通过收集各种信息分析得到哪个或者那些Peer适合充当种子服务器,并将这一分析结果上报至调度服务器,由调度服务器决策并选出一个或者多个Peer作为种子服务器,通常有些适合充当种子服务器的Peer最后并一定就作为种子服务器,还需要考虑当前的网络状况等因素。

在本实施方式中,Tracker服务器是BT下载中必须的角色,使用BT服务不需要指定服务器,虽然在BT服务里面仍然有服务器的概念,但使用BT服务的人并不需要关心服务器在哪里。BT服务器称为Tracker,BT中的Tracker主要是指运行于服务器上的一个程序,这个程序能够追踪到底有多少人同时在下载同一个文件。客户端连上Tracker服务器,就会获得一个下载人员的名单,根据这个名单BT会自动连上其它机器进行下载。

在本实施方式中,Tracker服务器负责执行调度服务器的任务,调度服务器将决策结果通过Tracker服务器发送到选定的种子服务器,通知所选定的Peer是作为种子服务器的。

种子服务器,用于负责从源站下载需要预取的文件,并在下载完成之后制作成种子文件供需要预取的文件的边缘节点下载。

在本实施方式中,CDN服务提供商一般是无法直接控制源站文件数据的,即使CDN服务提供商能直接控制源站文件数据,则在源站生成种子文件或者让源站加入P2P网络,可能会对源站的文件数据的安全性造成影响,也有可能存在大量的Peer直接从源站取文件,这样一来势必给源站造成巨大压力,导致源站带宽徒增,严重的将造成源站的系统瘫痪。但是本发明是将选定的Peer充当种子服务器,利用种子服务器生成种子文件,而不是利用源站生成种子文件,因为如果利用源站生成种子文件,则会影响源站文件数据的安全性。

另外,调度服务器,还用于通过追踪服务器通知各个需要预取的文件的边缘节点到之前所选定的种子服务器下载种子文件。在各个需要预取的文件的边缘节点通过P2P方式从之前所选定的种子服务器下载所述种子文件的同时,所述决策组件还用于实时分析每一个边缘节点的当前状态信息,并将分析结果实时上报至所述调度服务器,其中,

所述调度服务器,还用于根据实时上报的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果推送至所述追踪服务器;

所述追踪服务器,还用于通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

或者,调度服务器,还用于从种子服务器获取种子文件,并将种子文件和各个边缘节点之间的互联关系下发到追踪服务器中,其中,所述追踪服务器,还用于在接收到所述调度服务器下发的内容后将所述种子文件下发到各个需要预取的文件的边缘节点,各个需要预取的文件的边缘节点(主要是指没有种子文件的边缘节点)通过P2P方式从有种子文件的边缘节点开始下载种子文件的同时,决策组件还用于实时分析每一个边缘节点的当前状态信息,并将分析结果实时上报至调度服务器,其中,

所述调度服务器,还用于根据实时上报的分析结果决策并选定在当前状态下能作为种子服务器的边缘节点,并将决策结果推送至所述追踪服务器;

所述追踪服务器,还用于通知各个需要预取的文件的边缘节点实时更新可用的下载节点。

本发明提供的一种文件预取系统,利用边缘节点充当种子服务器,通过种子服务器去源站下载预取的文件,其它边缘节点再从种子服务器而非源站去取文件,能极大减小源站压力,进而提高预取文件速度,同时也减少了对其它正常CDN资源文件的回源的影响;本发明实施例还将选定的边缘节点充当种子服务器,利用种子服务器生成种子文件,而不是利用源站生成种子文件,进而提高源站文件数据的安全性。另外,本发明实施例实时分析各边缘节点的当前状态信息,实时调整并动态更新边缘节点为可用的下载节点,保证下载速度最大化,资源消耗最小化。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1