专利名称:媒体内容发布方法和发布管理服务器的制作方法
技术领域:
本发明涉及流媒体领域,特别涉及一种媒体内容发布方法和发布管理服务器。
背景技术:
IPTV(Interactive Personality Television,个性化互动电视)作为一个新兴的产业近两年正在逐渐被规模化商用在国内多个省市以及海外数个国家地区。IPTV业务的多样化,内容的丰富性使得它与传统有线电视以及数字电视相比较具有巨大优势。而IPTV平台所需要的大量VOD (Video on Demand,视频点播),BTV (Broadcast Television,直播),时移(Time Shift Television, TSTV)、录制(TV Video on Demand) ,NPVR(Network PersonalVideo Record,网络个人录制)业务内容都需要媒体分发平台进行分发到IPTV平台各地的众多流媒体服务器上面,并最终为终端用户提供服务。但是随着IPTV流媒体系统平台的逐步扩大,海量内容的注入,媒体内容的负载均衡分布、及时下发给众多的流媒体服务器成为各流媒体平台厂商的难题,因为每个流媒体服务器的磁盘内容大小和冷热内容多少是决定宝贵的IP网络带宽资源的使用状况、流媒体服务器的吞吐量、终端用户体验效果。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有的媒体分发平台的分发算法使用负载的方式进行分发,将各种业务内容按照一定的计算得出每台流媒体服务器的负载然后进行发布。这种方案要求平台的规模保持一定的稳定性并且要求整个平台的内容拓扑分布必须保持相对不变的状态。否则,当流媒体服务器、磁盘阵列扩容导致服务器之间负载产生较大差异或者流媒体服务器根据内容热度动态调整导致服务器磁盘使用率差异较大,一段时间内的新发片源以及通过动态调整热播片源和业务都集中下载到少数存储负载较低的服务器上,而每台服务器上的用户承载能力又是有限的,当用户上线高峰期时将导致服务器压力过大进而影响终端用户体验。
发明内容
本发明实施例提供了 一种媒体发布内容和发布管理服务器,所述技术方案如下:一种媒体内容发布方法,所述方法包括:获取至少两个流媒体服务器S1、S2、...Sn的存储信息,所述存储信息指示所述流媒体服务器的剩余空间,其中,Si为第i个流媒体服务器,η为大于或等于2的正整数,i为大于或等于2的正整数;当接收到媒体内容时,根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值,所述发布权重原则为:对于第i台流媒体服务器,其权重值W(Si)=(CurrentCapacity(i)mod(Max(CurrentCapacity)/M))+1,其中,W(Si)为第i个流媒体服务器的权重值,i为正整数,M为最大发布流媒体服务器个数;CurrentCapacity (i)为第i台流媒体服务器的剩余空间,Max (CurrentCapacity)为所述至少两个流媒体服务器中剩余空间最大的流媒体服务器上的剩余空间;根据所述权重值获取目的流媒体服务器,向所述目的流媒体服务器发布媒体内容。一种发布管理服务器,包括:获取模块,用于获取至少两个流媒体服务器S1、S2、...Sn的存储信息,所述存储信息指示所述流媒体服务器的剩余空间,其中,Si为第i个流媒体服务器,η为大于或等于2的正整数,i为大于或等于2的正整数;计算模块,用于当接收到媒体内容时,根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值,所述发布权重原则为:对于第i台流媒体服务器,其权重值W(Si) = (CurrentCapacity(i)mod(Max(CurrentCapacity)/M))+1,其中,W(Si)为第i个流媒体服务器的权重值,i为正整数,M为最大发布流媒体服务器个数;CurrentCapacity (i)为第i台流媒体服务器的剩余空间,Max (CurrentCapacity)为所述至少两个流媒体服务器中剩余空间最大的流媒体服务器上的剩余空间;发布模块,用于根据所述权重值获取目的流媒体服务器,向所述目的流媒体服务器发布媒体内容。本发明实施例提供的技术方案带来的有益效果是:通过根据各个流媒体服务器的存储信息和发布权重原则计算每个流媒体服务器的权重值,并根据权重值选择发布的流媒体服务器,解决了媒体内容过于集中在某些流媒体服务器上造成流媒体服务器吞吐量的瓶颈,能合理利用宝贵的流媒体服务器资源负载均匀的分担用户带宽,合理利用了昂贵的存储资源、使存储、磁盘的读写能力均衡发挥最佳性能,从而使终端用户体验提升。
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种媒体内容发布方法的流程图;图2是本发明实施例提供的一种媒体内容发布方法的流程图;图3是本发明实施例提供的流媒体服务器的各个参数的示意图;图4是本发明实施例提供的一种发布管理服务器的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。图1是本发明实施例提供的一种媒体内容发布方法的流程图。该实施例的执行主体为发布管理服务器,该平台用于接收外部系统注入的媒体内容,并对该媒体内容进行发布。参见图1,该实施例包括:101、发布管理服务器获取至少两个流媒体服务器S1、S2、...Sn的存储信息,所述存储信息指示所述流媒体服务器的剩余空间,其中,Si为第i个流媒体服务器,η为大于或等于2的正整数,i为大于或等于2的正整数;在本实施例中,发布管理服务器获取至少两个流媒体服务器S1、S2、S3,...Sn的存储信息,该存储信息可以由流媒体服务器定时上报。具体地,该存储信息包括:流媒体服务器的存储总空间、已使用存储空间、存储ID、流服务器出流网卡数量和速率,该存储信息中的流媒体服务器的存储总空间与已使用存储空间的差,即是该流媒体服务器的剩余空间。102、当接收到媒体内容时,根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值;所述发布权重原则为:对于第i台流媒体服务器,其权重值W(Si)=(CurrentCapacity(i)mod(Max(CurrentCapacity)/M))+1,其中,W(Si)为第i个流媒体服务器的权重值,i为正整数,M为最大发布流媒体服务器个数;CurrentCapacity (i)为第i台流媒体服务器的剩余空间,Max (CurrentCapacity)为所述至少两个流媒体服务器中剩余空间最大的流媒体服务器上的剩余空间;103、根据所述权重值获取目的流媒体服务器,向所述目的流媒体服务器发布媒体内容。在本实施例中,根据权重值从至少两个流媒体服务器中选择一个流媒体服务器,将该服流媒体服务器作为目的服务器,并向该目的流媒体服务器发布媒体内容。通过根据各个流媒体服务器的存储信息和发布权重原则计算每个流媒体服务器的权重值,并根据权重值选择发布的流媒体服务器,解决了媒体内容过于集中在某些流媒体服务器上造成流媒体服务器吞吐量的瓶颈,能合理利用宝贵的流媒体服务器资源负载均匀的分担用户带宽,合理利用了昂贵的存储资源、使存储、磁盘的读写能力均衡发挥最佳性能,从而使终端用户体验提升。图2是本发明实施例提供的一种媒体内容发布方法的流程图。该实施例以发布管理服务器为执行主体以及η个流媒体服务器S1、S2、...Sn为例进行说明,η为大于或等于
2的正整数。参见图2,该实施例包括:201、每个流媒体服务器定时向发布管理服务器上报该流媒体服务器的存储信息;该存储信息指示流媒体服务器的剩余空间;在本实施例中,该存储信息还包括该流媒体服务器的存储总空间、存储已使用空间、存储ID、存储配置可用总空间百分比、流服务器出流网卡数量和速率。其中,每个存储ID标识一个流媒体服务器。进一步地,该存储信息还包括所述存储信息包括用于指示流媒体服务器中磁盘故障或磁盘正常运作的设备健康性信息。其中,在流媒体服务器存储可用空间大小的基础上,可预先设置高水位阈值。该高水位阈值可以根据发布管理服务器动态配置。202、发布管理服务器接收来自η个流媒体服务器S1、S2、...Sn的存储信息;
需要说明的是,当发布管理服务器接收来自η个流媒体服务器S1、S2、...Sn的存储信息时,可将本地存储的各个流媒体服务器的存储信息进行更新,其更新方法可以为删除本地存储的存储信息,并保存接收到的存储信息,流媒体服务器的存储信息中包括存储ID。本领域技术人员可以获知,该更新可以根据存储ID查询到该新接收的存储信息对应的本地已保存的存储信息,用新接收的存储信息覆盖已保存的存储信息。203、当发布管理服务器接收到媒体内容时,判断该η个流媒体服务器S1、S2、...Sn当前的权重值是否全为0,如果是,执行步骤205 ;如果否,执行步骤204 ;在本实施例中,当权重值W(Si)等于O时,说明该流媒体服务器的已用空间已经达到其预设水线阈值,已经无法接收发布的内容。因此,当所有流媒体服务器的权重值均为O时,需要对所有流媒体服务器当前的权重值重新进行计算;如果权重值不全为0,则根据当前的权重值进行遍历。204、根据存储信息和发布权重原则计算每个流媒体服务器的权重值;其中,所述发布权重原则为:对于第i台流媒体服务器,其权重值W(Si)=(CurrentCapacity(i)mod(Max(CurrentCapacity)/M))+1,其中,W(Si)为第i个流媒体服务器的权重值,i为正整数,M为最大发布流媒体服务器个数;CurrentCapacity (i)为第i台流媒体服务器的剩余空间,Max (CurrentCapacity)为所述至少两个流媒体服务器中剩余空间最大的流媒体服务器上的剩余空间;在本实施例中,当分发管理服务器计算完所有流媒体服务器的发布权重后,将所有流媒体服务器的权重除以其权重的最大公约数,得到各个流媒体服务器的权重值,保证流媒体服务器权重之间的互质。205、当第X次发布媒体内容时,遍历至少两个流媒体服务器S1、S2、S3、...Sn ;其中,每遍历一个流媒体服务器时,将y值减I,其中,y = X mod Sum(W),其中,Sum(W)为所述至少两个流媒体服务器S1、S2、S3,...Sn的权重和;在本实施例中,y值在每遍历一个流媒体服务器时,即减1,可以表示每遍历一个流媒体服务器,y = y_l,该y值受到发布次数的限制,举例说明,当有5个流媒体服务器,通过计算,该流媒体服务器的权重值分别为5、2、4、0、1,则Sum(W) = 5+2+4+0+1,假设该次发布为第10次发布,则I = IOmod 12 = 2,则该次可遍历2个流媒体服务器,每次遍历的服务器会根据X值和I值的改变而改变,可以保证在多次选择目的流媒体服务器时,避免总是选择负载最小的流媒体服务器,给单个流媒体服务器减轻了负载压力,能够平衡多次发布时所有流媒体服务器中的负载,达到平衡。进一步地,存储信息包括用于指示流媒体服务器中磁盘故障或磁盘正常运作的设备健康性信息,当设备健康性信息指示所述流媒体服务器中磁盘故障时,不计算所述磁盘故障的流媒体服务器的权重值,避免了媒体内容被发布到磁盘故障的流媒体服务器,保证了发布效率。206、将y等于O且W(Si)不等于O的流媒体服务器作为目的流媒体服务器,所述目的流媒体服务器为本次媒体内容发布需要发布到的服务器;在本实施例中,当权重值W(Si)等于O时,说明该流媒体服务器的已用空间已经达到其预设水线阈值,已经无法接收发布的内容。因此,当遍历时获知该流媒体服务器的权重值W(Si)已为0,则跳过该流媒体服务器,遍历下一个流媒体服务器。207、将该媒体内容发布到目的流媒体服务器上。在本实施例中,根据目的流媒体服务器中所有磁盘的磁盘存储信息和发布权重原则计算所述目的流媒体服务器中所有磁盘的权重值;根据所述目的流媒体服务器中所有磁盘的权重值,向所述目的流媒体服务器中的磁盘发布媒体内容。需要说明的是,为了平衡流媒体服务器中各个磁盘的负载,可以通过根据磁盘信息例如磁盘已存储空间和最大存储空间等计算各个磁盘的权重值,利用与遍历流媒体服务器同理的方法,对各个磁盘进行遍历,以获取目的磁盘,并将媒体内容发布到该目的磁盘中。当所有磁盘均已达到高水位,则在所有已达高水位且未达到最大可用空间的磁盘点中,按照权重轮询算法选择一个磁盘发布媒体内容。通过根据各个流媒体服务器的存储信息和发布权重原则计算每个流媒体服务器的权重值,并根据权重值选择发布的流媒体服务器,解决了媒体内容过于集中在某些流媒体服务器上造成流媒体服务器吞吐量的瓶颈,能合理利用宝贵的流媒体服务器资源负载均匀的分担用户带宽,合理利用了昂贵的存储资源、使存储、磁盘的读写能力均衡发挥最佳性能,从而使终端用户体验提升。图4是本发明实施例提供的一种发布管理服务器的结构示意图。参见图4,该服务器包括:获取模块401,用于获取至少两个流媒体服务器S1、S2、...Sn的存储信息,所述存储信息指示所述流媒体服务器的剩余空间,其中,Si为第i个流媒体服务器,η为大于或等于2的正整数,i为大于或等于2的正整数;计算模块402,用于当接收到媒体内容时,根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值,所述发布权重原则为:对于第i台流媒体服务器,其权重值W(Si) = (CurrentCapacity(i)mod(Max(CurrentCapacity)/M))+1,其中,W(Si)为第i个流媒体服务器的权重值,i为正整数,M为最大发布流媒体服务器个数;CurrentCapacity (i)为第i台流媒体服务器的剩余空间,Max (CurrentCapacity)为所述至少两个流媒体服务器中剩余空间最大的流媒体服务器上的剩余空间;发布模块403,用于根据所述权重值获取目的流媒体服务器,向所述目的流媒体服务器发布媒体内容。所述发布模块403包括:遍历单元,用于当第X次发布媒体内容时,遍历所述至少两个流媒体服务器S1、S2、S3、...Sn ;每遍历一个流媒体服务器时,将y值减I,其中,y = X mod Sum (W),其中,Sum(W)为所述至少两个流媒体服务器S1、S2、S3,...Sn的权重和;确定单元,用于将y等于O且W(Si)不等于O的流媒体服务器作为目的流媒体服务器,所述目的流媒体服务器为本次媒体内容发布需要发布到的服务器;
发布单元,用于向所述目的流媒体服务器发布媒体内容。所述发布单元具体用于根据所述目的流媒体服务器中所有磁盘的磁盘存储信息和发布权重原则计算所述目的流媒体服务器中所有磁盘的权重值;根据所述目的流媒体服务器中所有磁盘的权重值,向所述目的流媒体服务器中的磁盘发布媒体内容。计算模块402具体用于当接收到媒体内容时,根据所述至少两个流媒体服务器当前的权重值是否全为0,如果是,则根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值。所述存储信息包括用于指示流媒体服务器中磁盘故障或磁盘正常运作的设备健康性信息,相应地,所述计算模块402具体用于当所述设备健康性信息指示所述流媒体服务器中磁盘故障时,不计算所述磁盘故障的流媒体服务器的权重值。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种媒体内容发布方法,其特征在于,所述方法包括: 获取至少两个流媒体服务器S1、S2、...Sn的存储信息,所述存储信息指示所述流媒体服务器的剩余空间,其中,Si为第i个流媒体服务器,η为大于或等于2的正整数,i为大于或等于2的正整数; 当接收到媒体内容时,根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值,所述发布权重原则为:对于第i台流媒体服务器,其权重值W(Si)=(CurrentCapacity(i)mod(Max (CurrentCapacity)/M))+1, 其中,W(Si)为第i个流媒体服务器的权重值,i为正整数,M为最大发布流媒体服务器个数; CurrentCapacity (i)为第i台流媒体服务器的剩余空间, Max(CurrentCapacity)为所述至少两个流媒体服务器中剩余空间最大的流媒体服务器上的剩余空间; 根据所述权重值获取目的流媒体服务器,向所述目的流媒体服务器发布媒体内容。
2.根据权利要求1所述的方法,其特征在于,根据所述权重值获取目的流媒体服务器,向所述目的流媒体服务器发布媒体内容,具体包括: 当第X次发布媒体内容时,遍历所述至少两个流媒体服务器S1、S2、S3、...Sn ; 每遍历一个流媒体服务器时,将y值减I,其中,y = X mod Sum(W),其中,Sum(W)为所述至少两个流媒体服务器S1、S2 、S3,...Sn的权重和; 将y等于O且W(Si)不等于O的流媒体服务器作为目的流媒体服务器,所述目的流媒体服务器为本次媒体内容发布需要发布到的服务器,向所述目的流媒体服务器发布媒体内容。
3.根据权利要求2所述的方法,其特征在于,根据所述权重值获取目的流媒体服务器,向所述目的流媒体服务器发布媒体内容,具体包括: 根据所述目的流媒体服务器中所有磁盘的磁盘存储信息和发布权重原则计算所述目的流媒体服务器中所有磁盘的权重值; 根据所述目的流媒体服务器中所有磁盘的权重值,向所述目的流媒体服务器中的磁盘发布媒体内容。
4.根据权利要求1所述的方法,其特征在于,当接收到媒体内容时,根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值,具体包括: 当接收到媒体内容时,根据所述至少两个流媒体服务器当前的权重值是否全为0,如果是,则根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述存储信息包括用于指示流媒体服务器中磁盘故障或磁盘正常运作的设备健康性信息,相应地,当接收到媒体内容时,根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值,具体包括: 当所述设备健康性信息指示所述流媒体服务器中磁盘故障时,不计算所述磁盘故障的流媒体服务器的权重值。
6.一种发布管理服务器,其特征在于,包括: 获取模块,用于获取至少两个流媒体服务器S1、S2、...Sn的存储信息,所述存储信息指示所述流媒体服务器的剩余空间,其中,Si为第i个流媒体服务器,η为大于或等于2的正整数,i为大于或等于2的正整数; 计算模块,用于当接收到媒体内容时,根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值,所述发布权重原则为:对于第i台流媒体服务器,其权重值W(Si)=(CurrentCapacity(i)mod(Max (CurrentCapacity)/M))+1, 其中,W(Si)为第i个流媒体服务器的权重值,i为正整数,M为最大发布流媒体服务器个数; CurrentCapacity (i)为 第i台流媒体服务器的剩余空间, Max (CurrentCapacity)为所述至少两个流媒体服务器中剩余空间最大的流媒体服务器上的剩余空间; 发布模块,用于根据所述权重值获取目的流媒体服务器,向所述目的流媒体服务器发布媒体内容。
7.根据权利要求6所述的服务器,其特征在于,所述发布模块包括: 遍历单元,用于当第X次发布媒体内容时,遍历所述至少两个流媒体服务器S1、S2、S3、...Sn ;每遍历一个流媒体服务器时,将y值减I,其中,y = X mod Sum(W),其中,Sum(W)为所述至少两个流媒体服务器S1、S2、S3,...Sn的权重和; 确定单元,用于将I等于O且W(Si)不等于O的流媒体服务器作为目的流媒体服务器,所述目的流媒体服务器为本次媒体内容发布需要发布到的服务器; 发布单元,用于向所述目的流媒体服务器发布媒体内容。
8.根据权利要求7所述的服务器,其特征在于,所述发布单元具体用于根据所述目的流媒体服务器中所有磁盘的磁盘存储信息和发布权重原则计算所述目的流媒体服务器中所有磁盘的权重值; 根据所述目的流媒体服务器中所有磁盘的权重值,向所述目的流媒体服务器中的磁盘发布媒体内容。
9.根据权利要求6所述的服务器,其特征在于,计算模块具体用于当接收到媒体内容时,根据所述至少两个流媒体服务器当前的权重值是否全为0,如果是,则根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值。
10.根据权利要求6-9任一项所述的服务器,其特征在于,所述存储信息包括用于指示流媒体服务器中磁盘故障或磁盘正常运作的设备健康性信息,相应地,所述计算模块具体用于当所述设备健康性信息指示所述流媒体服务器中磁盘故障时,不计算所述磁盘故障的流媒体服务器的权重值。
全文摘要
本发明公开了一种媒体内容发布方法和发布管理服务器,属于流媒体领域。所述方法包括获取至少两个流媒体服务器S1、S2、...Sn的存储信息,所述存储信息指示所述流媒体服务器的剩余空间,其中,Si为第i个流媒体服务器,n为大于或等于2的正整数,i为大于或等于2的正整数;当接收到媒体内容时,根据所述存储信息和发布权重原则计算每个流媒体服务器的权重值,根据所述权重值获取目的流媒体服务器,向所述目的流媒体服务器发布媒体内容。该服务器包括获取模块、计算模块和发布模块。本发明解决了媒体内容过于集中在某些流媒体服务器上造成流媒体服务器吞吐量的瓶颈。
文档编号H04N21/231GK103096146SQ201110346530
公开日2013年5月8日 申请日期2011年11月4日 优先权日2011年11月4日
发明者王轶, 徐彩辉 申请人:华为软件技术有限公司