发明内容
本发明实施例提供一种流媒体故障时使业务不间断的处理方法、装置及系统,以解决在CS或者ES出现故障时,用户无法继续从CS或者ES获取直播数据流的问题,以改善在流媒体业务中的用户体验。
为解决上述技术问题,本发明实施例提供了一种流媒体业务的处理方法,包括:
根据主用中心服务器CS发送的报文同步点和切片标识,维护所述报文同步点和切片标识的对应关系;
当主用CS出现故障时,获取报文中断点的切片标识;
依据所述切片标识,从对应的报文同步点开始对数据报文进行切片;
通过边缘服务器ES向客户端传输所述切片标识的后续切片流。
本发明实施例提供了一种流媒体业务的处理装置,包括:维护单元,用于根据主用中心服务器CS发送的报文同步点和切片标识,维护所述报文同步点和切片标识的对应关系;
第一获取单元,用于当主用CS出现故障时,获取报文中断点的切片标识;
切片单元,用于依据所述切片标识,从对应的报文同步点开始对数据报文进行切片;
传输单元,用于通过边缘服务器ES向客户端传输所述切片标识的后续切片流。
本发明实施例提供了一种流媒体业务的处理系统,包括:
业务处理装置,所述业务处理装置用于根据主用中心服务器CS发送的报文同步点和切片标识,维护所述报文同步点和切片标识的对应关系,当主用CS出现故障时,获取报文中断点的切片标识;依据所述切片标识,从对应的报文同步点开始对数据报文进行切片;并通过边缘服务器ES向客户端传输所述切片标识的后续切片流;
主用CS,用于确定直播数据流的报文同步点,并依据所述报文同步点开始切片,将所述报文同步点和切片标识发送至所述业务处理装置。
本发明实施例还提供了一种流媒体业务的处理方法,包括:
当主用边缘服务器ES出现故障时,获取报文中断点的切片标识;
向备用ES发送请求,所述请求用于根据所述切片标识获取后续切片流;
接收备用ES发送的后续切片流。
本发明实施例还提供了一种流媒体业务的处理装置,包括:
第二获取单元,用于当主用边缘服务器ES出现故障时,获取报文中断点的切片标识;
发送请求单元,用于向备用ES发送请求,所述请求用于根据所述切片标识获取后续切片流;
接收单元,用于接收备用ES发送的后续切片流。
本发明实施例还提供了一种流媒体业务的处理系统,包括:
业务处理装置,用于当主用边缘服务器ES出现故障时,获取报文中断点的切片标识;向备用ES发送请求,所述请求用于根据所述切片标识获取后续切片流;并接收备用ES发送的后续切片流;
备用ES,用于根据所述业务处理装置发送的请求,根据所述切片标识向所述业务处理装置发送后续切片流。
本发明实施例还提供了一种流媒体业务的处理方法,包括:
当拓扑结构中的第一ES出现故障时,获取报文中断点的切片标识,并向中心控制系统CCS请求数据源;
根据所述CCS返回的数据源地址,建立与第二ES之间的数据通道,所述第二ES为所述第一ES的上级ES;
转发所述第二ES发送的所述切片标识的后续切片流至客户端。
本发明实施例还提供了一种流媒体业务的处理装置,包括:
第三获取单元,用于当拓扑结构中的第一ES出现故障时,获取报文中断点的切片标识,并向中心控制系统CCS请求数据源;
建立单元,用于根据所述CCS返回的数据源地址,建立与第二ES之间的数据通道,所述第二ES为所述第一ES的上级ES;
转发单元,用于转发所述第二ES发送的所述切片标识的后续切片流至客户端。
本发明实施例还提供了一种流媒体业务的处理系统,包括:
业务处理装置,用于当拓扑结构中的第一ES出现故障时,获取报文中断点的切片标识,并向中心控制系统CCS请求数据源;根据所述CCS返回的数据源地址,建立与第二ES之间的数据通道,所述第二ES为所述第一ES的上级ES;并转发所述第二ES发送的所述切片标识的后续切片流至客户端;
第二ES,用于根据所述业务处理装置的请求,发送所述切片标识的后续切片流至所述业务处理装置。
本发明实施例具有以下优点:
根据本发明实施例,在直播业务中,当主用CS出现故障时,可以确定出现故障时发送的切片标识,然后根据切片标识,通过备用CS与客户端之间的数据通道,备用CS来发送切片流至客户端,本发明实施例以切片流的形式发送数据,使得流媒体直播数据可以在主用CS出现故障时不会丢失数据,用户也可以继续从备用CS或者ES获取直播数据流,使得在线用户观看时不会出现停顿、马赛克等现象,提高了用户的观看体验。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明方法实施例中,参考图3所示,实现本发明实施例需要的方法主要包括以下步骤:
步骤301:备用CS根据主用中心服务器CS发送的报文同步点和切片标识,维护所述报文同步点和切片标识的对应关系;
步骤302:当主用CS出现故障时,备用CS获取报文中断点的切片标识;
步骤303:备用CS依据所述切片标识,从对应的报文同步点开始对数据报文进行切片;
步骤304:备用CS通过边缘服务器ES向客户端传输所述切片标识的后续切片流。
在本实施例中,当所述主用CS正常工作时,主用CS和备用CS都在接收编码器发送的直播数据流,但是为了保证主用CS和备用CS切片标识的一致性,只有主用CS对数据报文进行切片,由于主备CS双方同时接收数据流,因此主备CS需要通过传输报文同步点的方式确保备用CS开始切片时切片的连续性和一致性;需要说明的是,所述报文同步点可以以报文中的时间戳、报文序号、报文标识为选择依据,主用CS在确定报文同步点后,可以依据等长算法对数据报文进行切片,主用CS的数据报文切片完成后,将报文的同步点及切片标识发送到备用CS,备用CS仅仅执行报文缓冲操作,并可以维护最新的报文同步点和切片标识的对应关系,当主用CS出现故障时,备用CS可以根据自身维护的对应关系获取报文中断点的切片标识;并根据所述切片标识,对后续的数据报文开始进行切片,然后通过边缘服务器ES将所述切片标识的后续切片流发送至客户端。
可以看出,即便进行切片的主用CS出现故障,备用CS由于和主用CS具有数据同步的功能,可以根据主用CS发送的报文同步点和切片标识对数据报文迅速进行切片处理,并与主用CS的切片保持一致,因此,对于客户端来讲,不会使客户端出现数据重复或者丢失的现象,提升了用户的使用体验。
需要说明的是,在本发明各个实施例中,边缘节点中的ES可以采用拓扑结构的连接方式,可以参考图4所示,存在边缘节点A202和边缘节点B203两个边缘节点,每个边缘节点各包含4个边缘服务器ES1、ES2、ES3、ES4,中心服务器CS201上存在两个直播频道Channel_1和Channel_2。经过CCS的拓扑调度,在边缘节点1中,直播频道Channel_1的ES拓扑为CS-ES1-ES3-ES2-ES4,直播频道Channel_2的ES拓扑为CS-ES2-ES4-ES1-ES3;在边缘节点2,直播频道Channel_1的ES拓扑为CS-ES3-ES2-ES1-ES4,直播频道Channel_2的ES拓扑为CS-ES4-ES2-E31-ES1;对于直播频道Channel_1,CS与边缘节点1仅存在一份直播流,CS与边缘节点2之间也仅存在一份直播流。对于直播频道Channel_2,CS与边缘节点1仅存在一份直播流,CS与边缘节点2之间也仅存在一份直播流,各边缘节点内的ES1、ES2、ES3、ES4构成了链状的服务拓扑。在边缘节点内部,对于直播频道Channel_1,ES3是ES1的客户端,ES2是ES3的客户端,对于直播频道Channel_2,ES3是ES3是ES1的客户端,而ES2是ES1服务器的服务器,各ES之间并无严格的客户端和服务器之分,边缘节点内的ES构成了点对点(Peer to Peer,P2P)式的服务模型。
参考图5的流程图,以及图6的信令流程图,在本发明方法实施例中,实现本发明实施例二所提供的方法可以包括以下步骤:
步骤501:执行主用CS频道和备用CS频道的启动流程;
其中,中心服务器频道的启动流程可以参考图7所示,所述步骤501具体可以包括以下子步骤:
子步骤A1:主用CS和备用CS通过与编码器建立的数据通道,接收编码器发送的直播数据流;
子步骤A2:主用CS和备用CS对所述直播数据流进行缓冲,并将数据报文保存在内部缓冲区中;
主用CS接收到直播数据流时进行报文缓冲,将报文保存在内部的缓冲区中;
子步骤A3:主用CS确定报文同步点,并依据等长切片算法对所述数据报文进行切片;
需要说明的是,每个频道维护一个切片计数器,每个切片被分配一个独立的切片ID,切片ID按照步进速度等于1的方式顺序递增;
子步骤A4:主用CS将所述报文同步点和切片标识发送至备用CS;
切片完成后,主用CS将切片放入切片缓冲区;缓冲区中暂存的数据通常与缓冲的时间相关,而频道码率的大小,决定缓冲区最大容纳的切片数量N;当缓冲区中的切片数量大于N时,时间最长的切片将会被替换;
主用CS的数据报文切片完成后,将报文的同步点及切片标识发送到备用CS,备用CS更新最新的报文同步点和切片标识的对应关系,可以在后续步骤中,使得备用CS根据报文同步点和切片标识,可以迅速、准确地开始切片,并与主用CS的切片保持一致;在本实施例中,备用CS可以维护多个报文与切片头的对应关系;
步骤502:执行边缘服务器ES频道的启动流程;
其中,边缘服务器频道启动流程可以参考图8所示,步骤302具体可以包括以下子步骤:
子步骤B1:建立ES与CS之间的数据通道;
操作员通过界面选择需要启动的频道,确定后提交CCS,消息中包含直播频道对应的Channel ID;CCS通知ES频道启动,启动消息中携带Channel ID;ES接收到CCS的频道启动消息后,向CCS请求数据源的地址和端口;CCS检查该频道对应的ES拓扑关系表,当该频道没有ES连接到CS时,则由CS作为数据源;需要说明的是,ES的拓扑关系是按照链的方式进行管理的;当该频道已经由ES连接到CS,则将拓扑关系表中最后一个ES作为请求者的数据源;确定后数据源后,CCS将数据源的数据地址和端口返回给请求ES,在本实施例中,所述请求ES为中心服务器CS;
子步骤B2:CS通过快速缓冲机制将缓冲区的切片流发送至所述ES;
CS通过快速缓冲机制将缓冲区的数据发送到ES,当缓冲区的切片全部发送完成后,转变为正常速率将切片发送到ES;
CS频道和ES频道都启动之后,用户通过选定频道并确定播放,可以在网上观看直播频道的节目;
步骤503:根据主用中心服务器CS发送的报文同步点和切片标识,备用CS维护所述报文同步点和切片标识的对应关系;
当服务器正常的情况下,主用CS和备用CS都从Encoder接收数据流,主用CS完成报文切片,而备用CS仅进行报文缓冲处理;主用CS切片时需要将报文同步点及切片标识同步到备用CS,备用CS可以及时更新报文同步点和切片标识的对应关系;
需要说明的是,在本实施例中,直播切片流从主用CS发送到ES1,再由ES 1发送到ESn,由ESn为Client提供数据服务;本例中拓扑关系为(CS-ES1-ESn-Client),ES1此时也可能为其他Client提供服务;主用CS出现故障时,导致ES1与主用CS之间的数据通道中断,ES1检测到主用CS故障时,记录中断前各频道接收到的最新切片标识(ID),需要说明的是,这里ES1只需要记录与故障CS相关的频道;
在确定切片标识时,可以沿时间轴反向确定所述数据报文的切片标识,例如:取确定报文标识的前2~3个报文,这几个报文先到达备用CS的缓冲区;
步骤504:当主用CS出现故障时,备用CS获取报文中断点的切片标识;在本实施例中,主用CS和备用CS切换机制可以取决于第三方的双机软件,例如VCS软件;在本步骤中,双机软件可以迅速切换到备用CS,备用CS上升为主用CS;
步骤505:备用CS根据所述切片标识对应的报文同步点,查找到主用CS已经发送的数据报文;
步骤506:对所述数据报文沿时间轴反向进行切片处理;
在本实施例中,为了防止主用CS和备用CS切片可能出现数据不一致的现象,可以沿,例如,可以取第7步确定报文的前2~3个报文,这几个报文先到达备用CS的缓冲区;步骤507:建立边缘服务器ES到备用CS的数据通道;
步骤508:请求所述备用CS从所述切片标识开始发送后续的切片流;
步骤509:边缘服务器ES将接收到的所述后续切片流发送至客户端。
需要说明的是,参考图6所示,可以看出,备用CS根据ES请求的起始切片发送切片流至ES,而在本实施例中,根据ES拓扑关系可以得知,切片留首先到ES1,ES1将切片流发送到ESn,再由ESn将切片流发送到Client;由于备用CS开始切片的数据报文出现重复,不可避免地造成切片重复,当ES1接收到的切片重复时,需要更新本地缓冲区的切片;并且,由于主用CS故障,引发ESn的切片流中断,不是其上级数据源ES1故障,即使ESn在检测到数据超时的时候,也不需要关闭数据通道,而是继续等待数据的到来;由于ESn缓冲区中缓冲了较长时间的切片,在缓冲区数据耗尽的情况下仍能继续为Client提供数据;因而Client能够继续缓冲数据并播放;客户端继续完成播放处理,由于ES1检测到主用CS故障,备用CS启动切片,以及,ES1请求备用CS发送切片的过程非常短暂,并且远小于ESn的缓冲区的切片的持续播放时间,因此能够在客户端缓冲区耗尽前重新接收到切片流,从而可以继续播放而不影响用户的观看体验。
本实施例还可以进一步包括:
客户端将所述切片流按照先进先出的方式恢复为原始数据报文,并解码播放。
Client频道请求处理流程可以参考图9所示。
可以看出,在实施例中,通过主用CS和备用CS的机制可以实现直播热备,主用CS对直播数据报文进行切片处理,并将切片标识和报文标识同步到备用CS,备用CS更新报文标识及切片标识的对应关系。当主用CS和备用CS切换时,备用CS根据报文标识找到对应的报文然后根据切片标识开始切片;其中,主用CS和备用CS的切换机制可依赖于第三方软件实现;主用CS故障恢复后转变为备用CS,原备用CS上升为主用CS;新主用CS开始切片时将报文标识和切片标识同步到新备用CS;主用CS完成报文的切片工作,而备用CS在成为主用CS前不进行切片工作,仅维护主用CS同步过来的切片标识和报文标识;主用CS的切片机制可以采用等长切片法,或者基于多个图像帧的方式,切片标识中可以包含版本号、切片长度、序列号、第一个帧的起始位置等参数信息;主用CS故障恢复后转变为备用CS,原备用CS上升为主用CS;其中,备用CS采用沿时间轴后退N个报文然后开始切片的方式避免主备CS切换后可能发生的切片不一致问题,其中,N的具体数字可以依据网络情况自主设定,并不影响本发明实施例的实现。
与上述本发明所提供的方法实施例相对应,参见图10,本发明实施例还提供了一种流媒体业务的处理装置,该装置可以包括:
维护单元1001,用于根据主用中心服务器CS发送的报文同步点和切片标识,维护所述报文同步点和切片标识的对应关系;
第一获取单元1002,用于当主用CS出现故障时,获取报文中断点的切片标识;
切片单元1003,用于依据所述切片标识,从对应的报文同步点开始对数据报文进行切片;
传输单元1004,用于通过边缘服务器ES向客户端传输所述切片标识的后续切片流。
参考图11所示,在本发明的一种流媒体业务的处理装置实施例中,该装置具体可以包括:
维护单元1101,用于根据主用中心服务器CS发送的报文同步点和切片标识,维护所述报文同步点和切片标识的对应关系;
第一获取单元1102,用于当主用CS出现故障时,获取报文中断点的切片标识;
切片单元1103,用于依据所述切片标识,从对应的报文同步点开始对数据报文进行切片;
所述切片单元1103可以包括:
查找子单元11031,用于根据所述切片标识对应的报文同步点,查找到主用CS已经发送的数据报文;
反向切片子单元11032,用于对所述数据报文沿时间轴反向进行切片处理;
传输单元1104,用于通过边缘服务器ES向客户端传输所述切片标识的后续切片流;
所述传输单元1104具体可以包括:
第一建立子单元11041,用于建立到备用CS的数据通道;
第一请求子单元11042,用于请求所述备用CS从所述切片标识开始发送后续的切片流;
第一发送子单元11043,用于将接收到的所述后续切片流发送至客户端。
与上述本发明所提供的方法实施例相对应,参见图12,本发明实施例还提供了一种流媒体业务的处理系统,该系统具体可以包括:
业务处理装置1201,所述业务处理装置用于根据主用中心服务器CS发送的报文同步点和切片标识,维护所述报文同步点和切片标识的对应关系,当主用CS出现故障时,获取报文中断点的切片标识;依据所述切片标识,从对应的报文同步点开始对数据报文进行切片;并通过边缘服务器ES向客户端传输所述切片标识的后续切片流;
主用CS1202,用于确定直播数据流的报文同步点,并依据所述报文同步点开始切片,将所述报文同步点和切片标识发送至所述业务处理装置。
参考图13所示,在本发明的一种流媒体业务的处理系统实施例中,该系统可以包括:
业务处理装置1301,所述业务处理装置用于根据主用中心服务器CS发送的报文同步点和切片标识,维护所述报文同步点和切片标识的对应关系,当主用CS出现故障时,获取报文中断点的切片标识;依据所述切片标识,从对应的报文同步点开始对数据报文进行切片;并通过边缘服务器ES向客户端传输所述切片标识的后续切片流;
所述业务处理装置1301具体可以包括:
维护单元13011,用于根据主用中心服务器CS发送的报文同步点和切片标识,维护所述报文同步点和切片标识的对应关系;
第一获取单元13012,用于当主用CS出现故障时,获取报文中断点的切片标识;
切片单元13013,用于依据所述切片标识,从对应的报文同步点开始对数据报文进行切片;
传输单元13014,用于通过边缘服务器ES向客户端传输所述切片标识的后续切片流;
主用CS1302,用于确定直播数据流的报文同步点,并依据所述报文同步点开始切片,将所述报文同步点和切片标识发送至所述业务处理装置;
所述系统还可以包括:
执行单元1303,用于执行所述主用CS频道和备用CS频道的启动流程。
所述执行单元具体可以包括:
第一接收子单元13031,用于通过建立的数据通道,接收编码器发送的直播数据流;
缓冲处理子单元13032,用于对所述直播数据流进行缓冲,以将数据报文保存在内部缓冲区中;
报文切片子单元13033,用于确定报文同步点,并依据等长切片算法对数据报文进行切片;
同步子单元13034,用于将报文同步点和切片标识同步到所述备用CS。
第二接收子单元13035,用于通过建立的数据通道,接收编码器发送的直播数据流;
缓冲处理子单元13036,用于对所述直播数据流进行缓冲,将数据报文保存在内部缓冲区中;
第三接收子单元13037,用于接收主用CS发送的报文同步点和切片标识。
本实施例还可以包括:
第一播放单元1304,用于将所述切片流按照先进先出的方式,将所述切片流恢复为数据报文,并进行解码播放。
在本发明的方法实施例中,流媒体中的数据报文以切片流的形式进行传输,正常情况下,客户端Client建立到主用ES的数据通道,数据流从主用ES发送到Client;当主用边缘服务器ES出现故障时,在CCS的调度下,边缘节点内的ES组成P2P网络,针对某个频道,CS和边缘节点所有ES组成1拖1的数据服务链;ES启动或者频道启动时,ES请求CCS分配数据源,上级数据源可以是CS或者是ES;上级ES/CS检测到下级ES的数据通道建立后通过快速缓冲机制(原速率的N倍)将缓冲区中的数据同步到下级ES;快速缓冲完成后,边缘节点所有ES缓冲区的内容与CS保持一致;在本实施例中,ES仅维护切片,没有原始的直播数据报文;当用户向CCS请求直播服务时,CCS根据负载均衡原则选择多个ES,并多个ES的地址和端口返回给客户端,第一个ES为主用ES,其他的ES为备用ES。
参考图14所示的流程图和图15所示的信令流程图,实现本发明方法实施例的方法具体可以包括以下步骤:
步骤1401:当主用边缘服务器ES出现故障时,客户端获取报文中断点的切片标识;
当主用ES故障时,由于Client内部缓冲区的数据尚能提供数据,因此Client能够暂时保持播放不中断;Client确定主用ES故障前最后接收到的切片标识;
步骤1402:客户端向备用ES发送请求,所述请求用于根据所述切片标识获取后续切片流;
步骤1403:客户端接收备用ES发送的后续切片流。
在本实施例中,当主用ES故障时,客户端能够建立到备用ES的数据通道,并由备用ES提供连续的数据流;客户端接收到ES发送的数据流时,根据切片标识恢复原始直播数据报文,缓冲后解码播放;当主用ES故障时,客户端建立的备用ES的数据通道,并请求备用ES根据中断前的数据切片标识提供数据流;客户端维护主备用ES的状态,当主用ES故障时,客户端将主用ES切换为备用状态;由于Client检测到主用ES故障、Client请求备用ES发送切片的过程非常短暂,而且远小于Client的缓冲区的切片的持续播放时间,因此能够在客户端缓冲区耗尽前重新接收到切片流,从而可以继续播放而不影响客户端的观看体验。
所述步骤1402具体可以包括:
子步骤C1:根据中心控制系统CCS提供的备用ES列表,建立客户端到备用ES的数据通道;
Client根据CCS提供的备用ES列表,建立到备用ES的数据通道,也可以与多个备用ES建立数据通道;
子步骤C2:客户端通过所述数据通道向所述备用ES发送请求。
客户端向备用ES发送请求,请求依据所述切片标识发送切片流;
Client与备用ES的数据通道建立成功后,请求备用ES从主用ES故障时的切片标识所示的切片序号发送切片流;
本实施例还可以包括:
Client接收到切片流时根据切片标识进行重复性检查,若切片重复时,则更新缓冲区中的切片;若发现切片丢失,则向备用ES请求缺失的切片;并将缓冲区的切片按照先进先出的方式恢复为原始数据报文,并解码播放。
与本发明实施例提供的方法实施例相对应,本发明还提供了一种流媒体业务的处理装置,参考图16所示,该装置可以包括:
第二获取单元1601,用于当主用边缘服务器ES出现故障时,获取报文中断点的切片标识;
发送请求单元1602,用于向备用ES发送请求,所述请求用于根据所述切片标识获取后续切片流;
接收单元1603,用于接收备用ES发送的后续切片流。
参考图17所示,在本发明的一种流媒体业务的处理装置实施例中,该装置具体可以包括:
第二获取单元1701,用于当主用边缘服务器ES出现故障时,获取报文中断点的切片标识;
发送请求单元1702,用于向备用ES发送请求,所述请求用于根据所述切片标识获取后续切片流;
所述发送请求单元1702,具体可以包括:
第二建立子单元17021,用于根据中心控制系统CCS提供的备用ES列表,建立客户端到备用ES的数据通道;
第二发送子单元17022,用于通过所述数据通道向所述备用ES发送请求;
接收单元1703,用于接收备用ES发送的后续切片流;
所述装置还可以包括:
检查单元1704,用于对接收到的切片流根据切片标识进行重复性检查,若切片重复,更新缓冲区中的切片,若发现切片丢失,则向备用ES请求缺失的切片。
与本发明实施例提供的方法实施例相对应,本发明还提供了一种流媒体业务的处理系统,参考图18所示,该系统可以包括:
业务处理装置1801,用于当主用边缘服务器ES出现故障时,获取报文中断点的切片标识;向备用ES发送请求,所述请求用于根据所述切片标识获取后续切片流;并接收备用ES发送的后续切片流;
备用ES1802,用于根据所述业务处理装置发送的请求,根据所述切片标识向所述业务处理装置发送后续切片流。
参考图19所示,在本发明的一种流媒体业务的处理系统实施例中,该实施例具体可以包括:
业务处理装置1901,用于当主用边缘服务器ES出现故障时,获取报文中断点的切片标识;向备用ES发送请求,所述请求用于根据所述切片标识获取后续切片流;并接收备用ES发送的后续切片流;
所述业务处理装置1901具体可以包括:
第二获取单元19011,用于当主用边缘服务器ES出现故障时,获取报文中断点的切片标识;
发送请求单元19012,用于向备用ES发送请求,所述请求用于根据所述切片标识获取后续切片流;
接收单元19013,用于接收备用ES发送的后续切片流。
在本实施例中,正常情况下,Client建立到主用ES的数据通道,数据流从主用ES发送到Client;在CCS的调度下,边缘节点内的ES组成P2P网络,针对某个频道,CS和边缘节点所有ES组成1拖1的数据服务链;ES启动或者频道启动时,ES请求CCS分配数据源,上级数据源可以是CS或者是ES;上级ES/CS检测到下级ES的数据通道建立后通过快速缓冲机制(原速率的N倍)将缓冲区中的数据同步到下级ES;快速缓冲完成后,边缘节点所有ES缓冲区的内容与CS保持一致;在本实施例中,ES仅维护切片,没有原始的直播数据报文;当用户向CCS请求直播服务时,CCS根据负载均衡原则选择多个ES,并多个ES的地址和端口返回给客户端,第一个ES为主用ES,其他的ES为备用ES。
备用ES1902,用于根据所述业务处理装置发送的请求,根据所述切片标识向所述业务处理装置发送后续切片流。
本实施例还可以包括:
第二播放单元1903,用于将缓冲区的切片按照先进先出的方式恢复为原始数据报文,并解码播放。
在本实施例中,当主用ES故障时,客户端将主用ES切换为备用状态;由于Client检测到主用ES故障、Client请求备用ES发送切片的过程非常短暂,而且远小于Client的缓冲区的切片的持续播放时间,因此能够在客户端缓冲区耗尽前重新接收到切片流,从而可以继续播放而不影响客户端的观看体验。
在本发明的方法实施例中,假如CCS维护的ES拓扑为CS-ES1-ES2-ESn-Client,切片流从CS发送到ES1、ES1发送到ES2、ES2发送到ESn,最终由ESn将切片流发送到Client,当拓扑链中的中间节点如ES2发生故障,将导致ES1与ES2、ES2与ESn之间数据通道的中断;则在本实施例中,所述ES2为第一ES,所述第二ES为ES1,所述第三ES为ESn,则参考图20所示的流程图和图21所示的信令流程图,当所述第一ES产生故障时,实现本实施例的方案包括以下步骤:
步骤2001:当拓扑结构中的第一ES出现故障时,获取报文中断点的切片标识,并向中心控制系统CCS请求数据源;
步骤2002:根据所述CCS返回的数据源地址,建立与第二ES之间的数据通道,所述第二ES为所述第一ES的上级ES;
步骤2003:转发所述第二ES发送的所述切片标识的后续切片流至客户端。
所述步骤2003具体可以包括:
子步骤D1:请求所述第二ES从所述切片标识开始发送后续切片流;
子步骤D2:接收所述第二ES通过快速缓冲机制返回的所述后续切片流;
子步骤D3:将所述后续切片流发送至客户端。
在本实施例中,可以参考图16所示的信令流程图,当ESn检测到ES2故障后,记录ES2故障时发送的最新切片序号;同时,ES2故障不影响ESn与Client之间的数据通道,而且ESn能够将缓冲区的数据持续不断地发送到Client,因此Client能够保持数据不中断而继续播放;
同时,由于ES2与ESn的数据通道中断,ESn向CCS请求数据源;CCS查询ES拓扑关系表为ES2选择数据源服务器,根据拓扑关系表,CCS选择ES1作为ESn;CCS将ES1的数据地址和端口返回给ESn;依据所述数据地址和端口建立ES1和ESn之间的数据通道;所述ESn请求所述ES1从所述切片标识开始发送切片流;然后所述ES1根据所述请求通过快速缓冲机制将后续的切片流发送至ESn;ES1根据ESn请求的起始切片序号通过快速缓冲机制将切片流发送到ESn;所述ESn将所述后续的切片流发送至客户端。
可以看出,在本实施例中,ESn将切片流发送到Client,客户端可以继续完成播放处理,由于ESn检测到ES2故障、ESn请求数据源发送切片的过程非常短暂而且远小于ESn的缓冲区的切片的持续播放时间,因此能够在客户端缓冲区耗尽前重新接收到切片流,从而可以继续播放而不影响客户端的播放体验。
本实施例还可以包括以下步骤:
ES2在故障排除后重新启动,并根据频道记录启动频道;ES2频道启动过程中向CCS请求上级数据源;CCS查询ES拓扑关系表为ES2选择数据源服务器,根据拓扑关系表,CCS选择ESn作为数据源;CCS将ESn的数据地址和端口返回给ES2;ES2建立到ESn的数据通道;ESn将缓冲区中的切片通过快速缓冲机制将切片流发送到ES2;ES2进行切片缓冲。
本发明实施例通过发送后续的切片流给客户端,从而可以有效解决服务器故障导致业务流中断的情况,避免了大范围的用户业务中断,直播业务无法使用等问题,进一步的,还可以有效地减少了中心节点到边缘节点的带宽需求;在本发明实施例中,主用CS故障时,备用CS发送到ES的数据无重复或者丢失,在线用户观看直播视频时无停顿或者马赛克现象;对于直播频道,主备CS仅需要发送一份数据流到边缘节点,节省网络带宽;通过主备ES机制实现ES故障时在线用户的业务不中断。
与本发明实施例提供的方法实施例相对应,本发明还提供了一种流媒体业务的处理装置,参考图22所示,所述装置具体可以包括:
第三获取单元2201,用于当拓扑结构中的第一ES出现故障时,获取报文中断点的切片标识,并向中心控制系统CCS请求数据源;
建立单元2202,用于根据所述CCS返回的数据源地址,建立与第二ES之间的数据通道,所述第二ES为所述第一ES的上级ES;
转发单元2203,用于转发所述第二ES发送的所述切片标识的后续切片流至客户端。
参考图23所示,在本发明的一种流媒体业务的处理装置实施例中,该装置具体可以包括:
第三获取单元2301,用于当拓扑结构中的第一ES出现故障时,获取报文中断点的切片标识,并向中心控制系统CCS请求数据源;
建立单元2302,用于根据所述CCS返回的数据源地址,建立与第二ES之间的数据通道,所述第二ES为所述第一ES的上级ES;
转发单元2303,用于转发所述第二ES发送的所述切片标识的后续切片流至客户端。
所述转发单元2303具体可以包括:
第二请求子单元23031,用于请求所述第二ES从所述切片标识开始发送后续切片流;
第四接收子单元23032,用于接收所述第二ES通过快速缓冲机制返回的所述后续切片流;
第三发送子单元23033,用于将所述后续切片流发送至客户端。
与本发明实施例提供的方法实施例相对应,本发明还提供了一种流媒体业务的处理系统,参考图24所示,所述系统具体可以包括:
业务处理装置2401,用于当拓扑结构中的第一ES出现故障时,获取报文中断点的切片标识,并向中心控制系统CCS请求数据源;根据所述CCS返回的数据源地址,建立与第二ES之间的数据通道,所述第二ES为所述第一ES的上级ES;并转发所述第二ES发送的所述切片标识的后续切片流至客户端;
第二ES2402,用于根据所述业务处理装置的请求,发送所述切片标识的后续切片流至所述业务处理装置。
所述业务处理装置2401具体可以包括:
第三获取单元,用于当拓扑结构中的第一ES出现故障时,获取报文中断点的切片标识,并向中心控制系统CCS请求数据源;
建立单元,用于根据所述CCS返回的数据源地址,建立与第二ES之间的数据通道,所述第二ES为所述第一ES的上级ES;
转发单元,用于转发所述第二ES发送的所述切片标识的后续切片流至客户端。
通过以上实施例的描述,本领域的技术人员可以清楚地了解到需要说明的是,本发明实施例不需要引入独立的功能部件,可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以执行本发明各个实施例所述的方法。这里所称的存储介质,如:ROM/RAM、磁盘、光盘等。
本发明实施例通过发送后续的切片流给客户端,从而可以有效解决服务器故障导致业务流中断的情况,避免了大范围的用户业务中断,直播业务无法使用等问题。需要说明的是,因为前述的方法和装置实施例介绍的十分详尽,所以所述系统实施例未详尽之处,可以参见前述对方法和装置实施例的描述,在此不再对系统作详细描述。
以上对本发明实施例所提供的一种流媒体服务器故障时使业务不间断的方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明实施例的方法及其思想;同时,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。