著录项信息
专利名称 | 一种数据直播系统和方法 |
申请号 | CN201410504982.8 | 申请日期 | 2014-09-26 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-01-21 | 公开/公告号 | CN104301741A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N21/21 | IPC分类号 | H;0;4;N;2;1;/;2;1;;;H;0;4;N;2;1;/;2;3;1;;;H;0;4;N;2;1;/;2;4查看分类表>
|
申请人 | 北京奇艺世纪科技有限公司 | 申请人地址 | 北京市海淀区北一街2号鸿城拓展大厦10、11层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京奇艺世纪科技有限公司 | 当前权利人 | 北京奇艺世纪科技有限公司 |
发明人 | 庹虎;何广;杨建光 |
代理机构 | 北京润泽恒知识产权代理有限公司 | 代理人 | 苏培华 |
摘要
本发明提供了一种数据直播系统和方法,以解决现有直播系统易造成网络拥挤甚至瘫痪的问题。所述的系统包括:直播数据源服务器和缓存服务器;其中,以所述直播数据源服务器为根节点,以所述缓存服务器为子节点构成树型拓扑结构。该系统采用直播数据源服务器存储直播的源数据,直播数据源服务器仅向所述第一级缓存服务器分发请求直播的源数据,从而不会由于并发接入过多节点而造成直播数据源服务器的拥堵和瘫痪,在该树型拓扑结构下,缓存服务器在接收到数据直播请求后,可以通过分级依次向上一级缓存服务器请求数据源,从而避免了各级缓存服务器由于接入过多节点而造成拥堵和瘫痪的问题,快速的提供请求直播的源数据,提高源数据的直播质量。
1.一种数据直播系统,其特征在于,包括:直播数据源服务器和缓存服务器;
其中,以所述直播数据源服务器为根节点,以所述缓存服务器为子节点构成树型拓扑结构;
所述缓存服务器包括:与所述直播数据源服务器直接连接的至少两个第一级缓存服务器,每个第一级缓存服务器各自连接的至少两个第二级缓存服务器,以此类推,每个第N-1级缓存服务器各自连接的至少两个第N级缓存服务器,其中N≥2且N为正整数;
则所述直播数据源服务器,用于存储直播的源数据,并向所述第一级缓存服务器发送请求直播的源数据;所述存储直播的源数据包括:可配置存储时长内的所有直播的源数据;
所述缓存服务器,用于依据终端发送的数据直播请求确定请求直播的源数据;当检测本地存在所述请求直播的源数据时,实时从本地获取所述请求直播的源数据;当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第一级缓存服务器时,实时从所述直播数据源服务器中所述请求直播的源数据;当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,实时从与其直接连接的上一级缓存服务器中获取所述请求直播的源数据;以及将所述请求直播的源数据实时反馈给所述终端以直播所述请求直播的源数据;
所述缓存服务器,还用于查询其他同级缓存服务器中是否存在所述请求直播的源数据,其中,所述其他同级缓存服务器与所述缓存服务器具有相同的上一级缓存服务器;当其他同级缓存服务器中存在所述请求直播的源数据时,从所述其他同级缓存服务器中实时获取所述请求直播的源数据;当其他同级缓存服务器中不存在所述请求直播的源数据时,触发从与其直接连接的上一级缓存服务器或直播数据源服务器中实时获取所述请求直播的源数据。
2.根据权利要求1所述的系统,其特征在于:
所述直播数据源服务器与所述各第一级缓存服务器通过广域网或以太网直接连接;各第一级缓存服务器之间通过以太网互相连接;具有相同的上一级缓存服务器同级缓存服务器通过以太网互相连接;缓存服务器与其上一级缓存服务器通过广域网连接。
3.根据权利要求1所述的系统,其特征在于:
所述缓存服务器,还用于接收所述终端发送的直播停止请求,并依据所述直播停止请求停止获取所述请求直播的源数据。
4.根据权利要求1所述的系统,其特征在于,
所述缓存服务器,还用于从所述数据直播请求中确定所述请求直播的源数据的创建时刻;确定所述创建时刻与当前时刻的时间间隔;当所述时间间隔大于预置间隔,且所述缓存服务器为第一级缓存服务器时,从所述直播数据源服务器中所述请求直播的源数据;当所述时间间隔大于预置间隔,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,通过与其连接的各级缓存服务器逐级发送请求以从直播数据源服务器中所述请求直播的源数据;当所述时间间隔不大于预置间隔时,触发检测本地是否存在所述请求直播的源数据。
5.一种数据直播方法,其特征在于,应用于以直播数据源服务器为根节点,以缓存服务器为子节点构成的具有树形拓扑结构的直播系统中,所述缓存服务器包括:与所述直播数据源直接连接的至少两个第一级缓存服务器,每个第一级缓存服务器各自连接的至少两个第二级缓存服务器,以此类推,每个第N-1级缓存服务器各自连接的至少两个第N级缓存服务器,其中N≥2且N为正整数;
所述的方法包括:
缓存服务器接收终端发送的数据直播请求,并依据所述数据直播请求确定请求直播的源数据;
所述缓存服务器检测本地是否存在所述请求直播的源数据;
当检测本地存在所述请求直播的源数据时,所述缓存服务器实时从本地获取所述请求直播的源数据;
当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第一级缓存服务器时,所述第一级缓存服务器实时从所述直播数据源服务器中所述请求直播的源数据;所述直播数据源服务器用于存储可配置存储时长内的所有直播的源数据;
当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,所述缓存服务器实时从与其直接连接的上一级缓存服务器中获取所述请求直播的源数据;
所述缓存服务器将所述请求直播的源数据实时反馈给所述终端,以使终端直播所述请求直播的源数据;
检测本地不存在所述请求直播的源数据之后,还包括:
所述缓存服务器查询其他同级缓存服务器中是否存在所述请求直播的源数据,其中,所述其他同级缓存服务器与所述缓存服务器具有相同的上一级缓存服务器;
当其他同级缓存服务器中存在所述请求直播的源数据时,所述缓存服务器从所述其他同级缓存服务器中实时获取所述请求直播的源数据;
当其他同级缓存服务器中不存在所述请求直播的源数据时,所述缓存服务器执行从与其直接连接的上一级缓存服务器或直播数据源服务器中实时获取所述请求直播的源数据的步骤。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述缓存服务器接收所述终端发送的直播停止请求,并依据所述直播停止请求停止获取所述请求直播的源数据。
7.根据权利要求5所述的方法,其特征在于,所述缓存服务器检测本地是否存在所述请求直播的源数据之前,还包括:
所述缓存服务器从所述数据直播请求中确定所述请求直播的源数据的创建时刻;
确定所述创建时刻与当前时刻的时间间隔;
将所述时间间隔与预置间隔进行比较,并依据比较结果确定获取请求直播的源数据的步骤。
8.根据权利要求7所述的方法,其特征在于,将所述时间间隔与预置间隔进行比较,并依据比较结果确定获取请求直播的源数据的步骤,包括:
当所述时间间隔大于预置间隔,且所述缓存服务器为第一级缓存服务器时,所述第一级缓存服务器从所述直播数据源服务器中所述请求直播的源数据;
当所述时间间隔大于预置间隔,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,所述缓存服务器通过与其连接的各级缓存服务器逐级发送请求以从直播数据源服务器中所述请求直播的源数据;
当所述时间间隔不大于预置间隔时,所述缓存服务器执行检测本地是否存在所述请求直播的源数据的步骤。
一种数据直播系统和方法\n技术领域\n[0001] 本发明涉及数据直播技术领域,特别是涉及一种数据直播系统和一种数据直播方法。\n背景技术\n[0002] 用户可以通过播放器、网页等通过网络观看直播内容,如视频、图文直播等。现有的数据直播系统通常采用简单的复制和主动推送模式,即将同一路直播流的数据推送到整个数据直播系统的每一个互联网数据中心(Internet Data Center,IDC)节点和其连接的每一台物理机(用户终端)。\n[0003] 因此,当在直播即分发具有很多并发用户请求的大型直播节目,或者在分发很多路不同地并发的直播数据内容时,都会造成整个数据直播网络拥挤不堪,甚至造成直播的源数据由于被太多的网络节点连接而瘫痪。\n发明内容\n[0004] 本发明实施例所要解决的技术问题是提供一种数据直播系统和方法,以解决现有直播系统易造成网络拥挤甚至瘫痪的问题。\n[0005] 为了解决上述问题,本发明公开了一种数据直播系统,包括:直播数据源服务器和缓存服务器;其中,以所述直播数据源服务器为根节点,以所述缓存服务器为子节点构成树型拓扑结构;所述缓存服务器包括:与所述直播数据源服务器直接连接的至少两个第一级缓存服务器,每个第一级缓存服务器各自连接的至少两个第二级缓存服务器,以此类推,每个第N-1级缓存服务器各自连接的至少两个第N级缓存服务器,其中N≥2且N为正整数;则所述直播数据源服务器,用于存储直播的源数据,并向所述第一级缓存服务器发送请求直播的源数据;所述缓存服务器,用于依据终端发送的数据直播请求确定请求直播的源数据;当检测本地存在所述请求直播的源数据时,实时从本地获取所述请求直播的源数据;当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第一级缓存服务器时,实时从所述直播数据源服务器中所述请求直播的源数据;当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,实时从与其直接连接的上一级缓存服务器中获取所述请求直播的源数据;以及将所述请求直播的源数据实时反馈给所述终端以直播所述请求直播的源数据。\n[0006] 可选的,所述直播数据源服务器与所述各第一级缓存服务器通过广域网或以太网直接连接;各第一级缓存服务器之间通过以太网互相连接;具有相同的上一级缓存服务器同级缓存服务器通过以太网互相连接;缓存服务器与其上一级缓存服务器通过广域网连接。\n[0007] 可选的,所述缓存服务器,还用于查询其他同级缓存服务器中是否存在所述请求直播的源数据,其中,所述其他同级缓存服务器与所述缓存服务器具有相同的上一级缓存服务器;当其他同级缓存服务器中存在所述请求直播的源数据时,从所述其他同级缓存服务器中实时获取所述请求直播的源数据;当其他同级缓存服务器中不存在所述请求直播的源数据时,触发从与其直接连接的上一级缓存服务器或直播数据源服务器中实时获取所述请求直播的源数据。\n[0008] 可选的,所述缓存服务器,还用于接收所述终端发送的直播停止请求,并依据所述直播停止请求停止获取所述请求直播的源数据。\n[0009] 可选的,所述缓存服务器,还用于从所述数据直播请求中确定所述请求直播的源数据的创建时刻;确定所述创建时刻与当前时刻的时间间隔;当所述时间间隔大于预置间隔,且所述缓存服务器为第一级缓存服务器时,从所述直播数据源服务器中所述请求直播的源数据;当所述时间间隔大于预置间隔,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,通过与其连接的各级缓存服务器逐级发送请求以从直播数据源服务器中所述请求直播的源数据;当所述时间间隔不大于预置间隔时,触发检测本地是否存在所述请求直播的源数据。\n[0010] 本发明还公开了一种数据直播方法,应用于以所述直播数据源服务器为根节点,以所述缓存服务器为子节点构成的具有树形拓扑结构的直播系统中,所述缓存服务器包括:与所述直播数据源直接连接的至少两个第一级缓存服务器,每个第一级缓存服务器各自连接的至少两个第二级缓存服务器,以此类推,每个第N-1级缓存服务器各自连接的至少两个第N级缓存服务器,其中N≥2且N为正整数;所述的方法包括:缓存服务器接收终端发送的数据直播请求,并依据所述数据直播请求确定请求直播的源数据;所述缓存服务器检测本地是否存在所述请求直播的源数据;当检测本地存在所述请求直播的源数据时,所述缓存服务器实时从本地获取所述请求直播的源数据;当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第一级缓存服务器时,所述第一级缓存服务器实时从所述直播数据源服务器中所述请求直播的源数据;当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,所述缓存服务器实时从与其直接连接的上一级缓存服务器中获取所述请求直播的源数据;所述缓存服务器将所述请求直播的源数据实时反馈给所述终端,以使终端直播所述请求直播的源数据。\n[0011] 可选的,检测本地不存在所述请求直播的源数据之后,还包括:所述缓存服务器查询其他同级缓存服务器中是否存在所述请求直播的源数据,其中,所述其他同级缓存服务器与所述缓存服务器具有相同的上一级缓存服务器;当其他同级缓存服务器中存在所述请求直播的源数据时,所述缓存服务器从所述其他同级缓存服务器中实时获取所述请求直播的源数据;当其他同级缓存服务器中不存在所述请求直播的源数据时,所述缓存服务器执行从与其直接连接的上一级缓存服务器或直播数据源服务器中实时获取所述请求直播的源数据的步骤。\n[0012] 可选的,还包括:所述缓存服务器接收所述终端发送的直播停止请求,并依据所述直播停止请求停止获取所述请求直播的源数据。\n[0013] 可选的,所述缓存服务器检测本地是否存在所述请求直播的源数据之前,还包括:\n所述缓存服务器从所述数据直播请求中确定所述请求直播的源数据的创建时刻;确定所述创建时刻与当前时刻的时间间隔;将所述时间间隔与预置间隔进行比较,并依据比较结果确定获取请求直播的源数据的步骤。\n[0014] 可选的,将所述时间间隔与预置间隔进行比较,并依据比较结果确定获取请求直播的源数据的步骤,包括:当所述时间间隔大于预置间隔,且所述缓存服务器为第一级缓存服务器时,所述第一级缓存服务器从所述直播数据源服务器中所述请求直播的源数据;当所述时间间隔大于预置间隔,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,所述缓存服务器通过与其连接的各级缓存服务器逐级发送请求以从直播数据源服务器中所述请求直播的源数据;当所述时间间隔不大于预置间隔时,所述缓存服务器执行检测本地是否存在所述请求直播的源数据的步骤。\n[0015] 与现有技术相比,本发明实施例包括以下优点:\n[0016] 以直播数据源服务器为根节点,分别以各级缓存服务器为子节点构成具有树型拓扑结构的数据直播系统,采用直播数据源服务器存储直播的源数据,直播数据源服务器仅向所述第一级缓存服务器分发请求直播的源数据,从而不会由于并发接入过多节点而造成直播数据源服务器的拥堵和瘫痪,在该树型拓扑结构下,缓存服务器在接收到数据直播请求后,可以通过分级依次向上一级缓存服务器请求数据源,从而避免了各级缓存服务器由于接入过多节点而造成拥堵和瘫痪的问题,快速的提供请求直播的源数据,提高源数据的直播质量。\n附图说明\n[0017] 图1是本发明的一种数据直播系统实施例的结构框图;\n[0018] 图2是本发明的一种数据直播方法实施例步骤流程图;\n[0019] 图3是本发明的一种数据直播方法可选实施例步骤流程图。\n具体实施方式\n[0020] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。\n[0021] 本发明实施例的核心构思之一在于,提出一种数据直播系统和方法,以解决现有直播系统易造成网络拥挤甚至瘫痪的问题。以直播数据源服务器为根节点,分别以各级缓存服务器为子节点构成具有树型拓扑结构的数据直播系统,采用直播数据源服务器存储直播的源数据,直播数据源服务器仅向所述第一级缓存服务器分发请求直播的源数据,从而不会由于并发接入过多节点而造成直播数据源服务器的拥堵和瘫痪,在该树型拓扑结构下,缓存服务器在接收到数据直播请求后,可以通过分级依次向上一级缓存服务器请求数据源,从而避免了各级缓存服务器由于接入过多节点而造成拥堵和瘫痪的问题,快速的提供请求直播的源数据,提高源数据的直播质量。\n[0022] 实施例一\n[0023] 参照图1,示出了本发明的一种数据直播系统实施例的结构框图,具体可以包括如下模块:\n[0024] 数据直播系统包括:直播数据源服务器101和缓存服务器102。该数据直播系统可以基于TCP/IP网络进行视频等数据内容的分发、直播。\n[0025] 该数据直播系统以所述直播数据源服务器101为根节点,以所述缓存服务器102为子节点构成树型拓扑结构,并该树型拓扑结构中包含多级子节点。从而该数据直播系统中直播内容的分发链路构成树形结构,以直播数据源服务器作为树根,靠近数据源的机房内的缓存服务器作为树干,靠近用户的机房内的缓存服务器作为树枝,以此形成2级及以上层次的直播内容分发结构。\n[0026] 因此,所述缓存服务器102包括:与所述直播数据源服务器101直接连接的至少两个第一级缓存服务器,每个第一级缓存服务器各自连接的至少两个第二级缓存服务器,以此类推,每个第N-1级缓存服务器各自连接的至少两个第N级缓存服务器,其中N≥2且N为正整数。\n[0027] 本发明实施例中,直播指的是在现场随着事件的发生、发展进程同步制作和发布信息,具有双向流通过程的信息网络发布方式。其形式可分为现场直播、演播室访谈式直播、文字图片直播、视音频直播或由电视(第三方)提供信源的直播等。并且,直播系统具有备海量存储,查寻便捷等功能。\n[0028] 其中,直播数据源服务器101,用于存储直播的源数据,并向所述第一级缓存服务器发送请求直播的源数据。具体的,在数据直播系统中,随着事件的发生会同步制作生成直播的源数据,如生成当前事件的直播视频数据等,然后将该直播的源数据存在直播数据源服务器中,由直播数据源服务器主动下发或给予第一级缓存服务器的请求将相应的源数据反馈该缓存服务器,在进一步反馈给用户进行播放。\n[0029] 本发明实施例中,按照树型拓扑结构将缓存服务器划分不同的层级,因此缓存服务器在请求数据时可以向同级或上级服务器请求获取视频源数据。即,缓存服务器102,用于依据终端发送的数据直播请求确定请求直播的源数据;当检测本地存在所述请求直播的源数据时,实时从本地获取所述请求直播的源数据;当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第一级缓存服务器时,实时从所述直播数据源服务器中所述请求直播的源数据;当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,实时从与其直接连接的上一级缓存服务器中获取所述请求直播的源数据;以及将所述请求直播的源数据实时反馈给所述终端以直播所述请求直播的源数据。\n[0030] 基于上述数据直播系统,论述数据直播方法,如图2所示,具体包括如下步骤:\n[0031] 步骤202,缓存服务器接收终端发送的数据直播请求,并从所述数据直播请求中获取请求直播的源数据。\n[0032] 以当前网络正在直播视频为例进行论述,该视频可以是电视等第三方数据源提供的,也可以是网络直播室生成的,用户使用电脑、手机等终端设备可以观看该视频的直播。\n此时,终端设备可以发送请求给对该视频进行直播的数据直播系统,数据直播系统中的缓存服务器可以接收到该数据直播请求。\n[0033] 其中,采用树型拓扑结构的数据直播系统中存在多层级的缓存服务器,按照预置规则确定与用户的终端设备进行通信的缓存服务器,例如按照距离最近原则确定,按照缓存服务器的负载情况,按照用户的优先级等上述至少一种规则确定与终端设备通信的缓存服务器。\n[0034] 该缓存服务器可以接收到终端设备发送的数据直播请求,该数据直播请求用于请求对指定源数据进行直播,因此可以依据该数据直播请求确定请求直播的源数据,例如从数据直播请求中获取请求直播的元数据的数据标识(如名称、编号)等信息,以确定当前请求对哪个视频数据进行直播。\n[0035] 步骤204,所述缓存服务器检测本地是否存在所述请求直播的源数据。\n[0036] 有时在接收该终端设备的数据直播请求之前,可能就已经有其他设备请求了该源数据,此时就无需重新请求该源数据,因此缓存服务器要检测本地是否存在所述请求直播的源数据。\n[0037] 步骤206,所述缓存服务器实时从本地获取所述请求直播的源数据。\n[0038] 当检测本地存在所述请求直播的源数据时,所述缓存服务器实时从本地获取所述请求直播的源数据。\n[0039] 步骤208,检测所述缓存服务器是否为第一级缓存服务器。\n[0040] 当检测本地不存在所述请求直播的源数据,由于第一级缓存服务器和其他级缓存服务器获取源数据的方式存在差异,因此要检测该缓存服务器是否为第一级缓存服务器。\n[0041] 步骤210,所述第一级缓存服务器实时从所述直播数据源服务器中所述请求直播的源数据。\n[0042] 当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第一级缓存服务器时,所述第一级缓存服务器实时从所述直播数据源服务器中所述请求直播的源数据,即第一级缓存服务器可以直接向直播源数据服务器请求直播的源数据。\n[0043] 本实施例的数据直播系统中直播源数据服务器可以仅向第一级缓存服务器提供直播的源数据,从而有效地减少直播源数据服务器中的设备接入数量,确保直播系统的稳定性。当然直播源数据服务器也可以依据负载等情况接入部分用户的终端设备以为其直接提供直播的源数据,可以依据具体需求设定,本发明实施例对此不作限定。\n[0044] 步骤212,所述缓存服务器实时从与其直接连接的上一级缓存服务器中获取所述请求直播的源数据。\n[0045] 当检测本地不存在所述请求直播的源数据,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,所述缓存服务器实时从与其直接连接的上一级缓存服务器中获取所述请求直播的源数据。\n[0046] 本发明实施例的数据直播系统采用树型拓扑结构,存在第1~N级缓存服务器,第一级缓存服务器可以直接向直播源数据服务器请求直播的源数据,而除第一级以外的其它级(第二级到第N级中任意一级)缓存服务器则会向实时地其上一级缓存服务器请求直播的源数据。从而分散各缓存服务器接入的终端设备数量,为终端设备提供更优质的数据服务。\n[0047] 步骤214,所述缓存服务器将所述请求直播的源数据实时反馈给所述终端,以使终端直播所述请求直播的源数据。\n[0048] 缓存服务器在从本地、上一级缓存服务器或直播源数据服务器中获取请求直播的源数据之后,可以将该源数据实时反馈给终端,使终端中的播放器等设备可以对该源数据进行直播,从而用户可以实时地观看直播内容。\n[0049] 综上所述,以直播数据源服务器为根节点,分别以各级缓存服务器为子节点构成具有树型拓扑结构的数据直播系统,采用直播数据源服务器存储直播的源数据,直播数据源服务器仅向所述第一级缓存服务器分发请求直播的源数据,从而不会由于并发接入过多节点而造成直播数据源服务器的拥堵和瘫痪,在该树型拓扑结构下,缓存服务器在接收到数据直播请求后,可以通过分级依次向上一级缓存服务器请求数据源,从而避免了各级缓存服务器由于接入过多节点而造成拥堵和瘫痪的问题,快速的提供请求直播的源数据,提高源数据的直播质量。\n[0050] 实施例二\n[0051] 在上述实施例的基础上,本实施例进一步论述数据直播系统及其直播方法。\n[0052] 该树型拓扑结构的数据直播系统中,所述直播数据源服务器101与所述各第一级缓存服务器通过广域网或以太网直接连接;各第一级缓存服务器之间通过以太网互相连接;具有相同的上一级缓存服务器同级缓存服务器通过以太网互相连接;缓存服务器与其上一级缓存服务器通过广域网连接。\n[0053] 其中,由于该数据直播系统为不同地域的用户提供直播功能,因此缓存服务器可以分布于不同地域的各机房内,因此可以配置具有相同的上一级缓存服务器同级同机房的缓存服务器通过以太网互相连接,而同一级的不同机房的服务器则无需直接连接。\n[0054] 即图1所示的缓存服务器系统中:\n[0055] 播数据源服务器101与所述各第一级缓存服务器通过广域网或以太网直接连接;\n[0056] 各第一级缓存服务器之间通过以太网互相连接,各第二级缓存服务器之间通过以太网互相连接,同理,各第N级缓存服务器之间通过以太网互相连接;\n[0057] 第一级缓存服务器和其直接连接的第二级缓存服务器通过广域网连接;同理,第N-1级缓存服务器和其直接连接的第N级缓存服务器通过广域网连接。\n[0058] 从而,直播源数据服务器和第一级缓存服务器,以及各级缓存服务器之间可以通过广域网/以太网(公网/局域网)连接,其中具有不同上一级缓存服务器的同级缓存服务器之间可以不连接。从而基于不同的网络连接类型,可以确定请求直播的源数据时向那种缓存服务器发送请求。\n[0059] 其中,由于具有相同上一级缓存服务器的同级缓存服务器之间通过广域网连接,两者之间的数据传输速度相对较快,因此缓存服务器,还用于查询其他同级缓存服务器中是否存在所述请求直播的源数据,其中,所述其他同级缓存服务器与所述缓存服务器具有相同的上一级缓存服务器;当其他同级缓存服务器中存在所述请求直播的源数据时,从所述其他同级缓存服务器中实时获取所述请求直播的源数据;当其他同级缓存服务器中不存在所述请求直播的源数据时,触发从与其直接连接的上一级缓存服务器或直播数据源服务器中实时获取所述请求直播的源数据。\n[0060] 有时用户在观看直播视频时,可能当前直播尚未解决就停止观看,即当终端停止请求该直播的源数据,为了减少服务器的负担,缓存服务器,还用于接收所述终端发送的直播停止请求,并依据所述直播停止请求停止获取所述请求直播的源数据。\n[0061] 本发明实施例中,除了位于根节点的直播数据源服务器之外,位于子节点(其他机房节点)的缓存服务器仅缓存一段时间内的新数据内容(如2小时内),但同时也支持用户获取距离当前时间更久以前的数据(如72小时前)的直播内容。\n[0062] 即缓存服务器仅对一段时间内直播的源数据进行缓存,而直播源数据服务器可以存储时间较久之前直播的元数据,因此可以配置直播源数据服务器缓存距当前时刻为设定间隔A内直播的源数据,缓存服务器缓存距当前时刻为预置间隔B内直播的源数据。其中,设定间隔A为直播系统中能够缓存的最长时间段直播的视频数据,例如72小时之内,或一个星期之内等,在此时间段内直播的源数据用户可以通过回看等功能出发请求进行观看。\n[0063] 因此,缓存服务器,还用于从所述数据直播请求中确定所述请求直播的源数据的创建时刻;确定所述创建时刻与当前时刻的时间间隔;当所述时间间隔大于预置间隔,且所述缓存服务器为第一级缓存服务器时,从所述直播数据源服务器中所述请求直播的源数据;当所述时间间隔大于预置间隔,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,通过与其连接的各级缓存服务器逐级发送请求以从直播数据源服务器中所述请求直播的源数据;当所述时间间隔不大于预置间隔时,触发检测本地是否存在所述请求直播的源数据。\n[0064] 基于上述数据直播系统,进一步论述数据直播方法,步骤流程如图3所示。\n[0065] 步骤302,终端发送直播数据请求给缓存服务器。\n[0066] 步骤304,缓存服务器可以依据直播数据请求确定请求缓存的直播源数据,并确定所述请求直播的源数据的创建时刻。\n[0067] 步骤306,确定所述创建时刻与当前时刻的时间间隔。\n[0068] 步骤308,检测所述时间间隔是否大于预置间隔。\n[0069] 用户可以通过播放器、网页等观看直播内容,如开启直播页面等触发发送直播数据请求,另外,用户在观看直播节目时,有时会直接观看直播节目,而有时会采用回看等功能对较前一段时间直播的数据内容进行观看,可以宽则相应的功能等触发发送直播数据请求,因此直播数据请求中通常携带有请求直播的源数据的创建时刻。\n[0070] 由于缓存服务器中仅缓存较短时间内直播的源数据,而用户所能请求回看的最久时间以前直播的源数据需要从直播数据源服务器中获取,因此在请求该直播源数据之前,还要获取该源数据的创建时刻。\n[0071] 然后确定创建时刻与当前时刻的时间间隔,依据该时间间隔确定该源数据是否可能存储在缓存服务器中,即检测该时间间隔是否大于预置间隔,即缓存服务器仅能存储预置间隔内直播的源数据。\n[0072] 若是,即所述时间间隔大于预置间隔,则执行步骤314;若否,即所述时间间隔大于预置间隔,即执行步骤310。\n[0073] 步骤310,缓存服务器检测本地是否存在请求直播的源数据。\n[0074] 其中,若是,即本地存在请求直播的源数据,则执行步骤316;若否,即本地不存在请求直播的源数据,则执行312。\n[0075] 步骤312,缓存服务器检测与其具有相同上一级缓存服务器的同级缓存服务器是否存在请求直播的源数据。\n[0076] 若是,即同级缓存服务器存在请求直播的源数据,则执行步骤316;若否,即同级缓存服务器不存在请求直播的源数据,则执行314。\n[0077] 步骤314,检测该缓存服务器是否为第一级缓存服务器。\n[0078] 其中,终端可以按照距离最近、优先级等原则确定接入的缓存服务器,因此终端接入的缓存服务器可能是第N级缓存服务器,也可能是第一级缓存服务器,而第一级缓存服务器和其他缓存服务器在请求直播的源数据是存在一定的差异,因此在确定其本地、其他同级缓存服务器中没有缓存该源数据时,就需要检测该缓存服务器是否为第一级缓存服务器。\n[0079] 若是,即缓存服务器是第一级缓存服务器,则执行步骤318;若否,缓存服务器不是第一级缓存服务器,则执行步骤316。\n[0080] 步骤316,从缓存服务器中获取请求直播的源数据。\n[0081] 若该缓存服务器本地存在请求直播的源数据,该源数据可能是其他终端已经请求的,则此时无需向其他数据源请求,即可从本地获取请求直播的源数据。本发明实施例对于同一台缓存服务器收到两条相同的数据直播请求时,只会产生一条向上一级缓存服务器的数据同步连接,即只会向上一级缓存服务器请求一次该源数据,后续直接反馈该源数据给请求直播的终端即可,从而有效地减少了对上一级缓存服务器的流量冲击。\n[0082] 若该缓存服务器本地不存在请求直播的源数据,而其他同级缓存服务器中存在所述请求直播的源数据,其中,所述其他同级缓存服务器与所述缓存服务器具有相同的上一级缓存服务器,则该缓存服务器可以通过两者连接的以太网从所述其他同级缓存服务器中实时获取所述请求直播的源数据。因此,同样的直播内容只会有一份被分发到具有相同上一级缓存服务器的同级缓存服务器中,从而减少同步数据所需要的跨网流量和并发请求数。\n[0083] 若本地和其他同级缓存服务器中均不存在所述请求直播的源数据,且所述缓存服务器为第二级到第N级中任意一级缓存服务器时,该缓存服务器可以通过连接两者的广域网实时从与其直接连接的上一级缓存服务器中获取所述请求直播的源数据。\n[0084] 并且,从上一级缓存服务器中获取该请求直播的源数据,其中,该上一级缓存服务器可以执行上述步骤310到314的检测步骤,确定从缓存服务器或直播数据源服务器中获取请求直播的源数据,当然若预先检测到请求直播的源数据的时间间隔大于预置间隔则可以直接向上一级缓存服务器发送请求,直到从直播数据源服务器中获取请求直播的源数据为止。\n[0085] 步骤318,从所述直播数据源服务器中所述请求直播的源数据。\n[0086] 当终端向缓存服务器请求对源数据进行直播时,若各级缓存服务器中均没有该源数据,则会逐级上报直到向直播数据源服务器进行请求,以通过连接两者的广域网或以太网从所述直播数据源服务器中所述请求直播的源数据。\n[0087] 本发明实施例可以在缓存服务器收到用户的数据直播请求时,才会触发该直播内容的分发流程,从而减少由于主动分发数据而造成的带宽资源浪费。\n[0088] 步骤320,将所述请求直播的源数据实时反馈给所述终端以直播所述请求直播的源数据。\n[0089] 步骤322,所述缓存服务器接收所述终端发送的直播停止请求。\n[0090] 步骤324,依据所述直播停止请求停止获取所述请求直播的源数据。\n[0091] 在获取到请求直播的源数据之后,可以将该源数据反馈给终端,从而终端可以对该源数据进行播放,使得用户观看直播内容,如视频直播、图文直播等。\n[0092] 由于直播通常是随着事件的发生生成的,因此在用户请求直播源数据时,缓存服务器要实时地获取请求直播的源数据并将其反馈给请求的终端,从而终端可以观看到相应的直播内容。\n[0093] 同时,若用户停止直播,可以发送请求直播该源数据给连接的缓存服务器,该缓存服务器在接收所述终端发送的直播停止请求后,就可以停止为该终端提供源数据,此时若还有其它终端在请求直播该源数据则要继续获取,若所有的终端都停止了直播,则可以停止获取该请求直播的源数据。从而在缓存服务器上不再接收到用户端的数据直播请求时,系统将不再进行数据的分发,减少了不必要的数据同步。\n[0094] 并且,本发明实施例当同一地区的直播用户过多,导致同一机房的多台缓存服务器(即具有相同上一级缓存服务器的同级缓存服务器)同时服务相同的直播内容时,这些缓存服务器之间将通过多播查询,就近到相邻同级缓存服务器上获取数据,此时不需要跨公网到上一级缓存服务器中获取请求直播的源数据,从而通过内网快速复制源数据,减少用户了等待数据的延迟,并且降低了上一级缓存服务器的负担。\n[0095] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。\n[0096] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。\n[0097] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。\n[0098] 本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。\n[0099] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。\n[0100] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。\n[0101] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。\n[0102] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。\n[0103] 以上对本发明所提供的一种数据直播系统和一种数据直播方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
法律信息
- 2018-06-22
- 2015-02-18
实质审查的生效
IPC(主分类): H04N 21/21
专利申请号: 201410504982.8
申请日: 2014.09.26
- 2015-01-21
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2014-04-16
|
2012-10-12
| | |
2
| |
2008-02-13
|
2007-07-23
| | |
3
| | 暂无 |
2008-06-18
| | |
4
| |
2002-03-20
|
2000-09-01
| | |
5
| |
2013-06-05
|
2011-12-01
| | |
6
| |
2008-07-30
|
2007-01-26
| | |
7
| |
2011-11-02
|
2011-08-12
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |