基于数据/视频服务系统的数据请求消息处理方法

文档序号:7921885阅读:153来源:国知局

专利名称::基于数据/视频服务系统的数据请求消息处理方法
技术领域
:本发明涉及一种基于数据/视频服务系统的数据请求消息处理方法,尤其是一种基于均衡数据/视频系统,用于均衡负载流量数据文件的消息处理方法。
背景技术
:随着网络技术的发展,用户对视频/数据点播的需求日益增加,针对这种需求,出现了点(视频/数据发送方)对多点(多个用户)的数据传输方案。目前,大多数提供视频/数据服务的系统,在处理大量的数据申请时,一般因为硬盘瓶颈,总线瓶颈和网络瓶颈导致输出能力不足,不能支持很大的同时点播率。一般提供视频/数据服务的系统包括存储控制服务器和输出服务器等,所述的存储控制服务器负责分配、管理业务内容的存储与输出,相关业务流程的消息同步;所述的输出服务器负责输出队列的平衡,提供可堆叠的宽带文件交换接口,在其内部存储有相关的业务内容,并提供可靠的数据文件管理和保护。一般,视频/数据服务的系统的数据请求数量可能会比较大,由于现有机制是在输出服务器上以多机之间存储相同的文件来保证流量,或者固定节目在输出服务器上的存储位置,这样导致不能够很好地平衡输出服务器的负载,造成部分输出服务器负载量过大,甚至满负荷工作,而部分输出服务器资源未被充分利用,甚至未工作。并且,由于现有机制中的文件内容是分别存储在不同的服务器上,如果其中某台服务器异常不能正常工作,可能会导致请求该服务器上的数据文件丟失,无法被正常被传输出去。
发明内容本发明的目的在于针对现有技术的不足,提出一种基于数据/视频服务系统的数据请求消息处理方法,对大流量数据实现数据输出的负载均衡与高效率响应。为实现上迷目的,本发明提供了一种基于数据/视频服务系统的数据请求消息处理方法,所述系统包括存储控制服务器和与其连接的一个或一个以上的输出服务器,所述输出服务器存储有数据文件,该方法包括以下步骤步骤1、所述存储控制服务器根据接收到的数据请求消息确定输出服务器并将该输出服务器信息封装到数据请求消息中;步骤2、所述存储控制服务器将封装后的数据请求消息添加到数据请求总队列和与所述输出服务器相对应的子队列中;步骤3、所述存储控制服务器通过数据请求发送线程从所述子队列中提取数据请求消息,并发送到对应的输出服务器;步骤4、所述输出服务器接收该数椐请求消息,将该数据请求消息中请求的数据文件发送给数据申请方,并向存储控制服务器返回数据回应消息;步骤5、所述存储控制服务器响应所述输出服务器的数据回应消息,将数据请求总队列和对应的子队列中的对应该数据文件的请求消息删除。其中,所述步骤l中所述存储控制服务器根据接收到的数据请求消息确定输出服务器的过程包括以下步骤步骤la、所述存储控制服务器查询与接收到的数据请求消息对应的数据文件名和存储该数据文件的所有输出服务器;步骤lb、查询输出服务器的负载情况,并将负载小的一个或一个以上的输出服务器确定为输出该数据请求消息请求的数据文件的输出服务器,其中,所述输出服务器的负载情况通过查询输出服务器对应子队列的数据文件请求消息的个数获得。步骤4中输出服务器接收该数据请求消息,将该数据请求消息中请求的数据文件发送给数据申请方的过程包括以下步骤步骤4a、所述输出服务器接收该数据请求消息后查询其一个以上的输出接口的输出压力,将输出压力最轻的输出接口确定为输出该数据文件的输出接口;步骤4b、所述输出服务器控制该输出接口将该数据请求消息中请求的数据文件发送给数据申请方。所述步骤5还包括所述存储控制服务器响应所述输出服务器的数据回应消息,修改该数据文件的使用状态。本发明建立了一套数据/视频服务中对于大流量数据申请的高效响应机制。通过多级消息队列的方式来处理对数据文件的请求消息,可以根据数据文件的存储结构,分解成多个输出子队列,控制多个输出服务器,以负载均衡的方式输出用户请求数据,使数据输出系统始终在最大效率的情况下工作实现了对大量数据申请的高效处理和对大流量数据高效输出。以下结合附图和实施例对本发明做进一步的详细说明。图1为本发明所述系统的结构示意图2为数据文件的存储分配示意图3为本发明所述请求消息的处理方法的流程图4为本发明中的总队列与子队列的关系示意图。具体实施例方式参见图1,为本发明所述系统的结构示意图,一种用于均衡数据/视频服务负载流量的系统包括一个存储控制服务器(csc)1和一个或一个以上的输出服务器(CS0)21、22......2n,所述的CSC1分别与CS021、CS022......CS02n连接,CSC1将接收的数据请求消息发送到存储有对应数据文件的CS0,CSO接收到该消息后输出对应的数据文件。所述的CSC1用于对节目请求进行整合分发;所述的CSO存储有与所述存储空间分配表中的存储位置相同的数据文件,响应节目请求将请求的数据文件发送给数据申请方。为了实现负载均衡的目的,采取了以下技术手段首先,通过存储方法将数据文件存储在不同的CS0上(即交织存储策略),通过这样的数据存储结构,使数据文件在存储时达到一定平衡,然后,在响应数据文件的请求消息时,在输出时可以根据cso的负栽情况,选择相应的负栽较轻的cso输出。所以,本发明提供了一种数据文件的存储方法,首先,csc根据cso的个数n和需要存储的次数k,计算每一存储空间对应的存储位置;然后再将数据库中的数据文件依次存储到计算得到的存储位置中。具体的,为管理方便,CSC在根据CS0的个数n和需要存储的次数k,计算每一存储空间对应的存储位置时,生成一个存储空间分配表(SAT),表的内容包括存储空间编号(StorageSpaceID)、存储位置(StoragePosition)和空间状态(Status),每个存储的凝:据文件对应一个StorageSpaceID,每个StorageSpaceID对应一个的StoragePosition,所述的存储位置为存储数据文件的各个CS0编号,该CSO编号的个数即为存储的次数,Status表示该空间位置是否被占用。具体实施例如下(其中,CS0的个数n-4,存储的次数k-2),此时所述的SAT表的结构如表1所示。表l<table>tableseeoriginaldocumentpage7</column></row><table>其中,每一存储空间对应的存储位置即CSO编号通过如下的算法获得:(其中n为CSO个数,k为存储次数)for(inti=0;i空间分配最大值;i++){临时存储编号=0起始存储编号=1%11(符号"%"为取模运算)for(intj=l;j<k;{当前存储编号=起始存储编号+j;if(当前存储编号〉n)(当前存储编号=当前存储编号-n}临时存储编号=临时存储编号+当前存储编号记录临时存储编号为空间编号为i时的最终存储编号,即输出服务器编号根据上述算法,以11=4,k-2为例,当StorageSpaceID-1时,对应该存4诸空间的CS0编号为1、2…k;当StorageSpaceID=2时,对应该存4渚空间的CS0编号为2、3、…k+l;依次类推,当StorageSpaceID=n-k+l时,对应该存4诸空间的CS0编号为(n-k+l)、(n-k+2)…n;当StorageSpaceID=n-k+2时,对应该存储空间的CS0编号为(n-k+2)、(n-k+3)…n、1;当StorageSpaceID=n-k+3时,对应应该存4诸空间的CS0编号为(n-k+3)、(n-k+4)…n、1、2;^口上表所示,当StorageSpaceID=l时当StorageSpaceID=2时当StorageSpaceID=3时当StorageSpaceID=4日于依次类推。8,对应该存储空间的CSO的编号为1、2,对应该存储空间的CSO的编号为2、3,对应该存储空间的CSO的编号为3、4,对应该存储空间的CSO的编号为4、1根据上述的存储策略,特点有保证k-1(k为存储次数)台CS0出现异常,无法正常运行时,整个系统的运行流程不会受到影响;最大程度的平滑CSO的负载,避免出现单台CS0超负荷运行,而其他CSO却是无负荷运行;方便系统的扩容,即新增加CS0的个数或改变节目存储次数时,不需要修改原程序,只需要重新配置系统运行参数,初始化节目即可。在存储文件即生成SAT表的同时,还记录已存储的数据文件名及其存储位置,此时生成另外一存储位置表(SPT),在根据上述存储策略进行存储数据文件时,CS0存储后向CSC返回存储完成响应消息,CSC响应CSO的存储回应消息,根据存储回应消息的内容生成存储位置表(SPT),来记录数据文件的存储位置(即存储该数据文件的CSO编号)以及其他存储状况,SPT表和SAT表通过相同的StorageSpaceID项相互关联。与表1相对应,所述的SPT表如图2所示,由于交织存储的次数为2,每一文件存储2次,其存储的CS0如图2所示。当根据上述的存储方法存储数据文件的均衡数据/视频服务系统接收到一个或一个以上数据请求消息后,将该请求消息请求的数据文件发送出去的方法,如图3所示,包括以下步骤步骤1、所述存储控制服务器根据接收到的数据请求消息确定输出服务器并将该输出服务器信息封装到数据请求消息中;步骤2、所述存储控制服务器将封装后的数据请求消息添加入数据请求总队列和与所述输出服务器相对应的子队列中;步骤3、所述存储控制服务器通过数据请求发送线程从所述子队列中提取数据请求消息,并发送到对应的输出服务器;步骤4、所述输出服务器接收该数据请求消息,将该数据请求消息中请求的数据文件发送到数据申请方,并向存储控制服务器返回数据回应消台步骤5、所述存储控制服务器响应所述输出服务器的数据回应消息,修改数据请求总队列和对应的子队列。具体地,以CS0的个数为4,存储次数为2时的存储策略存储数据文件的系统为例,为响应每个点播请求消息,CSC都会建立对应的消息队列,对这些消息进行管理,消息转发至cso都由相应的线程操作完成,只有在cso返回响应消息后,才对队列进行修改,即把相应的请求消息从队列中删除,这样的操作能够保证消息的可靠性,避免消息在CSC系统中丢失。可能单位时间请求消息的数量非常多,对cso的压力大,csc对该类请求消息采用分级建队列的方法,即一个总队列和多个子队列,总队列保存了所有的请求消息,每个子队列对应一个响应的cso。分级队列的特点是把数据请求消息根据各CSO的负载情况分配到对应的子队列,能够保证数据分发的均衡,避免单个CSO负载过大;多个队列并行分发能够提高消息分发的效率;子队列可以根据对应CSO的负载,控制分发至该CSO的消息个数,降低CSO的负载压力;总队列包含了所有子队列的请求消息,这样即使某台CSO系统无法正常工作,也能保证该CSO对应子队列消息不丢失。本发明中的总队列与子队列的关系示意图如图4所示,在图4中,以CSC收到12个请求消息,共有4个CS0为例,其中,子队列Al对应CS021,子队列A2对应CS022,子队列A3对应CS023,子队列A4对应CS024。每一个子队列里有3个数据请求消息。当CSC1收到数据文件的请求消息后,根据接收到的数据请求消息确定输出服务器的过程,具体为首先,所述CSC1查询SPT表,得到与接收到的数据请求消息对应的数据文件名和存储该数据文件的所有CSO的编号;例如,参见图2,如该数据文件为文件l,可知,存储该数据文件的所有CSO的编号为CS021、CS022,然后,所述CSC1查询并比较所述输出服务器CS021、CS022相对应子队列1、2的数据文件请求消息的个数,如果子队列1目前的请求消息个数少,则将CS021确定为输出该数据请求消息请求的数据文件的输出服务器。当得到该数据文件1的文件名和输出该数据文件的输出服务器编号后,CSC将这两个信息整合为新的请求消息,将该请求消息添加进总队列和子队列1中;所述CSC1通过数据请求发送线程从所述子队列1中提取数据请求消息,并发送到对应的输出服务器CS021;所述CS021接收该数据请求消息,将该数据请求消息中请求的数据文件发送到数据申请方,并向CSC1返回数据回应消息;所述CSC1响应所述CS021的数据回应消息,修改数据请求总队列和对应的子队列1,将该处理完的请求消息删除。另外,当对一个数据文件的请求较多时,为了满足数据申请方的需求,可以多台输出服务器输出,这时,CSC在比较CSO的负栽个数,即其对就的子队列的排队情况时,选择负载较轻的一个或一个以上的输出服务器输出。当CSO的输出接口一个以上时,CSO在输出数据文件的同时,还需要选择合适的输出接口,例如,当CS021有3个输出接口时,所述CS021接收该数据请求消息后,检索其内部存储的输出接口需要输出的数据文件个数,根据该输出接口需要输出的数据文件个数确定其输出压力,将需要输出的数据文件个数少即输出压力轻的一个或多个输出接口确定为输出该数据请求消息指定的数据文件的输出接口。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。权利要求1、一种基于数据/视频服务系统的数据请求消息处理方法,所述系统包括存储控制服务器和与其连接的一个或一个以上的输出服务器,所述输出服务器存储有数据文件,其特征在于,该方法包括以下步骤步骤1、所述存储控制服务器根据接收到的数据请求消息确定输出服务器并将该输出服务器信息封装到数据请求消息中;步骤2、所述存储控制服务器将封装后的数据请求消息添加到数据请求总队列和与所述输出服务器相对应的子队列中;步骤3、所述存储控制服务器通过数据请求发送线程从所述子队列中提取数据请求消息,并发送到对应的输出服务器;步骤4、所述输出服务器接收该数据请求消息,将该数据请求消息中请求的数据文件发送给数据申请方,并向存储控制服务器返回数据回应消息;步骤5、所述存储控制服务器响应所述输出服务器的数据回应消息,将数据请求总队列和对应的子队列中的对应该数据文件的请求消息删除。2、根据权利要求1所述的基于数据/视频服务系统的数据请求消息处理方法,其特征在于,所述步骤1中存储控制服务器根据接收到的数据请求消息确定输出服务器的过程包括以下步骤步骤la、所述存储控制服务器查询与接收到的数据请求消息对应的数据文件名和存储该数据文件的所有输出服务器;步骤lb、查询输出服务器的负载情况,并将负载小的输出服务器确定为输出该数据请求消息请求的数据文件的输出服务器。'《3、根据权利要求2所述的基于数据/视频服务系统的数据请求消息处理方法,其特征在于,所述步骤lb中输出服务器的负载情况通过查询输出服务器对应子队列的数据请求消息的个数获得。4、根据权利要求1所述的基于数据/视频服务系统的数据请求消息处理方法,其特征在于,所述步骤4中输出服务器接收该数据请求消息,将该数据请求消息中请求的数据文件发送给数据申请方的过程包括以下步骤步骤4a、所述输出服务器接收该数据请求消息后查询其一个以上的输出接口的输出压力,将输出压力轻的输出接口确定为输出该数据文件的输出接口;步骤4b、所述输出服务器控制该输出接口将该数据请求消息中请求的数据文件发送给数据申请方。5、根据权利要求4所述的基于数据/视频服务系统的数据请求消息处理方法,其特征在于,所述步骤4a中输出接口的输出压力由该输出接口需要输出的数据文件个数确定。6、根据权利要求1所述的基于数据/视频服务系统的数据请求消息处理方法,其特征在于,所述步骤5中所述存储控制服务器响应所述输出服务器的数据回应消息后,还包括修改其内部存储的该数据文件的使用状态。全文摘要本发明公开了一种基于数据/视频服务系统的数据请求消息处理方法,所述数据请求消息处理方法通过多级队列将数据请求消息请求的数据文件发送给数据申请方;本发明通过多级消息队列的方式处理对数据文件的请求消息,根据数据文件的存储结构,分解成多个输出子队列,控制多个输出服务器,以负载均衡的方式输出用户请求数据,使数据输出系统始终在最大效率的情况下工作实现了对大量数据申请的高效处理和对大流量数据高效输出。文档编号H04L29/08GK101540780SQ20081017904公开日2009年9月23日申请日期2004年12月29日优先权日2004年12月29日发明者崔竞飞,李培琳,欧阳峰,胡毓明申请人:国家广播电影电视总局广播科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1