一种下载更新文件的方法和系统与流程

文档序号:15049751发布日期:2018-07-27 23:59阅读:169来源:国知局

本发明涉及网络领域,尤其涉及一种下载更新文件的方法和系统。



背景技术:

内容分发网络(contentdeliverynetwork,简称cdn)是通过在网络各处放置下载节点来构成的在现有互联网基础之上的一层智能虚拟网络。其目的是通过在现有的internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。cdn网络能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

在cdn网络中,当几千台甚至上万台下载节点需要配置升级、软件升级、文件更新、rpm包发布等时,若从单一的内容节点下载文件,由于内容节点的网卡流量以及并发数瓶颈,会导致下载效率较低,特别是当进行大文件的下载时,由于内容节点只有一台,往往需要多次下载才能成功,带宽成本消耗大,耗费时间长,系统的性能和可用性都得不到保障。

例如,在配置文件升级时,现有技术一般采用调度节点向各下载节点下发文件更新任务,然后由各下载节点利用wget,salt等工具主动到内容节点下载配置文件。现有技术存在如下缺点:

(1)单点模式受到机器负载和并发数瓶颈的限制,分发效率低,可靠性差;

(2)集中式的回源请求和下载需要耗费大量带宽,更新之后带宽基本处于空闲状态,这样形成有更新任务时带宽成为瓶颈,而更新之后造成带宽资源的浪费;

(3)当下载节点与调度节点或内容节点之间的网络出现异常,就可能接收不到任务或下载不了文件。

因此,需要一种在cdn网络中能够快速下载更新文件,且同时节省内容节点的带宽的方法和系统。



技术实现要素:

为了解决现有技术中存在的问题,提供了一种下载更新文件的方法和系统,该方法和系统能够在快速下载更新文件的同时,节省内容节点的带宽。

根据本发明的一个方面,提供了一种下载更新文件的方法,所述方法在cdn网络中执行,所述方法包括:

步骤1,调度节点接收文件分发信息;

步骤2,所述调度节点根据所述文件分发信息,向所述文件分发信息中包括的下载节点发送更新任务,所述更新任务包括该下载节点待更新的文件在所述内容节点上的下载地址;

步骤3,所述调度节点从下载节点接收查询具有全部相同或部分相同更新任务的下载节点的查询请求,根据所述文件分发信息选择与该下载节点具有全部相同或部分相同更新任务的下载节点,并将选择的下载节点的信息通知该下载节点。

其中,所述方法还包括:

在所述步骤3之前还执行:检测所述调度节点与每个下载节点之间的网络连接状态,如果所述调度节点与一下载节点之间的网络连接异常,则选择网络连接正常的一个或多个其他下载节点,并向该一个或多个其他下载节点发送向该网络连接异常的下载节点转发更新任务的指示。

其中,所述调度节点选择网络连接正常的一个或多个其他下载节点时,选择与该下载节点具有全部相同或部分相同更新任务的一个或多个其他下载节点。

其中,所述调度节点检测所述调度节点与每个下载节点之间的网络连接状态包括:

所述调度节点周期地查询是否收到每个下载节点发送的探测包,其中所述调度节点的查询周期大于所述下载节点的发送周期;

若对于一下载节点的查询结果是没有收到探测包,则在下述条件满足一个或两个的情况下判断是否收到该下载节点发送的任务完成进度状态:所述调度节点发送更新任务后经过设定的时间段、从所有其他下载节点接收到任务完成进度状态,若判断结果是没有收到该下载节点发送的任务完成进度状态,则判断所述调度节点与该下载节点之间的网络连接异常。

其中,所述步骤3还包括:

所述调度节点根据下述原则中的一个或多个选择与该下载节点具有全部相同或部分相同更新任务的下载节点:待选择的下载节点与发出查询请求的下载节点属于同机房,或者属于同地域,或者属于同节点,或者属于同运营商。

根据本发明的另一方面,还提供了一种下载更新文件的方法,所述方法在cdn网络中执行,所述方法包括:

步骤1,下载节点接收调度节点下发的更新任务,所述更新任务包括该下载节点待更新的文件在所述内容节点上的下载地址;

步骤2,所述下载节点向所述调度节点发送查询与该下载节点具有全部相同或部分相同更新任务的查询请求,并从所述调度节点接收与该下载节点具有全部相同或部分相同更新任务的下载节点的信息;

步骤3,所述下载节点从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个,或者从所述内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个,并下载更新文件。

其中,所述步骤1还包括:当所述调度节点与该下载节点之间的网络连接异常时,所述下载节点通过与所述调度节点之间的网络连接正常的一个或多个其他下载节点接收所述调度节点下发的更新任务;

所述步骤2还包括:当所述调度节点与该下载节点之间的网络连接异常时,所述下载节点向所述一个或多个其他下载节点发送将所述查询请求发送到所述调度节点的指示。

其中,所述步骤3还包括:

当所述下载节点从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择多个时,或者从所述内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择多个时,分别从所选择的各节点下载部分更新文件,并组合下载的各部分更新文件。

其中,所述步骤3还包括:

所述下载节点按照下述顺序,从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个,或者从所述内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个:

属于同机房的下载节点、属于同地域的下载节点、属于同节点的下载节点、属于同运营商的下载节点、内容节点。

其中,所述方法还包括:

在所述步骤3后执行:所述下载节点向所述调度节点上报更新任务完成状态;

并且,所述步骤2中,所述下载节点从所述调度节点接收的与该下载节点具有全部相同或部分相同更新任务的下载节点的信息包括该具有全部相同或部分相同更新任务的下载节点的更新任务完成状态。

其中,所述方法还包括:

在所述步骤1之前执行:周期地向所述调度节点发送探测包,发送周期小于所述调度节点查询是否收到所述探测包的查询周期;

在所述步骤1之后执行:向所述调度节点发送任务完成进度状态。

根据本发明的另一方面,还提供了一种下载更新文件的系统,所述下载更新文件的系统在cdn网络中的调度节点上实现,所述系统包括:

第一接收模块,接收文件分发信息;

第一发送模块,用于根据所述文件分发信息,向所述文件分发信息中包括的下载节点发送更新任务,所述更新任务包括该下载节点待更新的文件在所述内容节点上的下载地址;

第二接收模块,用于从下载节点接收查询具有全部相同或部分相同更新任务的下载节点的查询请求;

节点选择模块,用于根据所述文件分发信息选择与该下载节点具有全部相同或部分相同更新任务的下载节点;

第二发送模块,用于将选择的下载节点的信息通知该下载节点。

其中,所述系统还包括:

检测模块,用于在所述第一发送模块向下载节点发送更新任务后,检测所述调度节点与每个下载节点之间的网络连接状态;

所述节点选择模块还用于:如果所述检测模块检测到所述调度节点与一下载节点之间的网络连接异常,则选择网络连接正常的一个或多个其他下载节点;

所述第二发送模块还用于:向该一个或多个其他下载节点发送向该网络连接异常的下载节点转发更新任务的指示。

其中,所述节点选择模块还用于:选择网络连接正常的一个或多个其他下载节点时,选择与该下载节点具有全部相同或部分相同更新任务的一个或多个其他下载节点。

其中,所述检测模块还用于:

周期地查询是否收到每个下载节点发送的探测包,其中查询周期大于所述下载节点的发送周期;

若对于一下载节点的查询结果是没有收到探测包,则在下述条件满足一个或两个的情况下判断是否收到该下载节点发送的任务完成进度状态:所述第一发送模块发送更新任务后经过设定的时间段、从所有其他下载节点接收到任务完成进度状态,若判断结果是没有收到该下载节点发送的任务完成进度状态,则判断所述调度节点与该下载节点之间的网络连接异常。

其中,所述节点选择模块还用于:根据下述原则中的一个或多个选择与该下载节点具有全部相同或部分相同更新任务的下载节点:待选择的下载节点与发出查询请求的下载节点属于同机房,或者属于同地域,或者属于同节点,或者属于同运营商。

根据本发明的另一方面,还提供了一种下载更新文件的系统,所述下载更新文件的系统在cdn网络中的下载节点上实现,所述系统包括:

接收模块,用于接收调度节点下发的更新任务,所述更新任务包括该下载节点待更新的文件在所述内容节点上的下载地址,以及在发送模块向所述调度节点发送查询请求后,从所述调度节点接收与该下载节点具有全部相同或部分相同更新任务的下载节点的信息;

