CN112804555B - 线路调度方法、系统、电子设备及计算机存储介质 - Google Patents
线路调度方法、系统、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN112804555B CN112804555B CN202110375145.XA CN202110375145A CN112804555B CN 112804555 B CN112804555 B CN 112804555B CN 202110375145 A CN202110375145 A CN 202110375145A CN 112804555 B CN112804555 B CN 112804555B
- Authority
- CN
- China
- Prior art keywords
- source
- source station
- stream
- line
- cdn
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2404—Monitoring of server processing errors or hardware failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
- H04N21/25891—Management of end-user data being end-user preferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4425—Monitoring of client processing errors or hardware failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/466—Learning process for intelligent management, e.g. learning user preferences for recommending movies
- H04N21/4668—Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Graphics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种线路调度方法、系统、电子设备及计算机存储介质,该线路调度方法包括:获取推流端的推流出口互联网协议IP地址;根据推流出口IP地址确定推流端的推流线路,使得推流端向推流线路中源站集群的源站进行推流;由源站对推流的数据流进行保存,实现了数据流的统一管理,而不是通过互联网直接向CDN设备进行推流,提高了推流稳定性。根据内容分发网络CDN设备与源站之间的关系确定回源方式,使得CDN设备通过回源方式从源站中进行回源,并存储回源获得的数据流,以供拉流端进行拉流,相较于推流端直接向CDN设备进行推流,拉流端直接从CDN设备所在的节点进行拉流的方案,可以减少由于CDN设备所在的节点发生故障导致拉流端出现卡顿现象。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种线路调度方法、系统、电子设备及计算机存储介质。
背景技术
随着互联网技术的不断发展,视频多媒体服务快速发展,例如视频在线直播、课程在线直播等包括音视频流的多媒体数据。视频直播的直播内容一般通过CDN(ContentDelivery Network,内容分发网络)实现主播和用户之间的推拉流。其中,推流指的是把采集阶段封包好的内容传输到服务器的过程,推流是直播端需要完成的步骤;拉流是指服务器已有直播内容,用指定地址进行拉取的过程,拉流是用户端需要完成的步骤,通过推拉流完成视频直播过程。在视频直播过程中,主播和用户访问量非常大,容易造成服务器过载,因此需要向主播和用户提供与之匹配的推拉流线路。
现有技术中,推流端通过互联网将音视频流推流到CDN设备,拉流端通过CDN设备所在的节点对音视频流进行拉流,以实现视频直播过程。
然而,推流端的主播和拉流端的用户分布在全国各地,推流端利用互联网进行推流,容易出现网络抖动、丢包等现象,影响用户体验。
发明内容
有鉴于此,本申请实施例提供一种线路调度方法、系统、电子设备及计算机存储介质,用以克服现有技术中推流端和拉流端通过CDN设备进行推拉流的过程中,出现网络抖动、不够稳定的缺陷。
第一方面,本申请实施例提供了一种线路调度方法,所述方法包括:获取推流端的推流出口互联网协议IP地址;根据推流出口IP地址确定所述推流端的推流线路,使得所述推流端向所述推流线路中源站集群的源站进行推流;根据内容分发网络CDN设备与源站之间的关系确定回源方式,使得CDN设备通过所述回源方式从所述源站中进行回源,并存储回源获得的数据流,以供拉流端进行拉流。
第二方面,本申请实施例提供了一种线路调度装置,所述装置包括:推流调度模块用于获取推流端的互联网协议推流出口IP地址,根据推流出口IP地址确定所述推流端的推流线路,使得所述推流端向所述推流线路中源站集群的源站进行推流;回源调度模块用于根据内容分发网络CDN设备与源站之间的关系确定回源方式,使得CDN设备通过所述回源方式从所述源站中进行回源,并存储回源获得的数据流,以供拉流端进行拉流。
第三方面,本申请实施例提供了一种线路调度系统,所述系统包括推流端、拉流端、源站集群、CDN设备、以及如第二方面所述的线路调度装置;所述推流端、所述源站集群和所述CDN设备分别与所述线路调度装置进行通信连接;所述推流端用于将数据流向所述线路调度装置确定的推流线路中源站集群的源站进行推流;所述CDN设备从所述线路调度装置确定的回源线路中源站集群的源站进行回源;所述拉流端用于向所述CDN设备进行拉流。
第四方面,本申请实施例提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一个可执行指令,所述可执行指令使所述处理器执行如第一方面所述的线路调度方法对应的操作。
第五方面,本申请实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的线路调度方法。
本申请实施例提供了一种线路调度方法、系统、电子设备及计算机存储介质,该线路调度方法包括:获取推流端的推流出口互联网协议IP地址;根据推流出口IP地址确定推流端的推流线路,使得推流端向推流线路中源站集群的源站进行推流;相较于推流端通过互联网直接向多个CDN设备进行推流的方案,由于CDN设备分别是不同的CDN服务商提供的,CDN服务商难以实现对CDN设备的统一管理;而本方案中由源站对推流的数据流进行保存,实现了数据流的统一管理,提高了推流稳定性。根据内容分发网络CDN设备与源站之间的关系确定回源方式,使得不同的CDN设备通过与其对应的回源方式从源站回源,并存储回源获得的数据流,以供拉流端进行拉流,相较于推流端直接向多个CDN设备进行推流,拉流端直接从多个CDN设备所在的节点进行拉流的方案,可以减少由于CDN设备所在的节点发生故障导致拉流端出现卡顿现象。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种线路调度方法的流程图;
图2为本申请实施例提供的一种线路调度方法应用场景示意图;
图3为本申请实施例提供的一种线路调度装置的结构框图;
图4为本申请实施例提供的一种线路调度系统的示意图;
图5为本申请实施例提供的一种推流调度方法的流程图;
图6为本申请实施例提供的另一种推流调度方法的流程图;
图7为本申请实施例提供的一种拉流调度方法的流程图;
图8为本申请实施例提供的一种CDN设备回源调度方法的流程图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
需要说明的是,本申请中多个指两个及两个以上,例如,多个源站。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
实施例一、
本申请实施例一提供一种线路调度方法,如图1所示,图1为本申请实施例提供的一种线路调度方法的流程图,该线路调度方法包括以下步骤:
步骤S101、获取推流端的推流出口互联网协议IP地址。
本申请实施例中的线路调度方法可以由线路调度服务器执行,线路调度服务器可以与推流端、拉流端、源站集群以及CDN服务商支持的CDN设备进行连接并交互,用于实现线路调度方法。该线路调度方法可以应用于在线直播、在线虚拟教学等场景。如图2所示,图2为本申请实施例提供的一种线路调度方法应用场景示意图,图2中以在线虚拟教学为例,推流端可以是主讲老师,拉流端可以是学生或辅导老师,主讲老师面对多个学生进行在线直播授课,大班授课模式下同时上课的学生可以多达上千人。推流端的主讲老师将直播视频向推流线路中源站集群的源站进行推流,图2的推流线路中源站集群的源站是以华东区域的源站集群中的源站1为例进行示例性说明,可以理解是的,在实际应用中,也可以是其他区域的源站集群中的源站。有不同的CDN服务商提供多个CDN设备,CDN服务商通过与其对应的回源方法从源站回源,CDN设备用于存储回源获得的数据流,以供拉流端的学生或辅导老师进行拉流。图2中提供的线路调度方法,推流端是将直播视频推流到源站,由源站对推流的数据流进行保存,而不是通过互联网直接向多个CDN设备进行推流,实现了数据流的统一管理,提高了推流稳定性。
需要说明的是,推流出口IP地址能够反映推流端所处的地理区域。在此以在线虚拟教学为例进行说明,若推流端的主讲老师是在学校进行在线直播,则推流端的推流出口IP地址为校区统一的出口IP。若推流端的主讲老师是在学校外的其他地方进行在线直播,例如家中,则推流端的推流出口IP地址为私人网络出口IP。
步骤S102、根据推流出口IP地址确定推流端的推流线路,使得推流端向推流线路中源站集群的源站进行推流。
以在线虚拟教学为例,本示例中是把全国校区按地理区域划分为华东、华南、华南三大区域,每个区域都搭建一个源站集群,并通过云控后台按就近原则进行配置,把全国各校区出口IP绑定到对应的地理区域的源站集群,增加了整个推流过程的稳定性。而现有技术中,CDN服务商在全国CDN设备所在的节点覆盖不全面,容易导致推流不稳定,而且CDN设备发生故障或并发量过大时容易导致故障,降低用户体验。本申请中最终所有数据流都会推流到源站集群中的源站进行保存,实现了数据流的统一管理。并且源站集群支持平行扩容,即同一个地理区域中可以搭建多个源站集群,源站集群中包括多个源站,源站同样支持平行扩容,可以减轻地理区域内用户突增所带来的源站压力。
本示例中可以根据推流出口IP地址确定推流端所在的地理区域,根据地理区域确定与地理区域绑定的源站集群,再在绑定的源站集群中选择源站,从而将该源站集群中的源站确定为推流线路中的源站,使得推流端向推流线路中源站集群的源站进行推流,提高推流稳定性。
步骤S103、根据内容分发网络CDN设备与源站之间的关系确定回源方式,使得CDN设备通过回源方式从源站中进行回源,并存储回源获得的数据流,以供拉流端进行拉流。
在确定推流线路中的源站之后,推流端可以通过实时消息传输协议(Real TimeMessaging Protocol,简称rtmp)将数据流推流到源站,CDN设备分别是不同的CDN服务商提供的,不同的CDN服务商支持不同的回源方式,各个不同CDN服务商需要通过与其对应的回源方式从源站进行回源。例如,有的CDN服务商与源站之间建立了内网连接,则CDN服务商提供的CDN设备可以通过内网从源站中进行数据流的回源;有的CDN服务商提供的CDN设备可以通过调用API接口地址的方式获取数据流所在的源站,然后再通过源站进行回源。本示例中根据CDN设备与源站之间的关系确定回源方式,使得CDN设备通过与其对应的回源方式从源站中进行回源,提高数据流的回源效率。
实施例二、
本申请实施例二基于实施例一的方案,可选地,在本申请的一种实施例中,其中实施例一中的步骤S102中可通过以下步骤S102a-S102c实现。
步骤S102a、判断推流出口IP地址是否配置有与源站集群连接的专线;若配置有专线,则执行步骤S102b;若未配置专线,则执行步骤S102c。
专线用于将推流端所在的地理区域与源站集群之间通过物理线缆的方式连接在一起,在一些实施例中,专线可以理解为机房,与源站集群进行专线连接的校区需要搭建机房,以北京某一搭建了机房的校区为例,通过专线将其与华北源站集群进行连接。机房需要通过专线连接,而专线的成本比较高,在实际应用中,并不是每个校区均搭建机房。可以根据各校区用户量决定是否搭建机房,例如,可以在用户量比较大的北京、上海、深圳等主要校区中搭建机房。
步骤S102b、将与专线绑定的源站集群作为推流线路中的源站集群,推流端通过专线向源站集群的源站进行推流。
需要说明的是,专线的绑定原则是就近原则,例如,北京市的某些校区绑定到华北源站集群。在本示例中,以在线虚拟教学为例,推流端的主讲老师将直播时的数据流通过专线推流到源站集群的源站。具体地,先判断推流端对应的推流出口IP地址是否配置有与源站集群连接的专线,若配置有专线,则将与专线绑定的源站集群作为推流线路中的源站集群,推流端通过专线向源站集群的源站进行推流,可以减少因公网网络延迟或抖动带来的推流卡顿。
步骤S102c、确定推流出口IP地址对应的地理区域,并将与地理区域绑定的源站集群作为推流线路中的源站集群,推流端通过网络向源站集群的源站进行推流。
在本示例中,以在线虚拟教学为例,推流端的主讲老师将直播时的数据流直接推流到源站集群的源站。具体地,以省份编号表示地理区域为例进行说明,若推流出口IP地址未配置有专线,则根据推流出口IP地址定位其对应的省份编号,再根据省份编号确定其绑定的源站集群,省份与源站集群之间的绑定原则是就近原则。将与省份编号绑定的源站集群作为推流线路中的源站集群,推流端直接向源站集群的源站进行推流。相较于步骤S102b中通过专线推流,源站成本较低,并支持平行扩容,可以减轻地理区域内用户突增所带来的源站压力。
本申请实施例中,不同校区的推流端分配不同的专线,不同地理区域的推流端分配不同的源站集群,即,不同的推流出口IP地址会返回不同的源站集群和源站,降低了推流端的卡顿率。
可选地,上述实施例一步骤S101在获取推流端的推流出口IP地址时,本申请实施例还根据推流端所在的区域类型,确定推流端的推流出口IP地址。
在此,列举两个示例进行说明,第一个示例,若推流端所在的区域类型是公共区域,则推流出口IP地址为公共区域统一的出口IP地址,并在网络上安装网关。
其中,公共区域用于表示包括多个推流端共同使用同一推流出口IP地址的区域。以在线虚拟教学为例,若推流端所在的区域类型是学校,则将推流端的推流出口IP地址为校区统一的出口IP。推流端所在的区域类型是公共区域时,本示例中还可以通过在网络上安装智能网关,以提高推流端通过网络推流时的推流速度。
第二个示例,若推流端所在的区域类型是私人区域,则推流出口IP地址为私人网络出口IP地址。
其中,私人区域用于表示包括一个推流端对应一个推流出口IP地址区域。以在线虚拟教学为例,若推流端所在的区域类型是在学校外的其他地方,例如主讲老师的家中、网吧等,则推流端的推流出口IP地址为私人网络出口IP。
本申请实施例中根据推流端所在的区域类型,确定推流端的推流出口IP地址,进一步提高了根据推流出口IP地址确定源站集群的准确性。
可选地,在上述步骤S102a-S102c的基础上,若步骤S102a中的判断结果是推流出口IP地址未配置专线,且与推流出口IP地址对应的地理区域未绑定源站集群,则推流端向CDN设备进行推流。
可选地,在本申请的一种实施例中,该线路调度方法还包括:在推流端将数据流推流到源站的同时,还将数据流推流到备源CDN设备,以在源站集群的源站出现异常时,拉流端通过备源CDN设备进行拉流。
本申请实施例中通过三级调度实现推流调度,三级调度依次为:专线、源站、CDN设备。以下具体说明,第一级调度:判断推流端对应的推流出口IP地址是否配置有专线,当推流端部署专线且专线没有故障时,推流端优先通过专线向源站进行推流;第二级调度:判断推流端对应的推流出口IP地址所在的地理区域是否绑定有源站集群,当推流端绑定有源站集群且源站集群中的源站没有故障时,推流端直接向源站集群中的源站进行推流;第三级调度:推流端将数据流直接推流到CDN设备,将通过三级调度确定的源站作为主源站,以上是本申请实施例中确定推流线路中主源站的三级调度。
此外,本申请中还可以保留一条备源线路,推流端不仅将数据流推流到主源站,还将数据流推流到备源CDN设备,该备源线路可以在主源站发生故障的情况下作为容灾线路,以在将数据流推到主源站后,主源站出现异常时,拉流端通过备源CDN设备进行拉流,提高数据流的安全性。
上述步骤S102a-S102c介绍了如何确定推流线路中的源站集群,而一个源站集群可以包括多个源站,此处,源站集群包括的多个源站可以指多个源站服务器、多个源站机器或者多个源站主机,源站用于存储推流获得的数据流。在确定了使用哪个源站集群之后,还需要确定使用该源站集群中的哪个源站,在此通过以下步骤介绍如何确定源站集群中的源站。可选地,在本申请的一种实施例中,获取源站集群中多个源站的列表;调用源站集群监控API接口,查询列表中各个源站的当前负载、当前带宽和当前CPU利用率中的至少一项;根据负载、带宽和CPU利用率中的至少一项确定推流线路中源站集群的源站。
需要说明的是,源站负载可以反映源站能同时负载的数据流的数量。源站带宽可以反映推流端向源站进行推流时的推流速度。CPU利用率可以反映源站当前CPU的繁忙程度,CPU利用率越高,该源站的CPU越繁忙,相同情况下推流端进行推流时的等待时间可能也就越长。CPU利用率越低,该源站的CPU越空闲,相同情况下推流端进行推流时的等待时间可能也就越短。可以理解的是,在实际情况中,在负载、带宽和CPU利用率基础上,还可以结合当前源站的丢包率、发送率等参数确定推流线路中源站集群的源站,对此本申请不做限制。
本示例中可以根据源站集群的编号获取源站集群中多个源站的列表,调用源站集群监控API接口,查询列表中各个源站的当前负载、当前带宽和当前CPU利用率,通过综合考虑当前负载、当前带宽和当前CPU利用率中的至少一项确定源站集群的源站,提高确定源站的准确性。
其中,上述在根据负载、带宽和CPU利用率中的至少一项确定推流线路中源站集群的源站时,可选地,分别计算各个源站的当前负载、当前带宽和当前CPU利用率,以及,源站所属的源站集群中源站的最大负载、最大带宽和最大CPU利用率;计算各个源站的当前负载、当前带宽和当前CPU利用率,与对应的最大负载、最大带宽和最大CPU利用率之间的比例关系;根据比例关系以及预设权重,获得各个源站对应的源站参数;将源站参数中的最小值对应的源站作为推流线路中源站集群的源站。
需要说明的是,预设权重可以由本领域技术人员根据实际需求适当设置,使得能够反映其对源站参数的影响即可,一种可实现的方式中,预设权重可以根据推流端在向源站推流后的反馈结果进行设定,另一种可实现的方式中,预设权重可以通过对大量的数据分析进行确定。
以根据负载和带宽确定推流线路中源站集群的源站为例进行说明,源站参数=(源站当前负载/最大负载)×负载权重+(源站当前带宽/最大带宽)×带宽权重,负载权重和带宽权重根据实际情况由本领域技术人员进行设置,可选地,设置负载权重和带宽权重均为0.5,当然,也可以将负载权重设置为0.7,带宽权重设置为0.3,对此本申请实施例不做限制。在计算得到多个源站参数之后,将源站参数中的最小值对应的源站作为推流线路中源站集群的源站。
可选地,在本申请的一种实施例中,在推流端将数据流推流到源站之后,CDN设备还需要通过回源方式从源站中进行回源,回源方式包括内网通知回源和动态调用API接口回源,上述实施例一中的步骤S103可通过以下步骤S103a-S103c实现。步骤S103a、判断CDN设备与源站之间是否支持内网连接;若支持,则执行步骤S103b;若不支持,则执行步骤S103c。步骤S103b、当源站在获取推流时,通过内网通知CDN设备,使得CDN设备通过源站进行回源。步骤S103c、CDN设备调用应用程序编程API接口地址,通过API接口地址获取数据流所在的源站,使得CDN设备通过数据流所在的源站进行回源。
现有技术中在进行推流和拉流时,推流端通过互联网直接向多个CDN设备进行推流,CDN设备对数据流进行存储,无需回源,拉流端直接从CDN设备所在的节点进行拉流即可。而且现有技术中推流端是通过互联网将数据流直接推流到某个确定好的CDN服务商,在通过对该CDN服务商进行配置的方式,将数据流转推到其他CDN服务商,虽然接入简单,然而,转推过程是通过公网进行,会出现网络丢包、时间延迟、抖动严重的情况,如果第一个CDN服务商出现故障,容易导致其他CDN服务商也会发生故障,从而导致整个推流过程和拉流过程不可用,降低对接入方的控制力。
而本申请中推流端是想源站集群中的源站进行推流,因此还需要CDN设备通过与其对应的回源方式从源站进行回源。本申请实施例结合内网通知回源和动态调用API接口回源这两种回源方式,具体地,先判断CDN设备与源站之间是否支持内网连接。若支持,则源站在获取推流时,通过内网通知CDN设备,使得CDN设备通过源站进行回源,可以减少由于公共网络发生抖动所造成的拉流卡顿。若不支持,则CDN设备调用应用程序编程API接口地址,通过API接口地址获取数据流所在的源站,使得CDN设备通过数据流所在的源站进行回源。该方法是通过公网方式进行回源,所有CDN服务商均可以调用API接口地址,不依赖一家CDN服务商,对接入方的CDN服务商具有较强的控制力,提高了线路调度服务器的容错性。
实施例三、
本申请实施例三基于实施例一和实施例二描述的任一项线路调度方法,可选地,在本申请的一种实施例中,该线路调度方法还包括步骤S201-S202。步骤S201、获取拉流端的用户身份标识ID信息;步骤S202、根据用户ID信息确定拉流端的拉流线路,使得拉流端通过拉流线路中CDN设备进行拉流。
用户ID信息(userID)能够反映拉流端所处的地理区域。以在线虚拟教学为例,拉流端的学生或辅导老师分布在全国各地,现有技术中拉流端都从单一的CDN服务商提供的CDN设备所在的节点进行拉流,如果CDN服务商发生故障或者CDN服务商并发量过大,容易发生故障,严重影响学生直播上课的体验。本申请实施例中的各个CDN服务商提供的CDN设备所在的节点分布在全国各地,不同CDN服务商在不同地理区域的CDN设备表现不一样,多个CDN服务商能够最大限度的解决由于从单一的CDN服务商进行拉流所导致的卡顿。
本示例中拉流端在通过CDN设备进行拉流时,可以根据用户ID信息确定用户ID信息所在地理区域内的历史拉流数据,根据地理区域内的历史拉流数据确定拉流线路,使得拉流端通过拉流线路中CDN设备进行拉流,充分考虑到地理区域,减少拉流端用户卡顿率。
可选地,在本申请的一种实施例中,步骤S202可通过以下步骤S202a-S202c实现。步骤S202a、根据用户ID信息确定用户ID信息所在地理区域内的各个CDN设备的卡顿率数据,和/或,用户ID信息对应的前次CDN设备的使用时长数据;步骤S202b、根据卡顿率数据,和/或,使用时长数据,对CDN设备进行线路排序;步骤S202c、将排序完成的首个CDN设备作为拉流线路中的CDN设备。
本示例通过在历史大数据打点平台中,根据用户ID信息确定用户ID信息所在地理区域内的各个CDN设备的卡顿率数据,和/或,用户ID信息对应的前次CDN设备的使用时长数据。在多个CDN服务商提供的CDN设备中选择与用户ID信息匹配的拉流线路,不同的拉流端分配不同的拉流线路,拉流端通过排序完成的首个CDN设备进行拉流,减少拉流端用户卡顿率。
可选地,在本申请的一种实施例中,步骤S202b可通过以下步骤S202a-S202c实现。查询用户ID信息所在地理区域内的各个CDN设备是否存在对应的卡顿率数据;若存在卡顿率数据,则将卡顿率按照从低到高进行线路排序;若不存在卡顿率数据,则根据用户ID信息查询是否存在对应的前次CDN设备的使用时长数据;若存在使用时长数据,则根据使用时长数据按照从长到短进行线路排序;若不存在使用时长数据,则根据预先配置的CDN设备默认排序。
本示例中通过以下两种策略确定拉流线路权重排序。第一、地区服务商卡顿率策略,根据历史大数据打点平台,以所在地理区域为纬度统计CDN服务商提供的CDN设备的卡顿率,卡顿率最低的权重越大,以北京联通为例,CDN设备的卡顿率从高到低依次是CDN服务商1、CDN服务商2、CDN服务商3、CDN服务商4,将拉流线路的权重从高到低进行排序,得到CDN服务商4、CDN服务商3、CDN服务商2、CDN服务商1。第二、CDN时长策略,也就是根据离拉流端最近的一次CDN设备的使用时长数据确定线路排序,例如,拉流端前次CDN线路1使用的直播时长是最长的,则将该CDN线路1对应的CDN服务商1排在第一位。本示例中根据用户ID信息,查询用户ID信息所在地理区域内,各个CDN服务商中各个CDN设备卡顿率数据和CDN设备的使用时长数据,优先使用第一种策略确定线路顺序,若没有CDN设备卡顿率数据,则使用第二种策略确定线路顺序;若CDN设备卡顿率数据和CDN设备的使用时长数据都没有,则根据预先配置的CDN设备默认排序;本申请通过两种策略确定线路顺序,提高了拉流线路排序的准确性,使得拉流端在通过拉流线路进行拉流时,根据不同拉流端的用户ID信息分配不同的拉流线路,减少拉流端用户卡顿率。
可选地,在本申请的一种实施例中,该线路调度方法还包括:当推流端将数据流推流到源站之后,源站根据配置回调API接口地址;根据API接口地址对应的信息确定数据流处于推流状态或断流状态。
本申请还设置有流状态管理,也就是监听一个数据流是推流装状态还是断流状态,该监听依赖于源站的配置,本申请通过对源站进行nginx和rtmp的配置,nginx是一个高性能的http服务器,通过该配置可以回调http API地址,当某一个数据流推到一个源站时,源站会自动根据配置回调一个API接口地址,API接口地址中携带有数据流的状态信息,根据API接口地址对应的信息可以知道该数据流的状态,在数据流为断流时也同样可以通过回调API接口地址得到流状态。
实施例四、
本申请实施例提供了一种线路调度装置,如图3所示,图3为本申请实施例提供的一种线路调度装置,线路调度装置也就是线路调度服务器,用于执行线路调度方法,本申请中线路调度装置包括推流调度模块301和回源调度模块302;推流调度模块301用于获取推流端的互联网协议推流出口IP地址,根据推流出口IP地址确定推流端的推流线路,使得推流端向推流线路中源站集群的源站进行推流;回源调度模块302用于根据内容分发网络CDN设备与源站之间的关系确定回源方式,使得CDN设备通过回源方式从源站中进行回源,并存储回源获得的数据流,以供拉流端进行拉流。
可选地,在本申请的一种实施例中,推流调度模块301还用于判断推流出口IP地址是否配置有与源站集群连接的专线;若配置有专线,则将与专线绑定的源站集群作为推流线路中的源站集群,推流端通过专线向源站集群的源站进行推流;若未配置专线,则确定推流出口IP地址对应的地理区域,并将与地理区域绑定的源站集群作为推流线路中的源站集群,推流端通过网络向源站集群的源站进行推流。
可选地,在本申请的一种实施例中,推流调度模块301还用于若推流出口IP地址未配置专线,且与推流出口IP地址对应的地理区域未绑定源站集群,则推流端向CDN设备进行推流。
可选地,在本申请的一种实施例中,推流调度模块301还用于根据推流端所在的区域类型,确定推流端的推流出口IP地址。
可选地,在本申请的一种实施例中,一个源站集群包括多个源站,推流调度模块301还用于获取源站集群中多个源站的列表;调用源站集群监控API接口,查询列表中各个源站的当前负载、当前带宽和当前CPU利用率中的至少一项;根据负载、带宽和CPU利用率中的至少一项确定推流线路中源站集群的源站。
可选地,在本申请的一种实施例中,推流调度模块301还用于分别计算各个源站的当前负载、当前带宽和当前CPU利用率,以及,源站所属的源站集群中源站的最大负载、最大带宽和最大CPU利用率;计算各个源站的当前负载、当前带宽和当前CPU利用率,与对应的最大负载、最大带宽和最大CPU利用率之间的比例关系;根据比例关系以及预设权重,获得各个源站对应的源站参数;将源站参数中的最小值对应的源站作为推流线路中源站集群的源站。
可选地,在本申请的一种实施例中,线路调度装置还包括拉流调度模块,拉流调度模块用于获取拉流端的用户身份标识ID信息;根据用户ID信息确定拉流端的拉流线路,使得拉流端通过拉流线路中CDN设备进行拉流。
可选地,在本申请的一种实施例中,拉流调度模块还用于根据用户ID信息确定用户ID信息所在地理区域内的各个CDN设备的卡顿率数据,和/或,用户ID信息对应的前次CDN设备的使用时长数据;根据卡顿率数据,和/或,使用时长数据,对CDN设备进行线路排序;将排序完成的首个CDN设备作为拉流线路中的CDN设备。
可选地,在本申请的一种实施例中,拉流调度模块还用于查询用户ID信息所在地理区域内的各个CDN设备是否存在对应的卡顿率数据;若存在卡顿率数据,则将卡顿率按照从低到高进行线路排序;若不存在卡顿率数据,则根据用户ID信息查询是否存在对应的前次CDN设备的使用时长数据;若存在使用时长数据,则根据使用时长数据按照从长到短进行线路排序;
若不存在使用时长数据,则根据预先配置的CDN设备默认排序。
可选地,在本申请的一种实施例中,回源方式包括内网通知回源和动态调用API接口回源,回源调度模块302还用于判断CDN设备与源站之间是否支持内网连接;若支持,则当源站在获取推流时,通过内网通知CDN设备,使得CDN设备通过源站进行回源;若不支持,则CDN设备调用应用程序编程API接口地址,通过API接口地址获取数据流所在的源站,使得CDN设备通过数据流所在的源站进行回源。
可选地,在本申请的一种实施例中,线路调度装置还包括备源CDN模块,备源CDN模块用于在推流端将数据流推流到源站的同时,还将数据流推流到备源CDN设备,以在源站集群的源站出现异常时,拉流端通过备源CDN设备进行拉流。
可选地,在本申请的一种实施例中,线路调度装置还包括流状态管理模块,流状态管理模块用于当推流端将数据流推流到源站之后,源站根据配置回调API接口地址;根据API接口地址对应的信息确定数据流处于推流状态或断流状态。
本实施例的线路调度装置用于实现前述多个方法实施例中相应的线路调度方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的线路调度装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
实施例五、
基于上述实施例一至实施例三描述的任一项线路调度方法,本申请实施例提供了一种线路调度系统,线路调度系统包括推流端、拉流端、源站集群、CDN设备、以及如实施例四中任一项描述的线路调度装置;推流端、源站集群和CDN设备分别与线路调度装置进行通信连接;推流端用于将数据流向线路调度装置确定的推流线路中源站集群的源站进行推流;CDN设备从线路调度装置确定的回源线路中源站集群的源站进行回源;拉流端用于向CDN设备进行拉流。
可选地,在本申请的一种实施例中,拉流端与线路调度装置进行通信连接,拉流端用于向线路调度装置确定的拉流线路中CDN设备进行拉流。
如图4所示,图4为本申请实施例提供的一种线路调度系统的示意图,该线路调度系统包括推流端、拉流端、源站集群、CDN设备、备源CDN设备和线路调度服务器,其中该调度服务器可以是上述实施例四中任一项描述的线路调度装置,调度服务器包括推流调度、流状态管理、源站管理、CDN回源调度和拉流调度。推流端、源站集群和CDN设备通过http协议分别与线路调度服务器进行通信连接;推流端通过rtmp协议将数据流向线路调度服务器确定的推流线路中源站集群的源站进行推流;CDN设备通过rtmp协议从线路调度服务器确定的回源线路中源站集群的源站进行回源;拉流端通过rtmp协议向CDN设备进行拉流,需要说明的是,拉流端也可以通过hls协议或者flv协议向CDN设备进行拉流,拉流端具体使用的协议可以根据拉流端支持的流媒体格式进行确定,对此本申请不做限制。
结合图4中的线路调度系统,列举一个具体地示例对本申请实施例中线路调度系统执行线路调度方法进行说明,具体如下。为便于理解,以在线虚拟教学中推流端对音视频流进行推流为例,推流端可以是主讲老师,拉流端可以是学生或辅导老师,本示例中按照推拉流过程的顺序,分别从推流端、推流调度模块、流状态管理模块、备源CDN模块、CDN回源调度模块、拉流端、拉流调度模块进行说明。
一、推流端
推流端分为以下三种场景:
1、直播间(专线)推流
主讲老师在直播间通过搭建专线进行推流,可以减少因公网网络延迟或抖动带来的推流卡顿。搭建专线可以理解为搭建机房,本示例中将校区统一的出口IP和搭建的机房与源站集群绑定起来,机房通过内网转推到源站集群,专线的绑定原则是就近原则,例如,北京某校区通过专线绑定到华北源站集群。机房需要通过专线连接,而专线的成本比较高,在实际应用中,并不是每个校区均搭建机房。因此可以根据各校区用户量决定是否搭建机房,例如,可以在用户量比较大的北京、上海、深圳等主要校区中搭建机房。
2、直播间(非专线)推流
主讲老师在直播间将音视频流直接推流到源站集群,目前大多数校区采用直推源站的方式进行推流,相较于专线,源站成本较低,并且支持平行扩容。根据推流出口IP定位到省份编号,再根据省份编号确定与其绑定的源站集群,省份编号和源站集群的绑定原则是就近原则。同时本示例中还可以通过在网络上安装智能网关,以提高推流端通过网络推流时的推流速度
3、非直播间(互联网)推流
主讲老师在私人网络下直播推流,比如在家,则根据私人网络出口IP定位省份编号,再根据省份编号确定与其绑定的源站集群,省份编号和源站集群的绑定原则是就近原则。
在此对源站集群进行简要说明。现有技术中,主讲老师直接把音视频流推到某一个确定好的CDN服务商上,学生或辅导老师直接从CDN设备所在的节点进行拉流,虽然该方式的接入简单,但是CDN服务商提供的CDN设备所在的节点,在全国覆盖不够全面,容易导致一部分地区的卡顿率较高,而且CDN服务商较多,难以统一控制管理,沟通成本高。
本申请中利用源站集群代替CDN服务商提供的CDN设备,主讲老师在推流时将音视频流推流到源站集群,由源站集群的源站保存音视频流。把音视频流统一都推到源站集群上,然后CDN设备通过源站集群的源站进行回源。
本申请实施例中推流端是通过rtmp协议将音视频流保存在源站集群的源站中。在此以源站服务器表示源站进行说明,本示例中将源站集群按照区域划分为三个集群:华北集群、华南集群、华东集群,每个源站集群部署多台源站服务器,源站集群有多少台源站服务器可以根据此区域用户并发量进行确定。
源站管理模块可以用于对源站集群的源站服务器进行增删改查,每个区域的源站集群支持平行扩容,能够平滑解决该区域内用户突增所带来的压力,同时还可以解决拉流端在拉流时,CDN服务商提供的CDN设备从源站服务器进行回源,然后拉流端从CDN设备进行拉流,而不是直接从CDN设备所在的节点进行回源,减少由于CDN设备所在的节点发送故障或并发量突增所导致的拉流卡顿。
二、推流调度
在此介绍推流时如何根据不同的推流端选择匹配的源站集群和源站集群中的源站服务器。
在推流时无论是上述推流端的哪种场景,在推流时都遵循一个原则:不同校区推流根据校区出口IP分配不同的推流线路,以降低推流端卡顿率。如图5所示,图5为本申请实施例提供的一种推流调度方法的流程图,通过以下步骤S501-步骤S511实现推流调度。
步骤S501、获取推流出口IP。
步骤S502、判断推流出口IP是否配置专线,若是,则执行步骤S503-S506,若否,则执行步骤S507-S511。
步骤S503、根据推流出口IP确定专线绑定的源站集群。图5中以专线集群表示专线绑定的源站集群。
本示例中的推流出口IP和专线集群之间的关系是由云控后台按就近原则进行配置。
步骤S504、查询当前专线集群中各个源站服务器的当前负载和当前带宽。
步骤S505、根据当前负载和当前带宽确定一台专线服务器。
此处的专线服务器表示专线集群中的源站服务器。
步骤S506、返回专线线路IP。
步骤S507、根据推流出口IP查询省份编号。
步骤S508、根据省份编号查询该区域内源站集群。
步骤S509、查询当前区域内源站集群中各个源站服务器的当前负载和当前带宽。
步骤S510、根据当前负载和当前带宽确定一台源站服务器。
步骤S511、返回源站线路IP。
上述图5为推流端获取推流线路(专线+源站服务器)的流程图,不同的推流出口IP会返回不同区域的源站集群和源站服务器。在确定了使用哪一个区域的源站集群之后,还需要计算使用源站集群中的哪一台源站服务器,如图6所示,图6为本申请实施例提供的另一种推流调度方法的流程图。本示例中是根据源站负载百分比以及剩余带宽百分比确定所分配的源站服务器。以下步骤S601-S606是图5中的步骤S504-S505和步骤S509-S510的进一步具体示例。
步骤S601、获取源站集群编号。
步骤S602、根据源站集群编号查询源站集群中源站服务器列表。
步骤S603、循环列表查询各个源站服务器的当前负载和源站集群中源站服务器的最大负载,以及各个源站服务器的当前带宽和源站集群中源站服务器的最大带宽。
本步骤中可以通过调用源站监控API查询源站服务器的当前负载和当前带宽。
步骤S604、计算A=(当前负载/最大负载)×负载权重。
步骤S605、计算B=(当前带宽/最大带宽)×带宽权重。
步骤S606、C=A+B,C最小值对应的源站服务器作为所分配的源站服务器。
本示例中的负载指能同时负载的数据的流数量,本示例中将负载权重和带宽权重均设置为0.5,通过上述步骤S601-S606,根据源站编号获取变量C=(当前负载/最大负载)×负载权重+(当前带宽/最大带宽)×带宽权重,循环比较获取变量C最小的源站服务器,确定了推流线路中的源站集群以及源站服务器。本示例根据不同推流出口IP匹配不同的源站服务器,最大程度减少推流端卡顿率。
三、流状态管理
实际场景中的业务逻辑是根据音视频流的流状态判断的,本示例还设置有流状态管理,也就是监听一个音视频流是推流状态还是断流状态,该监听依赖于源站服务器的配置。音视频流推流到源站服务器上之后,对如何判断音视频流的流状态进行描述。
通过对源站服务器进行nginx和rtmp的配置,nginx是一个高性能的http服务器,通过该配置可以回调http API地址,当某一个音视频流推到一个源站服务器时,源站服务器会自动根据配置回调一个API接口地址,API接口地址中携带有音视频流的状态信息,根据API接口地址对应的信息可以知道该音视频流的状态,在音视频流为断流时也同样可以通过回调API接口地址得到流状态。
四、备源CDN
本示例中将推流线路中源站集群的源站服务器作为主源站,在将音视频流推到主源站后,主源站出现异常时,会导致拉流端不能进行拉流。因此,本示例中推流是同时推两路,一个是主源站、一个是备源CDN设备。该备源CDN设备作为推流的灾备方案,即使主源站如果都出现异常,依然不影响整个直播推拉流的正常运行,拉流端可以通过备源CDN设备进行拉流,提高音视频流的安全性。
五、拉流端
拉流端可以是学生和辅导老师,拉流端需要拉取主讲老师的画面。本示例中的拉流端一共有5条线路,分别包括4个CDN服务商(CDN服务商1、CDN服务商2、CDN服务商3、CDN服务商4),其中CDN服务商1可以有两条拉流线路,而不是原来的单一CDN线路。可以具有以下技术效果:1、做拉流端灾备的4个CDN服务商全部出现异常的情况下才会影响到直播功能;2、降低拉流卡顿率,各个CDN服务商在全国的CDN设备所在的节点分布不同,不同服务商所在区域的CDN表现都不一样,因此多个CDN服务商能够最大限度解决由于CDN导致的拉流卡顿。
六、拉流调度
在此介绍拉流时如何根据不同的拉流端选择匹配的CDN线路,以降低卡顿率。如图7所示,图7为本申请实施例提供的一种拉流调度方法的流程图,通过以下步骤S701-步骤S712实现拉流调度。
步骤S701、获取拉流端的用户ID。
步骤S702、根据用户ID查询用户所在的地理区域和CDN服务商数据。
步骤S703、根据地理区域和CDN服务商数据,查询数据平台中CDN服务商提供的CDN设备的卡顿率数据。
步骤S704、判断是否存在卡顿率数据,若是,则执行步骤S705-S706;若否,则执行步骤S707-S708。
步骤S705、根据卡顿率数据进行线路排序。
步骤S705是地区服务商卡顿率策略:根据历史大数据打点平台,以所在地理区域为纬度统计CDN服务商提供的CDN设备的卡顿率,卡顿率最低的权重越大,以北京联通为例,CDN设备的卡顿率从高到低依次是CDN服务商1、CDN服务商2、CDN服务商3、CDN服务商4,将拉流线路的权重从高到低进行排序,得到CDN服务商4、CDN服务商3、CDN服务商2、CDN服务商1。
步骤S706、返回CDN拉流线路。
步骤S707、根据用户ID查询用户前次CDN设备的使用时长数据。
步骤S708、判断是否存在前次CDN设备的使用时长数据,若是,则执行步骤S709-S710;若否,则执行步骤S711-S712。
步骤S709、根据前次CDN使用时长数据进行线路排序。
步骤S709是CDN时长策略:根据离拉流端最近的一次CDN设备的使用时长数据确定线路排序,例如,拉流端前次CDN线路1使用的直播时长是最长的,将CDN线路1对应的CDN服务商1排在第一位。
步骤S710、返回CDN拉流线路。
步骤S711、根据云控后台配置的CDN默认权重排序。
步骤S712、返回CDN拉流线路。
本示例中会根据不同用户ID匹配不同的拉流线路,最大程度的减少拉流端用户卡顿率。
七、CDN回源调度
推流端将音视频流推流到源站集群的源站服务器之后,各CDN服务商需要通过从源站服务器把音视频流拉流到CDN设备所在的直播中心节点,使得拉流端通过拉流线路的CDN设备进行拉流,拉流端的学生后续的拉流动作都是从CDN设备在全国各地区的直播中心节点进行拉流。
本实例中通过动态API接口结合内网通知的方式进行回源。如图8所示,图8为本申请实施例提供的一种CDN设备回源调度方法的流程图。
动态API接口回源:所有CDN服务商均可以调用API接口地址,以获取音视频流所在源站服务器,CDN服务商提供的CDN设备再通过源站服务器进行回源。如图8中的CDN服务商(CDN服务商2、CDN服务商3、CDN服务商4)可以采用此种方式,可以保障系统高可用,动态API接口回源方式是通过公网方式回源。
内网通知回源:源站服务器在获取推流的时候,可以通过内网通知CDN服务商通过源站服务器回源,减少了由于公网抖动造成的拉流卡顿,如图8中的CDN服务商1可以采用此种方式。本示例中通过结合动态API接口回源和内网通知回源的方式,降低了拉流端造成的卡顿现象。
本申请中通过加入源站集群,加强了对音视频流的整体控制,源站集群以及源站服务器均支持平行扩容,可以减轻地理区域内用户突增所带来的压力。通过专线推流可以减少公网推流抖动情况。在教学场景下,根据推流端不同的出口IP推荐不同的源站服务器进行推流,减少推流端卡顿现象。拉流端通过历史大数据打点平台分析后,根据不同学生ID推荐不同权重的CDN拉流线路,减少拉流端卡顿现象。通过CDN回源调度加强对整个音视频流回源的控制力和减少公网抖动带来的回源卡顿。
本申请通过将全国各校区按区域划分,创建源站集群,将音视频流统一推到源站集群,实现对音视频流的统一管理,便于根据用户量动态扩展区域的源站集群数量,同时针对不同推流端和不同拉流端推荐与其匹配的推流线路和拉流线路,降低了视频直播的卡顿率。本申请提供的线路调度系统所执行的线路调度方法,在系统层面,将系统模块化,通过CDN,容错,支持平行扩容,通过多源站集群部署、多源站服务器部署、多CDN设备所在节点部署,进一步保证系统的稳定性;在运维层面,通过完善配套的监控和报警、运维工具,可以在运维阶段出现问题能够尽快介入解决;实现了系统高可用稳定性优化。并且通过添加源站集群和线路推荐的方案,降低了推流卡顿率,实现了直播性能优化。
实施例六、
基于上述实施例一至实施例三描述的任一项线路调度方法,本申请实施例提供了一种电子设备,需要说明的,本实施例的线路调度方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、PAD等)和PC机等。如图9所示,图9为本申请实施例提供的一种电子设备的结构图。本申请具体实施例并不对电子设备的具体实现做限定。该电子设备90可以包括:处理器(processor)902、通信接口(Communications Interface)904、存储器(memory)906、以及通信总线908。
其中:处理器902、通信接口904、以及存储器906通过通信总线908完成相互间的通信。
通信接口904,用于与其它电子设备或服务器进行通信。
处理器902,用于执行计算机程序910,具体可以执行上述线路调度方法实施例中的相关步骤。
具体地,计算机程序910可以包括计算机程序代码,该计算机程序代码包括计算机操作指令。
处理器902可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器906,用于存放计算机程序910。存储器906可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
计算机程序910具体可以用于使得处理器902执行以下如实施例一至实施例三中任一项线路调度方法的操作。可以理解的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
实施例七、
基于上述实施例一至实施例三所描述的线路调度方法,本申请实施例提供了一种计算机存储介质,其存储有计算机程序,该计算机程序被处理器执行时实现如实施例一至实施例三所描述的线路调度方法。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的线路调度方法。此外,当通用计算机访问用于实现在此示出的线路调度方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的线路调度方法的专用计算机。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (18)
1.一种线路调度方法,其特征在于,所述方法包括:
获取推流端的推流出口互联网协议IP地址;
根据推流出口IP地址确定所述推流端的推流线路,使得所述推流端向所述推流线路中源站集群的源站进行推流;
根据内容分发网络CDN设备与源站之间的关系确定回源方式,使得CDN设备通过所述回源方式从所述源站中进行回源,并存储回源获得的数据流,以供拉流端进行拉流;
其中,所述回源方式包括内网通知回源和动态调用API接口回源,所述内网通知回源表征当所述源站在获取推流时,通过内网通知所述CDN设备,使得所述CDN设备通过所述源站进行回源,所述动态调用API接口回源表征所述CDN设备调用应用程序编程API接口地址,通过所述API接口地址获取数据流所在的源站,使得所述CDN设备通过所述数据流所在的源站进行回源。
2.根据权利要求1所述的方法,其特征在于,根据推流出口IP地址确定所述推流端的推流线路,使得所述推流端向所述推流线路中源站集群的源站进行推流,包括:
判断所述推流出口IP地址是否配置有与所述源站集群连接的专线;
若配置有专线,则将与所述专线绑定的源站集群作为所述推流线路中的源站集群,所述推流端通过所述专线向所述源站集群的源站进行推流;
若未配置专线,则确定所述推流出口IP地址对应的地理区域,并将与所述地理区域绑定的源站集群作为推流线路中的源站集群,所述推流端通过网络向所述源站集群的源站进行推流。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述推流出口IP地址未配置专线,且与所述推流出口IP地址对应的地理区域未绑定源站集群,则所述推流端向CDN设备进行推流。
4.根据权利要求2所述的方法,其特征在于,所述获取推流端的推流出口IP地址,包括:
根据所述推流端所在的区域类型,确定所述推流端的推流出口IP地址。
5.根据权利要求1-4任一项所述的方法,其特征在于,一个源站集群包括多个源站,所述方法还包括:
获取所述源站集群中多个源站的列表;
调用所述源站集群监控API接口,查询所述列表中各个源站的当前负载、当前带宽和当前CPU利用率中的至少一项;
根据负载、带宽和CPU利用率中的至少一项确定所述推流线路中源站集群的源站。
6.根据权利要求5所述的方法,其特征在于,根据负载、带宽和CPU利用率中的至少一项确定所述推流线路中源站集群的源站,包括:
分别计算各个所述源站的当前负载、当前带宽和当前CPU利用率,以及,源站所属的源站集群中源站的最大负载、最大带宽和最大CPU利用率;
计算各个所述源站的当前负载、当前带宽和当前CPU利用率,与对应的最大负载、最大带宽和最大CPU利用率之间的比例关系;
根据所述比例关系以及预设权重,获得各个所述源站对应的源站参数;
将源站参数中的最小值对应的源站作为所述推流线路中源站集群的源站。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述拉流端的用户身份标识ID信息;
根据用户ID信息确定所述拉流端的拉流线路,使得所述拉流端通过所述拉流线路中CDN设备进行拉流。
8.根据权利要求7所述的方法,其特征在于,根据用户ID信息确定所述拉流端的拉流线路,使得所述拉流端通过所述拉流线路中CDN设备进行拉流,包括:
根据所述用户ID信息确定所述用户ID信息所在地理区域内的各个CDN设备的卡顿率数据,和/或,所述用户ID信息对应的前次CDN设备的使用时长数据;
根据所述卡顿率数据,和/或,所述使用时长数据,对CDN设备进行线路排序;
将排序完成的首个CDN设备作为所述拉流线路中的CDN设备。
9.根据权利要求8所述的方法,其特征在于,根据所述卡顿率数据,和/或,所述使用时长数据,对CDN设备进行线路排序,包括:
查询所述用户ID信息所在地理区域内的各个CDN设备是否存在对应的卡顿率数据;
若存在卡顿率数据,则将卡顿率按照从低到高进行线路排序;
若不存在卡顿率数据,则所述根据用户ID信息查询是否存在对应的前次CDN设备的使用时长数据;
若存在使用时长数据,则根据使用时长数据按照从长到短进行线路排序;
若不存在使用时长数据,则根据预先配置的CDN设备默认排序。
10.根据权利要求1所述的方法,其特征在于,所述根据CDN设备与源站之间的关系确定回源方式,使得CDN设备通过所述回源方式从所述源站中进行回源,包括:
判断所述CDN设备与所述源站之间是否支持内网连接;
若支持,则当所述源站在获取推流时,通过内网通知所述CDN设备,使得所述CDN设备通过所述源站进行回源;
若不支持,则所述CDN设备调用应用程序编程API接口地址,通过所述API接口地址获取数据流所在的源站,使得所述CDN设备通过所述数据流所在的源站进行回源。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述推流端将数据流推流到源站的同时,还将所述数据流推流到备源CDN设备,以在所述源站集群的源站出现异常时,所述拉流端通过所述备源CDN设备进行拉流。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述推流端将数据流推流到源站之后,所述源站根据配置回调API接口地址;
根据所述API接口地址对应的信息确定所述数据流处于推流状态或断流状态。
13.一种线路调度装置,其特征在于,所述装置包括:
推流调度模块用于获取推流端的互联网协议推流出口IP地址,根据推流出口IP地址确定所述推流端的推流线路,使得所述推流端向所述推流线路中源站集群的源站进行推流;
回源调度模块用于根据内容分发网络CDN设备与源站之间的关系确定回源方式,使得CDN设备通过所述回源方式从所述源站中进行回源,并存储回源获得的数据流,以供拉流端进行拉流;
其中,所述回源方式包括内网通知回源和动态调用API接口回源,所述内网通知回源表征当所述源站在获取推流时,通过内网通知所述CDN设备,使得所述CDN设备通过所述源站进行回源,所述动态调用API接口回源表征所述CDN设备调用应用程序编程API接口地址,通过所述API接口地址获取数据流所在的源站,使得所述CDN设备通过所述数据流所在的源站进行回源。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
拉流调度模块用于获取拉流端的用户身份标识ID信息,根据用户ID信息确定所述拉流端的拉流线路,使得所述拉流端通过所述拉流线路中CDN设备进行拉流。
15.一种线路调度系统,其特征在于,所述系统包括推流端、拉流端、源站集群、CDN设备、以及如权利要求13或14所述的线路调度装置;
所述推流端、所述源站集群和所述CDN设备分别与所述线路调度装置进行通信连接;
所述推流端用于将数据流向所述线路调度装置确定的推流线路中源站集群的源站进行推流;
所述CDN设备从所述线路调度装置确定的回源线路中源站集群的源站进行回源;
所述拉流端用于向所述CDN设备进行拉流。
16.根据权利要求15所述的系统,其特征在于,所述拉流端用于向所述CDN设备进行拉流,包括:
所述拉流端与所述线路调度装置进行通信连接,所述拉流端用于向所述线路调度装置确定的拉流线路中CDN设备进行拉流。
17.一种电子设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一个可执行指令,所述可执行指令使所述处理器执行如权利要求1-12中任一项所述的线路调度方法对应的操作。
18.一种计算机存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-12中任一所述的线路调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110375145.XA CN112804555B (zh) | 2021-04-08 | 2021-04-08 | 线路调度方法、系统、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110375145.XA CN112804555B (zh) | 2021-04-08 | 2021-04-08 | 线路调度方法、系统、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112804555A CN112804555A (zh) | 2021-05-14 |
CN112804555B true CN112804555B (zh) | 2021-07-09 |
Family
ID=75816464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110375145.XA Active CN112804555B (zh) | 2021-04-08 | 2021-04-08 | 线路调度方法、系统、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112804555B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596105B (zh) * | 2021-07-06 | 2023-12-26 | 深圳市华曦达科技股份有限公司 | 内容的获取方法、边缘节点及计算机可读存储介质 |
CN115643203A (zh) * | 2022-09-15 | 2023-01-24 | 阿里巴巴(中国)有限公司 | 内容分发方法、装置、内容分发网络、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453328A (zh) * | 2016-10-18 | 2017-02-22 | 乐视控股(北京)有限公司 | 直播视频文件的推流方法、客户端及边缘流媒体服务器 |
CN107395683A (zh) * | 2017-06-26 | 2017-11-24 | 网宿科技股份有限公司 | 一种回源路径的选择方法及服务器 |
CN107734350A (zh) * | 2017-09-25 | 2018-02-23 | 上海幻电信息科技有限公司 | 直播系统及直播方法 |
CN108055264A (zh) * | 2017-12-13 | 2018-05-18 | 平安科技(深圳)有限公司 | 推流服务器的调度装置、方法及计算机可读存储介质 |
CN108810558A (zh) * | 2018-06-12 | 2018-11-13 | 北京奇艺世纪科技有限公司 | 一种直播回源的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11089124B2 (en) * | 2018-07-19 | 2021-08-10 | Verizon Digital Media Services Inc. | Hybrid pull and push based streaming |
-
2021
- 2021-04-08 CN CN202110375145.XA patent/CN112804555B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453328A (zh) * | 2016-10-18 | 2017-02-22 | 乐视控股(北京)有限公司 | 直播视频文件的推流方法、客户端及边缘流媒体服务器 |
CN107395683A (zh) * | 2017-06-26 | 2017-11-24 | 网宿科技股份有限公司 | 一种回源路径的选择方法及服务器 |
CN107734350A (zh) * | 2017-09-25 | 2018-02-23 | 上海幻电信息科技有限公司 | 直播系统及直播方法 |
CN108055264A (zh) * | 2017-12-13 | 2018-05-18 | 平安科技(深圳)有限公司 | 推流服务器的调度装置、方法及计算机可读存储介质 |
CN108810558A (zh) * | 2018-06-12 | 2018-11-13 | 北京奇艺世纪科技有限公司 | 一种直播回源的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112804555A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110858840B (zh) | 用于实时多媒体通信技术的方法、系统和设备 | |
CN112804555B (zh) | 线路调度方法、系统、电子设备及计算机存储介质 | |
CN106375214B (zh) | 一种基于sdn的层次化路由路径确定方法及装置 | |
CN108028803B (zh) | 用于确定网络中的服务方案的拓扑的方法、控制器和系统 | |
KR20150054998A (ko) | 클라우드 내에서 지리적으로 분산된 애플리케이션의 자동화 배치를 위한 방법 및 장치 | |
CN103731753A (zh) | 个人视频直播流路由系统及方法 | |
CN110417870A (zh) | 配置文件管理方法、装置、设备和存储介质 | |
CN103797463A (zh) | 用于在云环境中指派虚拟资源的方法和设备 | |
CN108632063B (zh) | 管理网络切片实例的方法、装置和系统 | |
CN109510770B (zh) | 负载均衡节点之间的信息同步方法、装置和处理设备 | |
CN109412977A (zh) | 一种域名带宽调节方法及相关设备 | |
CN106850803B (zh) | 一种基于sdn的加权轮询系统及算法 | |
WO2020078381A1 (zh) | 数据汇聚方法、装置、设备、存储介质和系统 | |
CN105554099A (zh) | 一种采集服务器负载均衡的方法及装置 | |
CN105245500A (zh) | 一种多媒体资源共享方法和装置 | |
EP3902279A1 (en) | Audio and video stream distribution method in audio and video stream distribution system, and dynamic parent node | |
US8566681B1 (en) | Distributed data distribution | |
RU2586598C2 (ru) | Тиражирование данных | |
CN110460482B (zh) | 流量获取方法、装置、服务器及介质 | |
WO2023065893A1 (zh) | 一种网络调度方法、系统及设备 | |
CN101146107B (zh) | 一种下载数据的方法及装置 | |
CN108235259B (zh) | 分组传送网的组播业务实现方法及其装置、通信系统 | |
EP3051769A1 (en) | Dynamic switching to broadcast transmission of multimedia content over a mobile communication network | |
CN115580542A (zh) | 一种多以太网交换机的信息交换方法及相关装置 | |
US20220029843A1 (en) | System for reducing bandwidth usage on a multicast computer network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |