用于cdn平台的响应处理方法、调度代理服务器及系统的制作方法
【专利摘要】本发明提供一种用于CDN平台的响应处理方法、调度代理服务器及响应处理系统,其中,所述CDN平台包括调度中心和CDN节点,其特征在于,所述方法包括:为所述调度中心配置调度代理服务器;所述调度代理服务器接收访问请求,与所述调度中心进行交互,和从所述CDN节点获取m3u8文件;所述调度代理服务器根据获取的m3u8文件对所述访问请求进行响应。通过本发明的方法及系统和调度代理服务器,能够减少客户端与服务器之间的交互次数,提高通信的稳定性和通畅性,保证响应效率。
【专利说明】
用于CDN平台的响应处理方法、调度代理服务器及系统
技术领域
[0001]本发明实施例涉及视频数据处理领域,尤其涉及一种用于CDN平台的响应处理方法、调度代理服务器及响应处理系统。
【背景技术】
[0002]Q)N(Content Delivery Network,内容分发网络),是一种通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络。CDN能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,其目的是能够选择离用户相对较近的节点向用户发送用户所需的内容,缓解网络拥挤的状况,提高网站的响应速度。
[0003]在各大视频网站目前所使用的传输协议中,流媒体传输协议HLS(HttpIivestreaming)占据了重要的地位。HLS协议是苹果公司实现的基于超文本传输协议Http的流媒体传输协议,HLS协议将容量巨大的连续媒体数据进行分段,分割为数量众多的小文件进行传递,迎合了网页服务器的文件传输性,采用一个不断更新的轻量级索引文件来控制分割后小媒体文件的下载和播放,可以实现流媒体的直播和点播。
[0004]通过HLS协议,视频数据经处理后分为媒体数据ts文件以及媒体数据索引m3u8文件,并存在于服务器上。m3u8文件实际上只是一种文件的组织形式,将视频片段以播放列表的形式组织在一起以供多媒体播放器下载播放。m3u8文件中通常包括多个上述媒体数据ts文件的多个统一资源定位符URL。多媒体播放器获取m3u8文件后,进而按照其中的URL下载对应的ts文件并进行播放。
[0005]现有技术中,客户端进行流媒体的访问请求时,通常是先向调度中心发送访问请求,调度中心根据资源配置的调度结果,返回距离用户最近的CDN节点的地址给客户端。客户端根据调度中心的反馈地址,向匹配的CDN节点服务器发送访问请求,以获取视频资源。CDN节点服务器根据客户端的请求,发送视频数据的m3u8文件给客户端,由客户端播放器通过m3u8文件中的索引,从相应的url获取视频数据进行播放。这种访问方式,客户端每次访问视频,需要发送两次服务器请求。由于客户端与服务器之间的通信容易受到网络环境的影响,导致不通畅且不稳定,因而视频的响应速度比较缓慢,客户端视频播放不够流畅,影响用户的体验和观看效果。
【发明内容】
[0006]为了解决现有技术中客户端每次进行视频请求时,需要进行两次服务器请求才能获取到资源,而客户端与服务器之间的通信由于受网络影响,通信不通畅且不稳定,导致视频响应效果不够好的问题,本发明实施例一方面提供了一种用于CDN平台的响应处理方法,其中,所述CDN平台包括调度中心和CDN节点,其特征在于,所述方法包括:
[0007]为所述调度中心配置调度代理服务器;
[0008]所述调度代理服务器接收访问请求,与所述调度中心进行交互,和从所述CDN节点获取m3u8文件;
[0009]所述调度代理服务器根据获取的m3u8文件对所述访问请求进行响应。
[0010]本发明实施例另一方面提供一种用于⑶N平台的调度代理服务器,其中,所述⑶N平台包括调度中心和CDN节点,其特征在于,所述调度代理服务器包括:
[0011 ]配置模块,用于为所述调度中心配置所述调度代理服务器;
[0012]服务器交互模块,用于接收访问请求,与所述调度中心进行交互,和从所述⑶N节点获取m3u8文件;和
[0013]响应处理模块,用于根据获取的m3u8文件对所述访问请求进行响应。
[0014]本发明实施例还提供一种用于CDN平台的响应处理系统,其特征在于,所述系统包括调度代理服务器、调度中心和⑶N节点,其中,所述调度代理服务器为权利要求7至11任一项所述的调度代理服务器,所述调度中心和CDN节点为所述CDN平台中的调度中心和CDN节点。
[0015]本发明实施例提供的用于CDN平台的响应处理方法及系统、和调度代理服务器,通过在客户端和调度中心之间设置调度代理服务器,以通过调度代理服务器直接对客户端的访问请求进行响应,从而减少了客户端与服务器之间的通信次数,提高了客户端视频资源响应的速度和稳定性。
【附图说明】
[0016]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本发明中用于CDN平台的响应处理方法的实施例流程图;
[0018]图2为图1所示方法中m3u8文件的结构示意图;
[0019]图3为本发明中用于CDN平台的响应处理系统的框架结构的示意图。
【具体实施方式】
[0020]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021 ]下面结合附图对本发明作进一步详细的说明。
[0022]图1示意性地显示了根据本发明的一种用于⑶N平台的响应处理方法。如图1所示,该方法包括:
[0023]步骤SlOl:在客户端和调度中心之间设置调度代理服务器。
[0024]在客户端和调度中心之间设置调度代理服务器,由调度代理服务器接收客户端的访问请求进行域名解析,和通过调度代理服务器与调度中心和CDN节点服务器进行通信。月艮务器之间的通信,与客户端和服务器之间的通信相比,通信的稳定性更好、效率更快。通过设置调度代理服务器,客户端与服务器之间的通信就能够由原来的两次(一次为与调度中心的通信、一次为与CDN节点服务器的通信),减少为本发明实施例中的一次,能够提高通信的效率和稳定性。
[0025]步骤S102:调度代理服务器接收客户端的访问请求进行缓存检查。
[0026]调度代理服务器接收客户端的对某一视频资源的访问请求,首先根据访问请求中需要访问的视频资源进行本地的缓存检查,检查缓存中是否存在针对该视频资源的m3u8文件的元数据信息的缓存。对于第一接收到的客户端的针对该视频资源的访问请求,检查结果一般是不存在对应的m3u8文件的缓存信息,此时进行步骤S103的处理,与调度中心和CDN节点进行交互,以通过调度代理服务器获取相应的m3u8文件,对于之后的针对该视频资源的访问请求,一般就会检查到相应的m3u8文件的缓存信息,此时则进行步骤S106,以通过元数据信息生成m3u8文件进行响应。
[0027]步骤S103:调度代理服务器将访问请求发送到调度中心,获取调度中心反馈的⑶N节点服务器地址。
[0028]调度代理服务器将访问请求发送到调度中心,调度中心根据请求中的信息和资源配置信息进行调度处理,将距离用户最近的⑶N节点服务器的地址返回给调度代理服务器(调度处理为现有技术,故不赘述)。
[0029]步骤S104:调度代理服务器从反馈的⑶N节点服务器地址获取m3u8文件。
[0030]调度代理服务器根据调度中心反馈的节点服务器的地址,从相应的⑶N节点获取视频资源。⑶N节点根据HLS协议返回视频资源的m3u8文件给调度代理服务器(从⑶N获取资源为现有技术,故不赘述)。
[0031]步骤S105:调度代理服务根据获取的m3u8文件进行响应,并提取m3u8文件的元数据信息进行缓存。
[0032]调度代理服务器在获取到⑶N节点服务器返回的m3u8文件后,从m3u8文件中提取元数据信息进行缓存。图2示意性地显示了本发明实施例的m3u8文件的结构。如图2所示,m3u8文件20包括视频数据部分201和业务相关的数据部分202。其中,视频数据部分201是由目录索引组成的.ts文件,每一段视频数据的ts文件都对应一段视频帧,其主要的数据组成部分是开始时间和时长。业务相关的数据部分202在问号(?)之后,是根据客户端的访问请求的参数解析出的与业务相关的数据(如访问量等),同一m3u8文件中每一段ts文件对应的视频数据的业务相关的数据都取决于访问请求的参数而且都相同。根据m3u8文件的特征,提取其特征数据信息作为元数据信息进行缓存,元数据信息包括每个ts文件的开始时间、时长和MD5值。由于,m3u8文件的业务相关的数据,可以根据访问请求的内容获取到,每段视频帧一般通过开始时间和时长即可对应,因而将ts文件的开始时间、时长和MD5值存储后,就可以根据访问请求和视频元数据信息生成相应的m3u8文件,由此,缓存的数据非常的少,结合服务器的高效的拼接计算的速度,视频响应的效率就非常高。
[0033]步骤S106:根据访问请求的内容和缓存的元数据信息,生成m3u8文件进行请求响应。
[0034]如果在接收到客户端的访问请求时,调度代理服务器已经缓存了对应的视频资源的m3u8文件的元数据信息,就从缓存中获取元数据信息,根据开始时间、时长和MD5值计算拼接出m3u8文件20的视频数据部分201。同时,从访问请求中获取业务相关的参数数据拼接成m3u8文件的业务相关的数据部分202,从而生成与访问请求对应的完整的m3u8文件,返回给客户端,以进行请求响应。
[0035]通过以上方法,在客户端和调度中心之间设置一个调度代理服务器,实现对客户端访问请求的响应,可以减少客户端与服务器之间的交互次数,提高网络通信的稳定性和响应效率。同时,根据m3u8文件的特征,在第一响应请求后,提取m3u8文件的元数据信息进行缓存,在再次收到客户端的针对该资源的访问请求后,根据元数据信息和访问请求计算拼接出完整的m3u8文件进行响应,既然优化缓存的数据存储量,又能进一步提高对客户端请求的响应速度,保证通信的通畅和高效,提高用户视频访问尤其是视频点播和直播的体验。且,通过缓存元数据信息,只需要缓存极少的数据即可,有效的减轻了调度代理服务器的缓存负担,可以实现最优化的m3u8文件缓存。
[0036]对于在调度代理服务器上的缓存处理的方案,具体应用中,调度代理服务器在从CDN节点服务获取到m3u8文件后,可以直接提取元数据信息进行缓存,也可以根据m3u8文件中的索引目录,将ts文件对应的视频片段下载到本地,并缓存各视频片段的元数据信息(视频片段的开始时间、时间长度和MD5值),在响应客户端时,根据调度代理服务器的url地址生成新的目标url地址为调度代理服务器的m3u8文件返回给客户端。本发明对此不做具体限制,只要能够通过调度代理服务器代替客户端进行更多的数据操作处理,减少客户端与服务器之间交互的次数,保证和提高通信的质量及效率,都是本发明构思的范围。
[0037]图3示意性地显示了本发明的用于⑶N平台的响应处理系统的一种实施方式的框架结构。如图3所示,该系统架构包括客户端30、为调度中心32设置的调度代理器31和⑶N节点。系统通过配置模块(图未示出)在客户端30和调度中心32之间设置调度代理服务器31,通过客户端30与调度代理服务器31交互,调度代理服务器31与调度中心32及⑶N节点服务器交互,以减少客户端30与服务器之间的交互次数,解决客户端与服务器交互时因受网络环境影响,而容易导致通信不通畅、缺乏稳定性的问题。如图3所示,其中,调度代理服务器31上包括有缓存检查模块310、响应处理模块313和服务器交互模块312。其中,缓存检查模块310设置为接收客户端的访问请求进行判断,当检查到调度代理服务器31中不存在该访问请求的元数据信息的缓存时(即为第一次收到针对某一视频资源的访问请求),调用服务器交互模块312进行相应处理。服务器交互模块312用于在接收到访问请求时,与调度中心进行交互,和从CDN节点获取m3u8文件。响应处理模块313用于根据获取的m3u8文件对访问请求进行响应。由此,以减少客户端与服务器之间的交互次数,保证和提高通信的质量及效率。
[0038]如图3所示,本发明实施例的系统中的调服代理服务器31上还包括有元数据缓存模块314,用于在响应处理模块313进行响应后,提取m3u8文件的元数据信息进行缓存。其中,根据m3u8文件的结构特征(可参见图2),提出的元数据信息包括视频数据的开始时间、时间长度及MD5值。
[0039]如图3所示,本发明实施例的系统还包括文件生成模块311,用于在元数据缓存模块314将m3u8文件的元数据信息进行缓存后,对再次接收到的访问请求,根据访问请求和缓存的元数据信息,生成m3u8文件返回给客户端,以对再次的访问请求进行响应。实际应用中,缓存检查模块310在检查到调度代理服务器31中存在该访问请求的元数据信息的缓存时(即在第一次访问后,又向调度代理服务器请求该视频资源),就会调用文件生成模块311进行响应处理。
[0040]如图3所示,服务器交互模块312中包括调度处理单元3121和文件获取单元3122。调度处理单元3121用于发送访问请求到调度中心,以获取调度中心返回的与访问请求匹配的资源参数(即离访问请求的用户最近的CDN节点服务器的地址)。文件获取单元3122用于根据资源参数,将访问请求发送给相应的CDN节点服务器,以从CDN节点服务器获取相应的m3u8文件。元数据缓存模块314在响应处理模块313进行响应后,从m3u8文件中提取视频数据的开始时间、时间长度,并计算视频数据的MD5值,进行缓存。调度代理服务器31通过提取和缓存m3u8文件的元数据信息,减少了缓存的数据量,降低了对调度代理服务器的缓存要求,结合服务器的计算效率,能够保证对客户端请求的快速响应。
[0041]在具体应用中,调度代理服务器31接收客户端30的针对某一视频的访问请求,对访问请求进行域名解析,并根据解析结果检查本地缓存,以判断本地是否缓存有针对该访问请求的m3u8文件的元数据信息,如果存在则调用文件生成模块311,文件生成模块311根据缓存的元数据信息生成m3u8文件的视频数据部分,根据访问请求中的参数内容生成m3u8文件的业务数据部分,并将拼接后生成的完整的m3u8文件返回给客户端,以对客户端进行响应处理。当本地不存在针对访问请求的元数据信息时,调度代理服务器31调用服务器交互模块312将访问请求发送给调度中心32,由调度中心32进行调度处理后反馈回与该请求的用户最接近的⑶N节点服务器33的地址给调度代理服务器31,并根据反馈的地址,向⑶N节点服务器33发送请求信息,以获取相应的视频资源。CDN节点服务器33将符合请求信息的视频数据的m3u8文件发送给调度代理服务器31。调度代理服务器31接收到m3u8文件后通过响应处理模块313将m3u8文件发送给客户端30以进行响应,并通过元数据缓存模块314从m3u8文件中提取元数据信息进行缓存,以供以后的访问请求通过缓存快速获取视频资源。由此,客户端30在进行访问请求时,就只需要直接与调度代理服务器31进行交互,不需要先与调度中心32交互后再向CDN节点服务器33请求资源,减少了客户端30与服务器之间的交互次数,保证客户端的网络通信的稳定性和通畅性。同时,通过在调度代理服务器中缓存视频的m3u8文件的元数据信息,能够根据预设的算法(即根据文件生成模块311的相应处理)生成完整的m3u8文件进行响应,更进一步减少了与服务器直接的交互,提高了客户端的响应时间,保证通信的稳定性和通畅性。
[0042]本发明实施例的系统中各个模块可以是软件模块也可以是硬件模块,具体的实现方法可参照前文叙述,在此不再赘述。通过本发明的系统,可以减少客户端对服务器的请求次数,保证客户端视频数据响应的通畅性和稳定性。同时通过缓存少量特征数据,既能够保证响应效率,又能够实现对缓存的视频数据进行进一步优化,保证用户的网络服务质量。
[0043]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0044]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0045]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种用于⑶N平台的响应处理方法,其中,所述⑶N平台包括调度中心和⑶N节点,其特征在于,所述方法包括: 为所述调度中心配置调度代理服务器; 所述调度代理服务器接收访问请求,与所述调度中心进行交互,和从所述CDN节点获取m3u8文件; 所述调度代理服务器根据获取的m3u8文件对所述访问请求进行响应。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 所述调度代理服务器在根据获取的m3u8文件对所述访问请求进行响应后,提取所述m3u8文件的元数据信息进行缓存。3.根据权利要求2所述的方法,其特征在于,在所述调度代理服务器将m3u8文件的元数据信息进行缓存后,对再次接收到的访问请求,所述调度代理服务器根据所述访问请求和已缓存的元数据信息,生成m3u8文件,并根据生成的m3u8文件对所述访问请求进行响应。4.根据权利要求3所述的方法,其特征在于,所述元数据信息包括视频数据的开始时间、时间长度及MD5值。5.根据权利要求4所述的方法,其特征在于,所述调度代理服务器接收访问请求,与所述调度中心进行交互,和从所述⑶N节点获取m3u8文件包括: 所述调度代理服务器接收用户的访问请求,发送到所述调度中心,获取所述调度中心返回的与所述访问请求匹配的CDN节点的地址; 所述调度代理服务器根据所述CDN节点地址,将访问请求发送给相应的CDN节点服务器,从所述CDN节点服务器获取相应的m3u8文件; 所述提取所述m3u8文件的元数据信息进行缓存包括: 所述调度代理服务器从所述m3u8文件中提取视频数据的开始时间、时间长度,并计算视频数据的MD5值,缓存所述m3u8文件的视频数据的开始时间、时间长度和MD5值。6.根据权利要求3所述的方法,其特征在于,所述调度代理服务器根据所述访问请求和已缓存的元数据信息,生成m3u8文件应包括: 从缓存中获取所述元数据信息,根据所述元数据信息生成m3u8文件的视频数据部分,根据访问请求中的参数内容生成m3u8文件的业务数据部分。7.—种用于CDN平台的调度代理服务器,其中,所述CDN平台包括调度中心和CDN节点,其特征在于,所述调度代理服务器包括: 配置模块,用于为所述调度中心配置所述调度代理服务器; 服务器交互模块,用于接收访问请求,与所述调度中心进行交互,和从所述CDN节点获取m3u8文件;和 响应处理模块,用于根据获取的m3u8文件对所述访问请求进行响应。8.根据权利要求7所述的调度代理服务器,其特征在于,还包括: 元数据缓存模块,用于在所述响应处理模块进行响应后,提取所述m3u8文件的元数据ig息进行缓存。9.根据权利要求8所述的调度代理服务器,其特征在于,所述调度代理服务器还包括: 文件生成模块,用于在所述元数据缓存模块将m3u8文件的元数据信息进行缓存后,对再次接收到的访问请求,根据所述访问请求和缓存的元数据信息,生成m3u8文件返回给所述客户端,以对所述访问请求进行响应。10.根据权利要求9所述的调度代理服务器,其特征在于,所述元数据信息包括视频数据的开始时间、时间长度及MD5值。11.根据权利要求10所述的调度代理服务器,其特征在于,所述服务器交互模块包括调度处理单元和文件获取单元, 所述调度处理单元用于接收用户的访问请求,发送所述访问请求到所述调度中心,获取所述调度中心返回的与所述访问请求匹配的CDN节点的地址; 所述文件获取单元用于根据所述CDN节点的地址,将访问请求发送给相应的CDN节点服务器,从所述⑶N节点服务器获取相应的m3u8文件; 所述元数据缓存模块从所述m3u8文件中提取视频数据的开始时间、时间长度,并计算视频数据的MD5值,缓存所述m3u8文件的视频数据的开始时间、时间长度和MD5值。12.根据权利要求9所述的调度代理服务器,其特征在于,所述文件生成模块根据所述元数据信息生成m3u8文件的视频数据部分,根据访问请求中的参数内容生成m3u8文件的业务数据部分。13.—种用于CDN平台的响应处理系统,其特征在于,所述系统包括调度代理服务器、调度中心和⑶N节点,其中, 所述调度代理服务器为权利要求7至12中任一项所述的调度代理服务器, 所述调度中心和CDN节点为所述CDN平台中的调度中心和CDN节点。
【文档编号】H04L29/08GK105897850SQ201510975114
【公开日】2016年8月24日
【申请日】2015年12月22日
【发明人】李洪福
【申请人】乐视云计算有限公司