所述发送模块,用于向所述调度节点发送查询与该下载节点具有全部相同或部分相同更新任务的所述查询请求;

节点选择模块,用于从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个,或者从所述内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个;

下载模块,用于从所述节点选择模块选择的节点上下载更新文件。

其中,所述接收模块还用于:当所述调度节点与该下载节点之间的网络连接异常时,通过与所述调度节点之间的网络连接正常的一个或多个其他下载节点接收所述调度节点下发的更新任务;

所述发送模块还用于:当所述调度节点与该下载节点之间的网络连接异常时,向所述一个或多个其他下载节点发送将所述查询请求发送到所述调度节点的指示。

其中,所述下载模块还用于:

当所述节点选择模块从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择多个时,或者从所述内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择多个时,分别从所选择的各节点下载部分更新文件,并组合下载的各部分更新文件。

其中,所述节点选择模块还用于:

按照下述顺序,从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个,或者从所述内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个:

属于同机房的下载节点、属于同地域的下载节点、属于同节点的下载节点、属于同运营商的下载节点、内容节点。

其中,所述发送模块还用于:在所述下载模块下载更新文件之后,向所述调度节点上报更新任务完成状态;

所述接收模块还用于:从所述调度节点接收与该下载节点具有全部相同或部分相同更新任务的下载节点的信息时,还从所述调度节点接收该具有全部相同或部分相同更新任务的下载节点的更新任务完成状态。

其中,所述发送模块还用于:

在所述接收模块接收所述调度节点下发的更新任务前,周期地向所述调度节点发送探测包,发送周期小于所述调度节点查询是否收到所述探测包的查询周期;

在所述接收模块接收所述调度节点下发的更新任务后,向所述调度节点发送任务完成进度状态。

本发明中的下载更新文件的方法和系统中,下载节点在下载更新文件时,优先从与其具有相同更新任务的其他下载节点下载更新文件,具有以下有益效果:

(1)cdn网络的网络传输与响应能力有大幅度提升,提高了文件,特别是大文件的下载速度;

(2)借助p4p机制降低内容节点的压力,减少内容节点带宽需求,缩减带宽成本;

(3)整体下载耗时减少,下载稳定性也更强;

(4)采取对小运营商的保护策略,确保小运营商也能顺利完成文件更新。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明的由调度节点执行的下载更新文件的方法的流程图;

图2是根据本发明的由下载节点执行的下载更新文件的方法的流程图;

图3是根据本发明的下载更新文件的方法的具体实施例的示意图;

图4是根据本发明的在调度节点上实现的下载更新文件的系统的示意图;

图5是根据本发明的在下载节点上实现的下载更新文件的系统的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

cdn的工作流程为:当用户访问已经加入cdn服务的网站时,首先通过dns重定向技术确定最接近用户的最佳cdn节点,同时将用户的请求指向该节点;当用户的请求到达指定节点时,cdn的服务器(节点上的高速缓存)负责将用户请求的内容提供给用户。

本发明提供的下载更新文件的方法和系统在cdn网络中实现。

本发明提供了一种下载更新文件的方法,该方法由调度节点在cdn网络中执行。如图1所示,该方法包括:

步骤101,调度节点接收文件分发信息,其中调度节点可以是从各种任务提交接口接收文件分发信息;

步骤102,调度节点根据文件分发信息,向文件分发信息中包括的下载节点发送更新任务,更新任务包括该下载节点待更新的文件在内容节点上的下载地址;

步骤103,调度节点从下载节点接收查询具有全部相同或部分相同更新任务的下载节点的查询请求,根据文件分发信息选择与该下载节点具有全部相同或部分相同更新任务的下载节点,并将选择的下载节点的信息通知该下载节点。

上述方法还包括:在步骤102和步骤103之间还执行:检测调度节点与每个下载节点之间的网络连接状态,如果调度节点与一下载节点之间的网络连接异常,则选择网络连接正常的一个或多个其他下载节点,并向该一个或多个其他下载节点发送向该网络连接异常的下载节点转发更新任务的指示。即,当调度节点与下载节点之间的网络不通时,则通过其他下载节点向该下载节点转发更新任务。具体地,调度节点选择与该下载节点具有全部相同或部分相同更新任务的一个或多个其他下载节点。

此处调度节点检测调度节点与每个下载节点之间的网络连接状态包括:调度节点周期地查询是否收到每个下载节点发送的探测包,其中调度节点的查询周期大于下载节点的发送周期。若对于一下载节点的查询结果是没有收到探测包,则在下述条件满足一个或两个的情况下判断是否收到该下载节点发送的任务完成进度状态:调度节点发送更新任务后经过设定的时间段、从所有其他下载节点接收到任务完成进度状态,若判断结果是没有收到该下载节点发送的任务完成进度状态,则判断调度节点与该下载节点之间的网络连接异常。

中央调度服务器的查询周期大于节点服务器发送探测包的发送周期,而不是等于发送周期,是为了下述防止网络连接状态误判情况:中央调度服务器与节点服务器之间的网络连接正常,但是由于网络原因出现了丢包情况而使得中央调度服务器没有接收到节点服务器发送的探测包。为了防止这种情况,查询周期通常等于几倍的发送周期。例如发送周期为10分钟,查询周期为30分钟。

在步骤103中,所述调度节点根据下述原则中的一个或多个选择与该下载节点具有全部相同或部分相同更新任务的下载节点:待选择的下载节点与发出查询请求的下载节点属于同机房,或者属于同地域,或者属于同节点,或者属于同运营商。这样,发出查询请求的下载节点可以较快速、较稳定地与所选择的下载节点建立连接。

需要说明的是,在开始执行上述步骤101之前,先将更新文件推送到内容节点上。更新文件一旦往内容节点推送,就可以开始进行下载更新文件的操作,而不必等待更新文件向内容节点推送完成后,再进行下载更新文件的操作。因为当更新文件较大时,如果等待更新文件向内容节点推送完成后再进行更新文件的下载,则需要等待较长的时间。在实际实践中,往往在更新文件向内容节点推送完成后不久,甚至几乎同时,完成了下载更新文件的操作。

本发明还提供了一种下载更新文件的方法,该方法由下载节点在cdn网络中执行。如图2所示,该方法包括:

步骤201,下载节点接收调度节点下发的更新任务,更新任务包括该下载节点待更新的文件在内容节点上的下载地址;

步骤202,下载节点向调度节点发送查询与该下载节点具有全部相同或部分相同更新任务的查询请求,并从调度节点接收与该下载节点具有全部相同或部分相同更新任务的下载节点的信息;

步骤203,下载节点从与该下载节点具有相同更新任务的下载节点中选择一个或多个,或者从内容节点和与该下载节点具有相同更新任务的下载节点中选择一个或多个,并下载更新文件。

步骤201还包括:当调度节点与该下载节点之间的网络连接异常时,下载节点通过与调度节点之间的网络连接正常的一个或多个其他下载节点接收调度节点下发的更新任务。此时,步骤202还包括:下载节点向该一个或多个其他下载节点发送将查询请求发送到调度节点的指示。即,当调度节点与该下载节点之间的网络不通时,下载节点通过其他下载节点从调度节点接收更新任务,并通过其他下载节点将查询请求发送到调度节点。

步骤203还包括:当下载节点从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择多个时,或者从内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择多个时,分别从所选择的各节点下载部分更新文件,并组合下载的各部分更新文件。下载节点在分别从各节点下载部分更新文件时,根据所选择的各下载节点自身的下载进度,进行下载管理,然后将下载的各部分文件组合为完整的文件。

需要说明的是,在cdn网络中,下载节点回源站下载时,可以至该下载节点的父节点下载更新文件,也可以至内容节点下载更新文件。当下载节点选择一个下载节点,或者多个下载节点,或者内容节点,或者一个下载节点与内容节点,或者多个下载节点与内容节点时,该下载节点可以根据cdn网络的回源策略选择到这些节点的最佳路由,进行更新文件的下载。并且,在进行下载时,可以根据具体情况,在各节点间选择http方式或p2p方式进行更新文件的传输。

另外,下载节点也可以只从内容节点和多个下载节点中选择一个,即选择内容节点或一个下载节点,进行更新文件的下载。

步骤203还包括:下载节点按照下述顺序,从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个,或者从内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个:属于同机房的下载节点、属于同地域的下载节点、属于同节点的下载节点、属于同运营商的下载节点、内容节点。通常来说,下载节点优选从其他下载节点下载更新文件,即尽量避免从内容节点下载更新文件,以降低内容节点的带宽要求。

上述方法还包括:在步骤203之后执行:下载节点向调度节点上报更新任务完成状态。并且,步骤202中,下载节点从调度节点接收的与该下载节点具有全部相同或部分相同更新任务的下载节点的信息包括该具有全部相同或部分相同更新任务的下载节点的更新任务完成状态。需要说明的是,下载节点在下载的过程中,也可以随时向调度节点上报下载进度,即更新任务完成的状态。

另外,所述方法还包括:在步骤201之前执行:周期地向所述调度节点发送探测包;在步骤201之后执行:向所述调度节点发送任务完成进度状态。上述发送周期小于所述调度节点查询是否收到所述探测包的查询周期。

节点服务器在向中央调度服务器发送探测包时,可以采用多协议传输的方式,以及多通道传输的方式,以使中央调度服务器探测准确率更高。例如,发送探测包时可以采用udp协议加私有协议的方式,以防止用单一协议传输方式时,中央调度服务器接收不到探测包。其中,私有协议是指节点服务器和中央调度服务器之间约定的协议。

下载节点可以从与其更新任务全部相同的下载节点下载更新文件,也可以从与其更新任务部分相同的下载节点下载更新文件。例如,下载节点需要更新文件a和文件b,则可以从更新任务中包含文件a的其他下载节点下载文件a,同时从更新任务中包含文件b的其他下载节点下载文件b。在这种情况下,下载节点在向调度节点发送查询请求时,可以在第一查询请求中附加与待下载的文件a相关的标识符,在第二查询请求中附加与待下载的文件b相关的标识符。调度节点在接收到包含该标识符的查询请求时,会将执行下载文件a的其他下载节点的信息通知该下载节点,然后将执行下载文件b的其他下载节点的信息通知该下载节点。

下面结合附图,详细描述根据本发明的下载更新文件的方法的实施例。该下载更新文件的方法由图3所示的系统执行。该系统由cdn网络中的节点构成,包括至少一台内容节点、调度节点,以及例如1000台下载节点,上述的内容节点、调度节点、下载节点均由cdn网络中的节点实现。

各节点的说明如下:

内容节点用于:接收并存储更新文件并提供该更新文件的下载服务。

调度节点用于:(1)接收文件分发任务及分发更新任务;(2)收集各下载节点上报的任务执行状态;(3)根据下载节点的查询请求向下载节点反馈其他执行相同下载任务的下载节点的任务执行状态。其中,内容节点向调度节点提交任务的方式可以是通过执行脚本程序,或从内网或线上提交,以触发此任务。其中,反馈的下载节点可以是根据一定的调度策略提供与发出查询请求的下载节点关系较密切的部分下载节点,如属于同机房、同地域、同节点、同运营商的下载节点。如上述条件不满足,可以选择跨运营商或更高级别运营商的下载节点,或者随机选择下载节点。

下载节点用于:(1)根据更新任务并遵循一定的优先策略从内容节点以及其他下载节点中的一个或多个,分别下载部分更新文件,并将各部分更新文件组合成完整的更新文件;(2)定时向调度节点上报下载进度、并在任务完成时上报已完成状态;(3)向调度节点查询执行相同下载任务的其他下载节点的任务执行状态。其中的优先策略可以是:下载节点优先从同机房、同地域、同运营商的下载节点拉取文件,再从跨机房、跨地域、跨运营商的下载节点拉取文件,最终从内容节点拉取文件。另外,从内容节点下载是通过cdn网络到内容节点下载。

具体过程如下:

步骤s1:把更新文件推到内容节点上;

步骤s2:将更新文件在其上的下载地址以及更新文件的名称、大小、下载节点列表封装成文件分发信息发送给调度节点;

步骤s3:调度节点对该文件分发信息进行解析,将各下载节点的更新任务发送到相应的下载节点;

在该步骤中,调度节点在向下载节点下发更新任务后,检测其与下载节点之间的连接状态。例如,调度节点检测到其与处于小运营商网络中的下载节点n1之间的网络连接状态异常,则随机选择至少一台执行相同更新任务的下载节点,例如下载节点n100、n200、n300,指示选取的这些下载节点向下载节点n1转发更新任务。需要说明的是,调度节点在选择进行转发更新任务的下载节点时,可以选择与下载节点n1具有不同更新任务的下载节点,也可以选择具有相同更新任务的下载节点。这是因为,调度节点选择的下载节点用于向下载节点n1转发更新任务,因此调度节点可以选择与下载节点n1没有相同更新任务的其他下载节点进行更新任务的转发。另外,调度节点根据下面的优先策略来选择进行更新任务转发的下载节点:优选属于同机房、同地域、同节点、同运营商的下载节点;然后选择属于跨运营商、更高级别运营商的下载节点。当然,调度节点也可以随机选择进行更新任务转发的下载节点。也就是说,在选择向下载节点n1转发更新任务的下载节点时,根据上述策略来进行选择。即使一下载节点没有与n1相同的任务,但是该下载节点与n1属于相同的机房,也会被优先选中。

此外,调度节点检测其与下载节点之间的连接状态可采用下述具体方案:下载节点按一定周期,如10分钟一次,向调度节点发探测包。发送探测包时可以采用udp协议加私有协议的方式,这是因为在有些节点禁udp或tcp的情况下,采用这种多通道双协议传输的方式,其探测准确率更高。调度节点按一定周期,如每隔半小时,查询是否收到下载节点发送的探测包。这里,调度节点的查询周期大于下载节点发送探测包的发送周期。当调度节点在下载节点发送多次探测包,例如3次后,仍没有收到下载节点n1发送的探测包,则判断下载节点n1为假死(例如,将其状态码置为-1)。调度节点在向各下载节点发送更新任务后,从所有其他下载节点收到了任何响应包(如任务完成进度状态),但是仍没有从下载节点n1收到任何响应包(如任务完成进度状态),并且调度节点扫描到下载节点n1状态码是-1,判断为真死,即与下载节点n1之间的网络连接异常。上述情况中,调度节点没有等到发送更新任务后达到设定时间段,即判断与下载节点n1之间的网络连接异常,当然也可以等待达到设定时间段,仍没有从下载节点n1收到任务完成进度状态,再判断与其的网络连接异常。上述判断调度节点与下载节点之间的网络连接状态的方式,采用双向判断的方式,提高了判断的准确性。

步骤s4:下载节点n1接收到更新任务后,向调度节点发送查询请求,查询与其具有相同更新任务的下载节点;

该步骤中,如果下载节点n1与调度节点之间的网络连接状态异常,则通过下载节点n100、n200、n300向调度节点转发查询请求。

步骤s5:调度节点选择与下载节点n1具有相同更新任务的下载节点n100、n200、n300,...,n900,n1000,并将这些下载节点的信息通知下载节点n1。

步骤s6:下载节点n1从调度节点接收到与其更新任务相同的下载节点n100、n200、n300,...,n900,n1000的信息后,根据同属于相同机房的选择策略,选择下载节点n500、n600、n700,通过与下载节点n500、n600、n700之间的私有协议,从其下载更新文件,并将分别下载的更新文件组合成完整的更新文件;

在该步骤中,下载节点n1在从其他下载节点下载更新文件时,也可以同时从内容节点下载更新文件。但是为了降低内容节点的带宽成本,下载节点n1优先选择从与其具有相同更新任务的下载节点下载更新文件。

步骤s7:下载完成后,下载节点n1向调度节点上报更新完成状态。

在该步骤中,如果下载节点n1此时与调度节点之间的网络连接状态仍为异常,则可从下载节点n100、n200、n300,...,n900,n1000中选择一个或多个,来向调度节点上报更新任务完成状态。

在下载节点n1从各节点(包括其他下载节点或内容节点)下载更新文件时,可以根据根据各节点已下载的进度进行下载管理

本发明还提供了一种下载更新文件的系统,该系统在cdn网络中的调度节点上实现,如图4所示,该系统包括:

第一接收模块401,用于接收文件分发信息;

第一发送模块402,用于根据所述文件分发信息,向所述文件分发信息中包括的下载节点发送更新任务,所述更新任务包括该下载节点待更新的文件在所述内容节点上的下载地址;

第二接收模块403,用于从下载节点接收查询具有全部相同或部分相同更新任务的下载节点的查询请求;

节点选择模块404,用于根据所述文件分发信息选择与该下载节点具有全部相同或部分相同更新任务的下载节点;

第二发送模块405,用于将选择的下载节点的信息通知该下载节点。

