本发明涉及通信技术领域,特别涉及一种回源选路调度的方法和系统。
背景技术:
内容分发网络(Content Delivery Network,CDN)是在网络的各处放置节点服务器所构成的在现有互联网基础之上的智能虚拟网络。CDN系统能够实时地根据网络流量和各节点的链接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的节点上。
目前,CDN系统由很多服务器节点组成,服务器节点可分为源站和CDN节点,其中,CDN节点包括一级缓存节点(又称:边缘节点)和二级缓存节点等。当用户发送请求时,距离最近的一级缓存节点接收该请求,当一级缓存节点未缓存请求内容时,一级缓存节点可以通过与其静态规划的二级缓存节点链接,从二级缓存中获取请求内容,或者通过二级缓存去源站获取内容再返回给一级缓存,从而减少源站的压力或提升边缘节点到源站的网络质量。
在实施本发明实施例的过程中,发明人发现现有技术至少存在以下技术问题:
目前,二级缓存节点主要都是提前静态规划,即路由是提前配置好的,不会动态调整,正常情况下二级缓存的冗余较多,但在遇到比如补丁更新、新产品发布等需要大量更新数据的情形时,又会出现资源不足,无法及时响应,做出动态调整,降低了回源选路调度系统的服务质量。
技术实现要素:
为了解决现有技术中的问题,本发明实施例提供了一种回源选路调度的方法和系统。所述技术方案如下:
第一方面,本发明实施例提供的一种回源选路调度的方法,包括:
第一边缘节点根据客户端请求内容发送请求数据包至回源选路平台;
回源选路平台接收请求数据包,并调取所有边缘节点的基础信息,根据基础信息获取客户端请求内容的回源选路信息,并反馈给第一边缘节点;
第一边缘节点根据回源选路信息到源站或第二边缘节点获取客户端请求内容,并将客户端请求内容反馈给客户端。
可选地,请求数据包包含请求域名、第一边缘节点信息及源站信息;基础信息包含所有边缘节点的额定带宽信息,所有边缘节点可用于边缘节点的带宽与可用于二级缓存的带宽的使用比,所有边缘节点的实时流量带宽信息,及所有边缘节点之间的实时网络探测质量信息。
可选地,还包括:
当第一边缘节点中缓存有客户端请求内容时,将客户端请求内容发送给客户端;
当第一边缘节点中未缓存客户端请求内容时,判断本地缓存中是否存在客户端请求内容的未过期的回源选路信息;
当本地缓存中存在客户端请求内容的未过期的回源选路信息时,第一边缘节点根据回源选路信息到源站或第二边缘节点获取客户端请求内容;
当本地缓存中不存在客户端请求内容的未过期的回源选路信息时,第一边缘节点发送请求数据包至回源选路平台。
可选地,第一边缘节点根据回源选路信息到第二边缘节点获取客户端请求内容,包括:
判断第二边缘节点是否缓存有客户端请求内容,
当第二边缘节点缓存有客户端请求内容,第二边缘节点将请求内容发送给第一边缘节点;
当第二边缘节点未缓存客户端请求内容时,第二边缘节点到源站获取客户端请求内容,并反馈给第一边缘节点。
可选地,还包括:
第一边缘节点将获取的客户端请求内容、回源选路信息及回源选路信息的生效时间缓存。
第二方面,本发明实施例提供的一种回源选路调度的系统,包括:回源选路平台及多个边缘节点,多个边缘节点中至少包括第一边缘节点和第二边缘节点;
第一边缘节点,用于根据客户端请求内容发送请求数据包,至回源选路平台,并根据客户端请求内容的回源选路信息到源站或第二边缘节点获取客户端请求内容,并将客户端请求内容反馈给客户端;
回源选路平台,用于接收请求数据包,并调取所有边缘节点的基础信息,根据基础信息获取客户端请求内容的回源选路信息并反馈给第一边缘节点。
可选地,第一边缘节点,还用于:
当第一边缘节点中缓存有客户端请求内容时,将客户端请求内容发送给客户端;
当第一边缘节点中未缓存客户端请求内容时,判断本地缓存中是否存在客户端请求内容的未过期的回源选路信息,
当本地缓存中存在客户端请求内容的未过期的回源选路信息时,第一边缘节点根据回源选路信息到源站或第二边缘节点获取客户端请求内容。
可选地,第二边缘节点,还用于:
判断第二边缘节点是否缓存有客户端请求内容,
当第二边缘节点缓存有客户端请求内容,第二边缘节点将客户端请求内容发送给第一边缘节点;
当第二边缘节点未缓存客户端请求内容时,第二边缘节点到源站获取客户端请求内容,并反馈给第一边缘节点。
可选地,第一边缘节点,还用于:
将获取的客户端请求内容、回源选路信息及回源选路信息的生效时间缓存。
可选地,还包括:
基础数据节点,用于为回源选路平台提供所有边缘节点的基础信息,基础信息包括所有边缘节点的额定带宽信息,所有边缘节点可用于边缘节点的带宽与可用于二级缓存的带宽的使用比,所有边缘节点的实时流量带宽信息,及所有边缘节点之间的实时网络探测质量信息。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的回源选路调度的方法和系统,根据边缘节点发送的请求数据包,通过回源选路平台调取所有边缘节点的基础信息,再根据基础信息获取客户端请求内容的回源选路信息,能够快速、精确的响应客户端请求内容在边缘节点的回源选路,所有的边缘节点包括第一边缘节点和第二边缘节点相对客户端而言均是对等的,节点配置也可对等,可以充当一级缓存,同时回源选路平台又可以动态调整某些边缘节点(例如第二边缘节点)作为二级缓存。这样,使得客户端请求内容在边缘节点都能获取到最优的回源选路,快速响应客户端请求内容,提高了服务质量。同时,又避免了现有技术中静态规划的二级缓存冗余较多和资源不足的情况。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术用户来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种回源选路调度的方法的流程图;
图2是本发明实施例的第一边缘节点根据回源选路信息到第二边缘节点获取请求内容的流程图;
图3是本发明实施例提供的另一种回源选路调度的方法的流程图;
图4是本发明实施例提供的另一种回源选路调度的方法的流程图;
图5是本发明实施例提供的一种回源选路调度的系统的流程图;
图6是本发明实施例提供的另一种回源选路调度的系统的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种回源选路调度的方法,该方法可以应用在CDN(Content Delivery Network,内容分发网络)中,该方法在执行过程中执行的主体包括回源选路平台、基础数据中心及多个内容缓存服务器,其中,CDN中的每个内容缓存服务器均为对等关系,根据回源选路平台的调度,该方法在执行过程中可将所有内容缓存服务器中的每一个内容缓存服务器作为CDN的边缘节点,也可作为回源选路平台在进行回源选路时的二级缓存。
下面将结合具体实施方式,对图1-图5所示的处理流程进行详细的说明,内容可以如下:
步骤100,第一边缘节点根据客户端请求内容发送请求数据包至回源选路平台。
在实施例中,客户端会向最近的内容缓存服务器发送请求用以获取客户端请求内容,本回源选路调度的方法将接收到该客户端请求内容的缓存服务器作为第一边缘节点;第一边缘节点再根据客户端请求内容向回源选路平台发送请求数据包。
其中,请求数据包中的内容包括源站信息(包含一个或多个源服务器的域名或IP及端口的实时信息)、请求URL(Uniform esource Locator,统一资源定位符)信息或者请求域名和第一边缘节点信息。
步骤200,回源选路平台接收请求数据包,并调取所有边缘节点的基础信息,根据基础信息获取客户端请求内容的回源选路信息,并反馈给第一边缘节点。在本实施例中,基础信息包含所有边缘节点的额定带宽信息,所有边缘节点可用于边缘节点的带宽与可用于二级缓存的带宽的使用比,所有边缘节点的实时流量带宽信息,及所有边缘节点之间的实时网络探测质量信息。
举例而言,回源选路平台根据基础信息获取客户端请求内容的回源选路信息,具体为:
1,获取所有边缘节点的带宽百分比,即为所有边缘节点的额定带宽信息,假设所有CDN节点为node1,node2,node3,……,nodeN,(从node1到nodeN):p1,p2,p3,……,pN;
2,获取所有边缘节点可用于边缘节点的带宽与可用于二级缓存的带宽的使用比(从node1到nodeN):p_bw1,p_bw2,p_bw3,……,p_bwN;
3,获取所有边缘节点的实时流量带宽信息(从.node1到nodeN):r_bw1,r_bw2,r_bw3,……,r_bwN;
4,获取所有边缘节点之间的实时网络探测质量信息(从node1到nodeN):ori_qs1,ori_qs2,ori_qs3,……,ori_qsN;其中包括node1(第一边缘节点)到其他边缘节点的网络质量(从node2到nodeN):node_qs2,node_qs3,……,node_qsN;
5,根据上述步骤1,2,3获取潜在的第二边缘节点列表List<nodes>=func1(List<p1..pN>,List<p_bw1....p_bwN>,List<r_bw1...r_bwN>);
6,根据步骤4获取的信息及步骤5进一步获取到node1到List<nodes>中的回源路由信息
List<routes>=func2(List<nodes>,List<ori_qs1....ori_qsN>,List<node_qs1...node_qsN>)。
其中,回源选路信息中包括第二边缘节点的基础信息和客户端请求内容的缓存有效时间,当没有边缘节点缓存有有效的客户端请求内容时,回源选路信息中包括源站的基础信息,第一边缘节点只能去源站获取客户端请求内容。其中,第二边缘节点即为缓存有客户端请求内容的边缘节点,并且其基础信息包含在回源选路信息中。
步骤300,第一边缘节点根据回源选路信息到源站或第二边缘节点获取客户端请求内容,并将客户端请求内容反馈给客户端。
本实施例中,第一边缘节点根据回源选路信息中包括的第二边缘节点的基础信息或源站的基础信息确定请求路径,根据请求路径到第二边缘节点或源站获取客户端请求内容,获取客户端请求内容后反馈给客户端。
参见图2,可选地,第一边缘节点根据回源选路信息到第二边缘节点获取请求内容,包括:
步骤310,判断第二边缘节点是否缓存有客户端请求内容,
步骤320,当第二边缘节点缓存有客户端请求内容,第二边缘节点将客户端请求内容发送给第一边缘节点;
步骤330,当第二边缘节点未缓存客户端请求内容时,第二边缘节点到源站获取客户端请求内容,并反馈给第一边缘节点。
本实施例中,当第二边缘节点未缓存客户端请求内容时,即为回源选路平台发送的回源选路信息有误,为防止无法获取请求内容,进入步骤330,第二边缘节点向源站获取请求内容。
其中,第二边缘节点可将获取的客户端请求内容进行缓存,以便其他边缘节点对其进行再次访问。
参见图3,本发明实施例提供的回源选路调度的方法,本实施例还包括:
判断第一边缘节点中是否缓存有客户端请求内容,具体包括:
步骤110,当第一边缘节点中缓存有客户端请求内容时,将客户端请求内容发送给客户端;
本实施例中,当第一边缘节点中缓存了客户端请求内容时,可将请求内容直接反馈给客户端。
步骤120,当第一边缘节点中未缓存客户端请求内容时,判断本地缓存中是否存在客户端请求内容的未过期的回源选路信息,
步骤130,当本地缓存中存在客户端请求内容的未过期的回源选路信息时,第一边缘节点根据回源选路信息到源站或第二边缘节点获取客户端请求内容。
当本地缓存中不存在客户端请求内容的未过期的回源选路信息时,进入步骤100,第一边缘节点发送请求数据包至回源选路平台。
参见图4,可选地,本发明实施例提供的回源选路调度的方法还包括:
步骤400,第一边缘节点将获取的客户端请求内容、回源选路信息及回源选路信息的生效时间缓存。
本实施例中,第一边缘节点将获取的客户端请求内容、回源选路信息及回源选路信息的生效时间缓存,当其他边缘节点根据回源选路平台发送的回源选路信息访问该第一边缘节点时,此时,该第一边缘节点即可作为其他边缘节点的第二边缘节点。因此,本实施例提供的回源选路调度的方法中边缘节点均是对等的。
本发明实施例提供的回源选路调度的方法,根据边缘节点发送的请求数据包,通过回源选路平台调取所有边缘节点的基础信息,再根据基础信息获取客户端请求内容的回源选路信息,能够快速、精确的响应客户端请求内容在边缘节点的回源选路,所有的边缘节点包括第一边缘节点和第二边缘节点相对客户端而言均是对等的,节点配置也可对等,可以充当一级缓存,同时回源选路平台又可以动态调整某些边缘节点(例如第二边缘节点)作为二级缓存。这样,使得客户端请求内容在边缘节点都能获取到最优的回源选路,快速响应客户端请求内容,提高了服务质量。同时,又避免了现有技术中静态规划的二级缓存冗余较多和资源不足的情况。
基于相同的技术构思,本发明实施例还提供了一种回源选路调度的系统,参见图5,包括:回源选路平台及多个边缘节点,多个边缘节点中至少包括第一边缘节点和第二边缘节点;
第一边缘节点,用于根据客户端请求内容发送请求数据包,至回源选路平台,并根据客户端请求内容的回源选路信息到源站或第二边缘节点获取客户端请求内容,并将客户端请求内容反馈给客户端;
回源选路平台,用于接收请求数据包,并调取所有边缘节点的基础信息,根据基础信息获取客户端请求内容的回源选路信息并反馈给第一边缘节点。
可选地,第一边缘节点,还用于:
当第一边缘节点中缓存有客户端请求内容时,将客户端请求内容发送给客户端。
当第一边缘节点中未缓存客户端请求内容时,判断本地缓存中是否存在客户端请求内容的未过期的回源选路信息,
当本地缓存中存在对应客户端请求内容的未过期的回源选路信息时,第一边缘节点根据回源选路信息到源站或第二边缘节点获取客户端请求内容。
可选地,第二边缘节点,还用于:
判断第二边缘节点是否缓存有客户端请求内容,
当第二边缘节点缓存有客户端请求内容,第二边缘节点将客户端请求内容发送给第一边缘节点;
当第二边缘节点未缓存客户端请求内容时,第二边缘节点到源站获取客户端请求内容,并反馈给第一边缘节点。
可选地,第一边缘节点,还用于:
将获取的客户端请求内容、回源选路信息及回源选路信息的生效时间缓存。
参见图6,可选地,还包括:
基础数据节点,用于为回源选路平台提供所有边缘节点的基础信息,基础信息包括所有边缘节点的额定带宽信息,所有边缘节点可用于边缘节点的带宽与可用于二级缓存的带宽的使用比,所有边缘节点的实时流量带宽信息,及所有边缘节点之间的实时网络探测质量信息。
本实施例中,基础数据节点即为基础数据中心。
本发明实施例提供的回源选路调度的系统,根据边缘节点发送的请求数据包,通过回源选路平台调取所有边缘节点的基础信息,再根据基础信息获取客户端请求内容的回源选路信息,能够快速、精确的响应客户端请求内容在边缘节点的回源选路,所有的边缘节点包括第一边缘节点和第二边缘节点相对客户端而言均是对等的,节点配置也可对等,可以充当一级缓存,同时回源选路平台又可以动态调整某些边缘节点(例如第二边缘节点)作为二级缓存。这样,使得客户端请求内容在边缘节点都能获取到最优的回源选路,快速响应客户端请求内容,提高了服务质量。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
还需要说明的是,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。