所述系统还包括:检测模块,用于在所述第一发送模块401向下载节点发送更新任务后,检测所述调度节点与每个下载节点之间的网络连接状态;

所述节点选择模块404还用于:如果所述检测模块检测到所述调度节点与一下载节点之间的网络连接异常,则选择网络连接正常的一个或多个其他下载节点;

所述第二发送模块405还用于:向该一个或多个其他下载节点发送向该网络连接异常的下载节点转发更新任务的指示。

所述节点选择模块404还用于:选择网络连接正常的一个或多个其他下载节点时,选择与该下载节点具有全部相同或部分相同更新任务的一个或多个其他下载节点。

所述检测模块还用于:

周期地查询是否收到每个下载节点发送的探测包,其中查询周期大于所述下载节点的发送周期;

若对于一下载节点的查询结果是没有收到探测包,则在下述条件满足一个或两个的情况下判断是否收到该下载节点发送的任务完成进度状态:所述第一发送模块发送更新任务后经过设定的时间段、从所有其他下载节点接收到任务完成进度状态,若判断结果是没有收到该下载节点发送的任务完成进度状态,则判断所述调度节点与该下载节点之间的网络连接异常。

所述节点选择模块404还用于:根据下述原则中的一个或多个选择与该下载节点具有全部相同或部分相同更新任务的下载节点:待选择的下载节点与发出查询请求的下载节点属于同机房,或者属于同地域,或者属于同节点,或者属于同运营商。

本发明还提供了一种下载更新文件的系统,该系统在cdn网络中的下载节点上实现,如图5所示,该系统包括:

接收模块501,用于接收调度节点下发的更新任务,所述更新任务包括该下载节点待更新的文件在所述内容节点上的下载地址,以及在发送模块502向所述调度节点发送查询请求后,从所述调度节点接收与该下载节点具有全部相同或部分相同更新任务的下载节点的信息;

所述发送模块502,用于向所述调度节点发送查询与该下载节点具有全部相同或部分相同更新任务的所述查询请求;

节点选择模块503,用于从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个,或者从所述内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个;

下载模块504,用于从所述节点选择模块选择的节点上下载更新文件。

所述接收模块501还用于:当所述调度节点与该下载节点之间的网络连接异常时,通过与所述调度节点之间的网络连接正常的一个或多个其他下载节点接收所述调度节点下发的更新任务;

所述发送模块502还用于:当所述调度节点与该下载节点之间的网络连接异常时,向所述一个或多个其他下载节点发送将所述查询请求发送到所述调度节点的指示。

所述下载模块504还用于:当所述节点选择模块503从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择多个时,或者从所述内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择多个时,分别从所选择的各节点下载部分更新文件,并组合下载的各部分更新文件。

所述节点选择模块503还用于:按照下述顺序,从与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个,或者从所述内容节点和与该下载节点具有全部相同或部分相同更新任务的下载节点中选择一个或多个:

属于同机房的下载节点、属于同地域的下载节点、属于同节点的下载节点、属于同运营商的下载节点、内容节点。

所述发送模块502还用于:在所述下载模块下载更新文件之后,向所述调度节点上报更新任务完成状态;

所述接收模块501还用于:从所述调度节点接收与该下载节点具有全部相同或部分相同更新任务的下载节点的信息时,还从所述调度节点接收该具有全部相同或部分相同更新任务的下载节点的更新任务完成状态。

所述发送模块还502用于:

在所述接收模块接收所述调度节点下发的更新任务前,周期地向所述调度节点发送探测包,上述发送周期小于所述调度节点查询是否收到所述探测包的查询周期;

在所述接收模块接收所述调度节点下发的更新任务后,向所述调度节点发送任务完成进度状态。

本发明中的下载更新文件的方法和系统中,下载节点在下载更新文件时,优先从与其具有相同更新任务的其他下载节点下载更新文件,具有以下有益效果:

(1)cdn网络的网络传输与响应能力有大幅度提升,提高了文件,特别是大文件的下载速度;

(2)借助p4p机制降低内容节点的压力,减少内容节点带宽需求,缩减带宽成本;

(3)整体下载耗时减少,下载稳定性也更强;

(4)采取对小运营商的保护策略,确保小运营商也能顺利完成文件更新。

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。

以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

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