CN115022411B - 基于WebRTC的媒体服务器调度系统、方法及装置 - Google Patents
基于WebRTC的媒体服务器调度系统、方法及装置 Download PDFInfo
- Publication number
- CN115022411B CN115022411B CN202210686045.3A CN202210686045A CN115022411B CN 115022411 B CN115022411 B CN 115022411B CN 202210686045 A CN202210686045 A CN 202210686045A CN 115022411 B CN115022411 B CN 115022411B
- Authority
- CN
- China
- Prior art keywords
- server
- media
- terminal
- cluster
- scheduling
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000001914 filtration Methods 0.000 claims description 59
- 238000012545 processing Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Abstract
本申请公开了一种基于WebRTC的媒体服务器调度系统、方法及装置,属于通信技术领域。系统包括:用于第一终端、调度服务器、多个服务器集群和第二终端;第二终端,用于向调度服务器发送接入请求,接入请求用于请求拉取媒体流;调度服务器,用于响应于接入请求,从多个服务器集群确定目标服务器集群,从目标服务器集群中确定交换服务器和接入服务器,基于交换服务器和接入服务器,生成媒体转发路由,基于媒体转发路由,将第一终端分享的媒体流推送至第二终端;交换服务器用于在多个服务器集群之间进行媒体流的转发,接入服务器用于在服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流。本申请可以提高媒体服务器的调度效率。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种基于WebRTC的媒体服务器调度系统、方法及装置。
背景技术
网页即时通信(Web Real-Time Communication,WebRTC)是支持网页浏览器进行实时语音对话或实时视频对话的应用程序接口(Application Programming Interface,API)标准;因此,企业可以借助于WebRTC进行音频会议或者视频会议。在企业借助于WebRTC进行音频会议或者视频会议时,会议发起方使用的第一终端接入WebRTC,从而分享媒体流;而会议接入方使用的第二终端接入WebRTC,从而WebRTC调度其包括的媒体服务器,将第一终端分享的媒体流推送至第二终端。
相关技术中,根据WebRTC中的多个媒体服务器的负载信息等,从WebRTC中确定多个目标媒体服务器,基于多个目标媒体服务器确定媒体转发路由,基于该媒体转发路由,将第一终端分享的媒体流推送至第二终端。
然而由于WebRTC中包括的媒体服务器的数量较多,从而导致确定媒体转发路由花费时间较长,也即媒体服务器的调度效率较低。
发明内容
本申请实施例提供了基于WebRTC的媒体服务器调度系统、方法及装置,可以提高媒体服务器的调度效率。所述技术方案如下:
一方面,提供了一种基于WebRTC的媒体服务器调度系统,所述系统包括:用于分享媒体流的第一终端、调度服务器、多个服务器集群和用于拉取媒体流的第二终端;
所述调度服务器分别与所述多个服务器集群连接,所述第一终端直接或者间接与所述多个服务器集群连接;
所述第二终端,用于向所述调度服务器发送接入请求,所述接入请求用于请求拉取媒体流;
所述调度服务器,用于响应于所述接入请求,从所述多个服务器集群确定目标服务器集群,从所述目标服务器集群中确定交换服务器和接入服务器,基于所述交换服务器和所述接入服务器,生成媒体转发路由,基于所述媒体转发路由,将所述第一终端分享的媒体流推送至所述第二终端;
所述交换服务器用于在所述多个服务器集群之间进行媒体流的转发,所述接入服务器用于在所述服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流。
另一方面,提供了一种基于WebRTC的媒体服务器调度方法,所述方法包括:
接收第二终端的接入请求,所述接入请求用于请求拉取第一终端分享的媒体流;
从多个服务器集群确定目标服务器集群,从所述目标服务器集群中确定交换服务器和接入服务器;
基于所述交换服务器和所述接入服务器,生成媒体转发路由;
基于所述媒体转发路由,将所述第一终端分享的媒体流推送至所述第二终端;
所述交换服务器用于在所述多个服务器集群之间进行媒体流的转发,所述接入服务器用于在所述服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流。
另一方面,提供了一种基于WebRTC的媒体服务器调度装置,所述装置包括:
接收模块,用于接收第二终端的接入请求,所述接入请求用于请求拉取第一终端分享的媒体流;
确定模块,用于从多个服务器集群确定目标服务器集群,从所述目标服务器集群中确定交换服务器和接入服务器;
生成模块,用于基于所述交换服务器和所述接入服务器,生成媒体转发路由;
推送模块,用于基于所述媒体转发路由,将所述第一终端分享的媒体流推送至所述第二终端;
所述交换服务器用于在所述多个服务器集群之间进行媒体流的转发,所述接入服务器用于在所述服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流。
另一方面,提供了一种调度服务器,所述调度服务器包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述的基于WebRTC的媒体服务器调度方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述的基于WebRTC的媒体服务器调度方法。
另一方面,提供了一种计算机程序产品,所述计算机程序产品中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述的基于WebRTC的媒体服务器调度方法。
本申请实施例提供的技术方案带来的有益效果是:
在本申请实施例中,由于将WebRTC包括的媒体服务器划分成了多个服务器集群,也即这是一层网络,将同一个服务器集群中的服务器按照角色划分成了交换服务器和接入服务器,也即这又是一层网络,从而实现将WebRTC中的媒体服务器划分成了两层网络,这样就能够实现分网络调度,减少了确定媒体转发路由的参与媒体服务器的数量,提高了调度效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
图1是本申请实施例提供的一种基于WebRTC的媒体服务器调度系统的示意图;
图2是本申请实施例提供的一种基于WebRTC的媒体服务器调度方法的流程图;
图3是本申请实施例提供的一种基于WebRTC的媒体服务器调度方法的流程图;
图4是本申请实施例提供的一种基于WebRTC的媒体服务器调度方法的流程图;
图5是本申请实施例提供的一种基于WebRTC的媒体服务器调度方法的流程图;
图6是本申请实施例提供的一种基于WebRTC的媒体服务器调度装置的结构框图;
图7是本申请实施例提供的一种调度服务器的结构框图。
具体实施方式
为使本申请的技术方案和优点更加清楚,下面对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本申请所涉及的相关数据可以为经用户授权或者经各方充分授权的数据。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、显示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的媒体流等都是在充分授权的情况下获取的。
本申请实施例可以应用实时音视频后端系统中;例如,本申请实施例应用在会议的场景中,会议发起方使用的第一终端接入WebRTC,从而分享媒体流;而会议接入方使用的第二终端接入WebRTC,从而WebRTC调度其包括的媒体服务器,将第一终端分享的媒体流推送至第二终端。
其中,第一终端为分享媒体流的终端;因此,第一终端也可以称为推流端。而第二终端为拉取媒体流的终端;因此,第二终端也可以称为拉流端。并且,媒体流可以为视频流,也可以为音频流,也即本申请实施例可以应用在企业的视频会议中,也可以应用在企业的音频会议中。在本申请实施例中,对这些均不作具体限定。
第一终端和第二终端上均安装有目标应用,目标应用可以为浏览器或者会议应用;第一终端通过会议标识(例如会议号码或者会议链接)分享会议,而第二终端通过会议标识接入会议。第一终端和第二终端均可以是智能手机、平板电脑、笔记本电脑或者台式电脑等,但并不限于此。
请参见图1,图1是本申请实施例提供的一种基于WebRTC的媒体服务器调度系统的示意图,该系统包括:用于分享媒体流的第一终端、调度服务器、多个服务器集群和用于拉取媒体流的第二终端。
服务器集群包括多个媒体服务器,调度服务器可以为单独设置的,专门用于调度媒体服务器的服务器,也即调度服务器担任调度角色;调度服务器也可以为任一媒体服务器,也即调度服务器不仅担任调度的角色,还担任为第二终端拉取媒体流的角色。
调度服务器分别与多个服务器集群连接,而服务器集群中包括多个媒体服务器,则调度服务器与服务器集群中的一个媒体服务器连接,而该媒体服务器与服务器集群中的其他媒体服务器连接。
第一终端直接或者间接与多个服务器集群连接,也即第一终端与一个服务器集群连接,而该服务器集群与其他服务器集群连接。并且,第一终端与一个服务器集群中的一个媒体服务器连接,该媒体服务器与其他服务器集群中的媒体服务器连接。相应的,根据服务器集群中媒体服务器的连接关系,可以对媒体服务器进行角色划分。例如,继续参见图1,媒体服务器按角色分为交换服务器和接入服务器。交换服务器可以为图1中的媒体服务器A1、媒体服务器B1和媒体服务器C1,接入服务器可以为图1中的媒体服务器A2、媒体服务器A3、媒体服务器B2,媒体服务器B3,媒体服务器C2,媒体服务器C3和媒体服务器C4。其中,交换服务器负责在多个服务器集群之间进行媒体流的转发,一个服务器集群相当于一个域,则交换服务器负责在域之间进行媒体流的转发;并且,多个服务器集群形成第一树形拓扑,例如,多个服务器集群组成点对点(peer to peer,P2P)网状拓扑。接入服务器负责服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流,也即接入服务器负责域内媒体流的转发和拉流端的接入;并且,服务器集群中的媒体服务器形成第二树形拓扑,也即同域内服务器组成一个小的树形拓扑。
需要说明的一点是,同一个媒体服务器可以具有一种角色,也即该媒体服务器可以为接入服务器,或者该媒体服务器可以为交换服务器。同一个媒体服务器还可以兼具两种角色,也即该媒体服务器既是接入服务器,又是交换服务器。
第二终端,用于向调度服务器发送接入请求,接入请求用于请求拉取媒体流;
调度服务器,用于响应于接入请求,从多个服务器集群确定目标服务器集群,从目标服务器集群中确定交换服务器和接入服务器,基于交换服务器和接入服务器,生成媒体转发路由,基于媒体转发路由,将第一终端分享的媒体流推送至第二终端;
交换服务器用于在多个服务器集群之间进行媒体流的转发,接入服务器用于在服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流。
在本申请实施例中,由于将WebRTC包括的媒体服务器划分成了多个服务器集群,也即这是一层网络,将同一个服务器集群中的服务器按照角色划分成了交换服务器和接入服务器,也即这又是一层网络,从而实现将WebRTC中的媒体服务器划分成了两层网络,这样就能够实现分网络调度,减少了确定媒体转发路由的参与媒体服务器的数量,提高了调度效率。
需要说明的一点是,将WebRTC包括的媒体服务器划分成多个服务器集群,一个服务器集群相当于域,也即多个服务器集群相当于多个域;从多个服务器集群中确定目标服务器集群的过程即为域间调度;而一个服务器集群包括多个媒体服务器,从服务器集群中确定目标服务器的过程即为域内调度。
接入请求的介绍:在该系统应用在会议场景的情况下,该接入请求可以为基于会议链接触发的,或者是基于会议号码触发的;相应的,该接入请求携带会议链接或者会议号码。
调度服务器,用于对该接入请求进行验证,在验证通过的情况下,从多个服务器集群确定目标服务器集群;在验证不通过的情况下,拒绝该接入请求。其中,调度服务器对该接入请求进行验证可以通过以下两种方式中的至少一种方式实现:
第一种实现方式,调度服务器对会议链接或者会议号码的真实性进行验证,也即在会议链接或者会议号码是真实的情况下,确定验证通过;在会议链接或者会议号码是非真实的情况下,确定验证不通过。
第二种实现方式,调度服务器对第二终端的身份进行验证,也即在第二终端的身份用于表示第二终端具有拉取媒体流的权限的情况下,确定验证通过;在第二终端的身份用于表示第二终端不具有拉取媒体流的权限的情况下,确定验证不通过。
调度服务器,用于从多个服务器集群中确定目标服务器集群的过程可以为:
调度服务器基于集群调度信息,从多个服务器集群中确定目标服务器集群。其中,集群调度信息可以为负载信息、距离、国际信息等中的至少一项。
在集群调度信息为负载信息的情况下,调度服务器基于多个服务器集群的负载信息,从多个服务器集群中确定负载最小的目标服务器集群。
在本申请实施例中,调度服务器为第二终端选择负载最小的目标服务器集群,小负载的目标服务器集群能够快速响应第二终端的接入请求,从而提高目标服务器集群为第二终端推送媒体流的效率。
在集群调度信息为距离的情况下,调度服务器基于多个服务器集群分别与第二终端之间的距离,从多个服务器集群中确定距离最小的目标服务器集群;其中,服务器集群与第二终端之间的距离是指该服务器集群中包括的多个媒体服务器与第二终端之间的平均距离或者是该服务器集群中包括的中心媒体服务器与第二终端之间的距离。
在本申请实施例中,调度服务器为第二终端选择距离最小的目标服务器集群,近距离的目标服务器集群能够减少传输媒体流的时延,从而提高目标服务器集群为第二终端推送媒体流的效率。
在集群调度信息为国际信息的情况下,调度服务器基于多个服务器集群的国际信息和第二终端的国际信息,从多个服务器集群中确定属于同一国际的目标服务器集群。例如,第二终端的国际信息为中国,则调度服务器从多个服务器集群中选择国际信息也为中国的目标服务器集群。
本申请实施例提供的系统,由于划分了服务器集群,这样不同的服务器集群可以部署到不同的国家,这样调度服务器为第二终端选择属于同一国际的目标服务器集群,避免了跨境网络流量费用过高、国家和地区政策的限制,不利于全球部署等的问题。并且,本申请实施例提供的系统,由于划分了服务器集群,这样方便网络规模的扩展;例如,可以直接扩展一个服务器集群等。
调度服务器,用于从目标服务器集群中确定交换服务器的过程可以为:
调度服务器,用于基于第一过滤条件信息,从目标服务器集群中过滤不满足条件的媒体服务器,得到多个第一媒体服务器;基于多个第一性能指标,确定多个第一媒体服务器的性能参数值,基于多个第一媒体服务器的性能参数值,将多个第一媒体服务器中性能参数值最大的媒体服务器作为交换服务器。
其中,第一过滤条件信息包括剩余磁盘大小、剩余网络带宽大小、剩余内存大小、已负载音频流数量、已负载视频流数量、与上次心跳时间的时间差、跨集群能力信息、交换服务器黑名单和接入服务器白名单中的至少一项;其中,跨集群能力信息用于表示媒体服务器是否可以跨集群转发媒体流。相应的,调度服务器,还用于执行如下至少一个步骤:
过滤目标服务器集群中剩余磁盘大小小于第一预设磁盘值的媒体服务器;
过滤目标服务器集群中剩余网络带宽大小小于第一预设带宽值的媒体服务器;
过滤目标服务器集群中剩余内存大小小于第一预设内存值的媒体服务器;
过滤目标服务器集群中已负载音频流数量大于第一预设数量的媒体服务器;
过滤目标服务器集群中已负载视频流数量大于第二预设数量的媒体服务器;
过滤目标服务器集群中跨集群能力信息用于表示不可跨集群的媒体服务器;
过滤目标服务器集群中服务器标识在交换服务器黑名单中的媒体服务器;
过滤目标服务器集群中服务器标识在接入服务器黑名单中的媒体服务器。
在本申请实施例中,先过滤一部分不满足条件的媒体服务器,这样减少了媒体服务器的数量,从而提高了从剩余媒体服务器中确定交换服务器的效率。
其中,多个第一性能指标包括中央处理器(Central Processing Unit,CPU)使用率、内存使用率、磁盘使用率、网络带宽使用率、第一时延和第二时延中的多个,第一时延为到同一服务器集群的第三预设数量的其他媒体服务器的平均时延,第二时延为到其他服务器集群的第四预设数量的媒体服务器的平均时延。
相应的,调度服务器,用于分别基于第一媒体服务器的CPU使用率、内存使用率、磁盘使用率、网络带宽使用率、第一时延和第二时延中的多个,确定第一媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率、第一时延对应的第一效率和第二时延对应的第二效率中的多个,对第一媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率、第一效率和第二效率中的多个进行加权求和,得到第一媒体服务器的性能参数值。
例如,调度服务器通过以下公式一,确定第一媒体服务器的性能参数值:
公式一:
p1=(1-UCPU1)α1+(1-Umem1)β1+(1-Udisk1)γ1+(1-Unet1)δ1+(1/Tinter1)ε1+(1/Tintra1)η1
其中,p1为第一媒体服务器的性能参数值,UCPU1为第一媒体服务器的CPU使用率,Umem1为第一媒体服务器的内存使用率,Udisk1为第一媒体服务器的磁盘使用率,Unet1为第一媒体服务器的网络带宽使用率,Tinter1为第一时延(1/Tinter1为第一效率),Tintra1为第二时延(1/Tintra1为第二效率)。α1为CPU剩余利用率的权重,β1为内存剩余利用率的权重,γ1为磁盘剩余利用率的权重,δ1为网络带宽剩余利用率,ε1为第一效率的权重,η1为第二效率的权重,且α1+β1+γ1+δ1+ε1+η1=1。
在本申请实施例中,基于第一媒体服务器的多个性能指标和性能指标的权重,确定第一媒体服务器的性能参数值,从而提高了确定出的性能参数值的准确性。
其中,调度服务器从目标服务器集群中确定接入服务器的过程可以为:
调度服务器,用于基于第二过滤条件信息,从目标服务器集群中过滤不满足条件的媒体服务器,得到多个第二媒体服务器;基于多个第二性能指标,确定多个第二媒体服务器的性能参数值,基于多个第二媒体服务器的性能参数值,将多个第二媒体服务器中性能参数值最大的媒体服务器作为接入服务器。
其中,第二过滤条件信息包括剩余磁盘大小、剩余网络带宽大小、剩余内存大小、已负载音频流数量、已负载视频流数量、与上次心跳时间的时间差、接入服务器黑名单和交换服务器白名单中的至少一项。相应的,调度服务器,还用于执行如下至少一个步骤:
过滤目标服务器集群中剩余磁盘大小小于第二预设磁盘值的媒体服务器;
过滤目标服务器集群中剩余网络带宽大小小于第二预设带宽值的媒体服务器;
过滤目标服务器集群中剩余内存大小小于第二预设内存值的媒体服务器;
过滤目标服务器集群中已负载音频流数量大于第五预设数量的媒体服务器;
过滤目标服务器集群中已负载音频流数量大于第六预设数量的媒体服务器;
过滤目标服务器集群中服务器标识在交换服务器黑名单中的媒体服务器;
过滤目标服务器集群中服务器标识在接入服务器黑名单中的媒体服务器。
在本申请实施例中,先过滤一部分不满足条件的媒体服务器,这样减少了媒体服务器的数量,从而提高了从剩余媒体服务器中确定接入媒体服务器的效率。
其中,多个第二性能指标包括中央处理器CPU使用率、内存使用率、磁盘使用率、网络带宽使用率和第三时延中的多个,第三时延为到同一服务器集群的第七预设数量的其他媒体服务器的平均时延。
相应的,调度服务器,用于分别基于第二媒体服务器的CPU使用率、内存使用率、磁盘使用率、网络带宽使用率和第三时延中的多个,确定第二媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率和第三时延对应的第三效率中的多个,对第二媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率和第三时延对应的第三效率中的多个进行加权求和,得到第二媒体服务器的性能参数值。
例如,调度服务器通过以下公式二,确定第二媒体服务器的性能参数值:
公式二:
p2=(1-UCPU2)α2+(1-Umem2)β2+(1-Udisk2)γ2+(1-Unet2)δ2+(1/Tintra2)η2
其中,p2为第二媒体服务器的性能参数值,UCPU2为第二媒体服务器的CPU使用率,Umem2为第二媒体服务器的内存使用率,Udisk2为第二媒体服务器的磁盘使用率,Unet2为第二媒体服务器的网络带宽使用率,Tintra2为第三时延(1/Tintra2为第三效率)。α2为CPU剩余利用率的权重,β2为内存剩余利用率的权重,γ2为磁盘剩余利用率的权重,δ2为网络带宽剩余利用率,η2为第三效率的权重,且α2+β2+γ2+δ2+η2=1。
在本申请实施例中,基于第二媒体服务器的多个性能指标和性能指标的权重,确定第二媒体服务器的性能参数值,从而提高了确定出的性能参数值的准确性。
其中,调度服务器基于交换服务器和接入服务器,生成媒体转发路由的过程可以为:
多个服务器集群形成第一树形拓扑;调度服务器,用于确定目标服务器集群在第一树形拓扑中的角色信息,基于角色信息、交换服务器和接入服务器,生成媒体转发路由。其中,角色信息用于表示目标服务器集群在第一树形拓扑中是根节点还是非根节点。
角色信息用于表示目标服务器集群在第一树形拓扑中是根节点,调度服务器,用于确定媒体转发路由为第一终端-交换服务器-接入服务器-第二终端。
需要说明的一点是,交换服务器和接入服务器可以为同一个服务器。例如,继续参见图1,第一终端为推流端,第二终端为拉流端A21,交换服务器和接入服务器为同一个服务器,均为媒体服务器A2,则媒体转发路由为推流端-媒体服务器A2-拉流端A21。交换服务器和接入服务器为不同服务器。例如,继续参见图1,第一终端为推流端,第二终端为拉流端A31,交换服务器为媒体服务器A2,接入服务器为媒体服务器A3,则媒体转发路由为推流端-媒体服务器A2-媒体服务器A3-拉流端A31。
需要说明的一点是,在接入服务器直接连接交换服务器的情况下,则媒体转发路由为第一终端-交换服务器-接入服务器-第二终端。在接入服务器间接连接交换服务器的情况下,则调度服务器,用于在目标服务器集群中确定第三媒体服务器,确定媒体转发路由为第一终端-交换服务器-第三媒体服务器-接入服务器-第二终端。其中,第三媒体服务器可以为一个,也可以为多个。
角色信息用于表示目标服务器集群在第一树形拓扑中是非跟节点,调度服务器,用于在多个服务器集群中确定第一服务器集群,在第一服务器集群中确定第四媒体服务器,确定媒体转发路由为第一终端-第四媒体服务器-交换服务器-接入服务器-第二终端;第一服务器集群为连接目标服务器集群和第一终端的服务器集群,第四媒体服务器为连接交换服务器和第一终端的服务器。
需要说明的一点是,在接入服务器没有设置触发级联机制的情况下,调度服务器确定出接入服务器和交换服务器之后,直接基于接入服务器和交换服务器生成媒体转发路由。在接入服务器设有触发级联机制的情况下,调度服务器确定出接入服务器和交换服务器之后,还需要基于级联机制,确定接入服务器的使用资源是否达到阈值;在接入服务器的使用资源没有达到阈值的情况下,调度服务器基于交换服务器和接入服务器,生成媒体转发路由。在接入服务器的使用资源达到阈值的情况下,调度服务器需要重新确定交换服务器和接入服务器,基于重新确定出的交换服务器和接入服务器,生成媒体转发路由;相应的,该过程可以为:
多个服务器集群形成第一树形拓扑,目标服务器集群包括的多个媒体服务器形成第二树形拓扑;调度服务器,还用于在接入服务器的使用资源达到阈值的情况下,基于第一树形拓扑和第二树形拓扑,确定目标根节点,从目标节点开始,确定资源使用没有达到阈值的第一节点,从第一节点的子节点中确定第二节点,将第一节点对应的服务器作为交换服务器,将第二节点对应的服务器作为接入服务器,基于交换服务器和接入服务器,生成媒体转发路由。
第一节点为目标节点的子节点;其中,调度服务器从第一节点的子节点中确定第二节点的过程与调度服务器确定接入服务器的过程相似,在此不再赘述。
其中,调度服务器基于第一树形拓扑和第二树形拓扑,确定目标根节点的过程可以为:
在第一终端直接连接目标服务器集群的情况下,调度服务器,用于确定目标根节点为接入服务器对应的节点;在第一终端间接连接目标服务器集群的情况下,调度服务器,用于确定目标根节点为交换服务器对应的节点。
例如,推流端在域内,目标根节点为推流端连接的接入服务器对应的节点,继续参见图1,则目标根节点为媒体服务器A2对应的节点;推流端在域外,则目标根节点为交换服务器对应的节点,继续参见图1,则目标根节点为媒体服务器C1对应的节点。
需要说明的一点是,第二终端可以为新增的拉流端;在第一终端和第二终端在同一个服务器集群中的情况下,在该服务器集群的第二树形拓扑中,调度服务器确定接入服务器,将第二终端接入该接入服务器,通过该接入服务器为第二终端推送第一终端分享的媒体流。也即拉流端和推流端同域的情况下,在同域内的树形拓扑中,找到可以拉流的接入服务器,此时可能触发接入服务器级联机制。
在第一终端和第二终端不在同一个服务器集群中的情况下,从第一终端所在的服务器集群中确定交换服务器,从第二终端所在的服务器集群中确定交换服务器,将这两个交换服务器连接,第一终端所连接的接入服务器也需要连接器所在服务器集群的交换服务器,得到媒体转发理由。
需要说明的一点是,调度服务器分域调度,且媒体服务器分角色,组成两层树形拓扑的覆盖网络,能够平衡各拉流端的时延,并容易扩展媒体流的分发规模。
需要说明的另一点是,对于不同的第二终端,确定出的交换服务器和接入服务器是不同的,从而能够实现同一服务器集群中的媒体服务器的角色可以根据负载动态转变、均衡负载,合理利用媒体服务器的资源。
请参见图2,图2是本申请实施例提供的一种基于WebRTC的媒体服务器调度方法的流程图。该方法包括:
步骤S201:调度服务器接收第二终端的接入请求,接入请求用于请求拉取第一终端分享的媒体流。
步骤S202:调度服务器从多个服务器集群确定目标服务器集群,从目标服务器集群中确定交换服务器和接入服务器。
其中,交换服务器用于在多个服务器集群之间进行媒体流的转发,接入服务器用于在服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流。
步骤S203:调度服务器基于交换服务器和接入服务器,生成媒体转发路由。
步骤S204:调度服务器基于媒体转发路由,将第一终端分享的媒体流推送至第二终端。
需要说明的一点是,步骤S201-步骤S204的实现过程参见以上实施例,在此不再赘述。
在本申请实施例中,由于将WebRTC包括的媒体服务器划分成了多个服务器集群,也即这是一层网络,将同一个服务器集群中的服务器按照角色划分成了交换服务器和接入服务器,也即这又是一层网络,从而实现将WebRTC中的媒体服务器划分成了两层网络,这样就能够实现分网络调度,减少了确定媒体转发路由的参与媒体服务器的数量,提高了调度效率。
请参见图3,图3是本申请实施例提供的一种基于WebRTC的媒体服务器调度方法的流程图。该方法包括:
步骤S301:调度服务器接收第二终端的接入请求,接入请求用于请求拉取第一终端分享的媒体流。
步骤S302:调度服务器从多个服务器集群确定目标服务器集群。
步骤S303:调度服务器基于第一过滤条件信息,从目标服务器集群中过滤不满足条件的媒体服务器,得到多个第一媒体服务器。
其中,第一过滤条件信息包括剩余磁盘大小、剩余网络带宽大小、剩余内存大小、已负载音频流数量、已负载视频流数量、与上次心跳时间的时间差、跨集群能力信息、交换服务器黑名单和接入服务器白名单中的至少一项。
相应的,调度服务器基于第一过滤条件信息,从目标服务器集群中过滤不满足条件的媒体服务器,得到多个第一媒体服务器的步骤包括以下至少一项:
调度服务器过滤目标服务器集群中剩余磁盘大小小于第一预设磁盘值的媒体服务器;
调度服务器过滤目标服务器集群中剩余网络带宽大小小于第一预设带宽值的媒体服务器;
调度服务器过滤目标服务器集群中剩余内存大小小于第一预设内存值的媒体服务器;
调度服务器过滤目标服务器集群中已负载音频流数量大于第一预设数量的媒体服务器;
调度服务器过滤目标服务器集群中已负载视频流数量大于第二预设数量的媒体服务器;
调度服务器过滤目标服务器集群中跨集群能力信息用于表示不可跨集群的媒体服务器;
调度服务器过滤目标服务器集群中服务器标识在交换服务器黑名单中的媒体服务器;
调度服务器过滤目标服务器集群中服务器标识在接入服务器黑名单中的媒体服务器。
步骤S304:调度服务器基于多个第一性能指标,确定多个第一媒体服务器的性能参数值。
多个第一性能指标包括中央处理器CPU使用率、内存使用率、磁盘使用率、网络带宽使用率、第一时延和第二时延中的多个,第一时延为到同一服务器集群的第三预设数量的其他媒体服务器的平均时延,第二时延为到其他服务器集群的第四预设数量的媒体服务器的平均时延。相应的,调度服务器基于多个第一性能指标,确定多个第一媒体服务器的性能参数值的步骤,包括:
分别基于第一媒体服务器的CPU使用率、内存使用率、磁盘使用率、网络带宽使用率、第一时延和第二时延中的多个,确定第一媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率、第一时延对应的第一效率和第二时延对应的第二效率中的多个,对第一媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率、第一效率和第二效率中的多个进行加权求和,得到第一媒体服务器的性能参数值。
步骤S305:调度服务器基于多个第一媒体服务器的性能参数值,将多个第一媒体服务器中性能参数值最大的媒体服务器作为交换服务器。
交换服务器用于在多个服务器集群之间进行媒体流的转发。
步骤S306:调度服务器基于第二过滤条件信息,从目标服务器集群中过滤不满足条件的媒体服务器,得到多个第二媒体服务器。
第二过滤条件信息包括剩余磁盘大小、剩余网络带宽大小、剩余内存大小、已负载音频流数量、已负载视频流数量、与上次心跳时间的时间差、接入服务器黑名单和交换服务器白名单中的至少一项。相应的,调度服务器基于第二过滤条件信息,从目标服务器集群中过滤不满足条件的媒体服务器,得到多个第二媒体服务器包括以下至少一项:
调度服务器过滤目标服务器集群中剩余磁盘大小小于第二预设磁盘值的媒体服务器;
调度服务器过滤目标服务器集群中剩余网络带宽大小小于第二预设带宽值的媒体服务器;
调度服务器过滤目标服务器集群中剩余内存大小小于第二预设内存值的媒体服务器;
调度服务器过滤目标服务器集群中已负载音频流数量大于第五预设数量的媒体服务器;
调度服务器过滤目标服务器集群中已负载视频流数量大于第六预设数量的媒体服务器;
调度服务器过滤目标服务器集群中服务器标识在交换服务器黑名单中的媒体服务器;
调度服务器过滤目标服务器集群中服务器标识在接入服务器黑名单中的媒体服务器。
步骤S307:调度服务器基于多个第二性能指标,确定多个第二媒体服务器的性能参数值。
多个第二性能指标包括中央处理器CPU使用率、内存使用率、磁盘使用率、网络带宽使用率和第三时延中的多个,第三时延为到同一服务器集群的第七预设数量的其他媒体服务器的平均时延;相应的,调度服务器基于多个第二性能指标,确定多个第二媒体服务器的性能参数值的步骤,包括:
调度服务器分别基于第二媒体服务器的CPU使用率、内存使用率、磁盘使用率、网络带宽使用率和第三时延中的多个,确定第二媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率和第三时延对应的第三效率中的多个,对第二媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率和第三时延对应的第三效率中的多个进行加权求和,得到第二媒体服务器的性能参数值。
步骤S308:调度服务器基于多个第二媒体服务器的性能参数值,将多个第二媒体服务器中性能参数值最大的媒体服务器作为接入服务器。
接入服务器用于在服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流。
步骤S309:调度服务器基于交换服务器和接入服务器,生成媒体转发路由。
步骤S310:调度服务器基于媒体转发路由,将第一终端分享的媒体流推送至第二终端。
在本申请实施例中,调度服务器在确定交换服务器和接入服务器时,先过滤一部分不满足条件的媒体服务器,这样减少了媒体服务器的数量,从而提高了从剩余媒体服务器中确定交换服务器和接入服务器的效率。并且,在确定交换服务器和接入服务器时,基于媒体服务器的多个性能指标和性能指标的权重,确定媒体服务器的性能参数值,从而提高了确定出的性能参数值的准确性,进而提高了确定交换服务器和接入服务器的准确性。
请参见图4,图4是本申请实施例提供的一种基于WebRTC的媒体服务器调度方法的流程图。该方法包括:
步骤S401:调度服务器接收第二终端的接入请求,接入请求用于请求拉取第一终端分享的媒体流。
步骤S402:调度服务器从多个服务器集群确定目标服务器集群,从目标服务器集群中确定交换服务器和接入服务器。
步骤S403:调度服务器确定目标服务器集群在第一树形拓扑中的角色信息。
步骤S404:调度服务器基于角色信息、交换服务器和接入服务器,生成媒体转发路由。
在角色信息用于表示目标服务器集群在第一树形拓扑中是根节点的情况下,调度服务器确定媒体转发路由为第一终端-交换服务器-接入服务器-第二终端。
在角色信息用于表示目标服务器集群在第一树形拓扑中是非根节点的情况下,调度服务器在多个服务器集群中确定第一服务器集群,在第一服务器集群中确定第四媒体服务器,确定媒体转发路由为第一终端-第四媒体服务器-交换服务器-接入服务器-第二终端。其中,第一服务器集群为连接目标服务器集群和第一终端的服务器集群,第四媒体服务器为连接交换服务器和第一终端的服务器。
步骤S405:调度服务器基于媒体转发路由,将第一终端分享的媒体流推送至第二终端。
在本申请实施例中,在确定媒体转发路由时,考虑了目标服务器集群在第一树形拓扑中的角色,而不同角色可能会导致确定出的媒体转发路由不准确,因此结合目标服务器集群在第一树形拓扑中的角色,确定媒体转发路由,能够提高确定出的媒体转发路由的准确性。
请参见图5,图5是本申请实施例提供的一种基于WebRTC的媒体服务器调度方法的流程图。该方法包括:
步骤S501:调度服务器接收第二终端的接入请求,接入请求用于请求拉取第一终端分享的媒体流。
步骤S502:调度服务器从多个服务器集群确定目标服务器集群,从目标服务器集群中确定交换服务器和接入服务器。
步骤S503:在接入服务器的使用资源没有达到阈值的情况下,调度服务器基于交换服务器和接入服务器,生成媒体转发路由,执行步骤S507。
步骤S504:在接入服务器的使用资源达到阈值的情况下,调度服务器基于第一树形拓扑和第二树形拓扑,确定目标根节点。
多个服务器集群形成第一树形拓扑,目标服务器集群包括的多个媒体服务器形成第二树形拓扑。
在第一终端直接连接目标服务器集群的情况下,调度服务器确定目标根节点为接入服务器对应的节点;在第一终端间接连接目标服务器集群的情况下,调度服务器确定目标根节点为交换服务器对应的节点。
步骤S505:调度服务器从目标节点开始,确定资源使用没有达到阈值的第一节点,从第一节点的子节点中确定第二节点。
步骤S506:调度服务器将第一节点对应的服务器作为交换服务器,将第二节点对应的服务器作为接入服务器,基于交换服务器和接入服务器,生成媒体转发路由。
步骤S507:调度服务器基于媒体转发路由,将第一终端分享的媒体流推送至第二终端。
在本申请实施例中,在确定交换服务器和接入服务器时,考虑了接入服务器的使用资源,也即在接入服务器没有设置触发级联机制的情况下,调度服务器确定出接入服务器和交换服务器之后,直接基于接入服务器和交换服务器生成媒体转发路由。在接入服务器设有触发级联机制的情况下,调度服务器确定出接入服务器和交换服务器之后,还需要基于级联机制,确定接入服务器的使用资源是否达到阈值;在接入服务器的使用资源没有达到阈值的情况下,调度服务器基于交换服务器和接入服务器,生成媒体转发路由。在接入服务器的使用资源达到阈值的情况下,调度服务器需要重新确定交换服务器和接入服务器,从而能够均衡服务器集群中的负载,进而提高媒体流的转发效率。
请参考图6,图6是本申请实施例提供的一种基于WebRTC的媒体服务器调度装置的结构框图。该基于WebRTC的媒体服务器调度装置可以通过软件、硬件或者两者的结合实现成为处理器的全部或一部分。该装置包括:
接收模块601,用于接收第二终端的接入请求,接入请求用于请求拉取第一终端分享的媒体流;
确定模块602,用于从多个服务器集群确定目标服务器集群,从目标服务器集群中确定交换服务器和接入服务器;
生成模块603,用于基于交换服务器和接入服务器,生成媒体转发路由;
推送模块604,用于基于媒体转发路由,将第一终端分享的媒体流推送至第二终端;
交换服务器用于在多个服务器集群之间进行媒体流的转发,接入服务器用于在服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流。
在一种可能的实现方式中,确定模块602,用于基于第一过滤条件信息,从目标服务器集群中过滤不满足条件的媒体服务器,得到多个第一媒体服务器;基于多个第一性能指标,确定多个第一媒体服务器的性能参数值,基于多个第一媒体服务器的性能参数值,将多个第一媒体服务器中性能参数值最大的媒体服务器作为交换服务器。
在另一种可能的实现方式中,第一过滤条件信息包括剩余磁盘大小、剩余网络带宽大小、剩余内存大小、已负载音频流数量、已负载视频流数量、与上次心跳时间的时间差、跨集群能力信息、交换服务器黑名单和接入服务器白名单中的至少一项;
确定模块602,用于执行如下至少一个步骤:
过滤目标服务器集群中剩余磁盘大小小于第一预设磁盘值的媒体服务器;
过滤目标服务器集群中剩余网络带宽大小小于第一预设带宽值的媒体服务器;
过滤目标服务器集群中剩余内存大小小于第一预设内存值的媒体服务器;
过滤目标服务器集群中已负载音频流数量大于第一预设数量的媒体服务器;
过滤目标服务器集群中已负载视频流数量大于第二预设数量的媒体服务器;
过滤目标服务器集群中跨集群能力信息用于表示不可跨集群的媒体服务器;
过滤目标服务器集群中服务器标识在交换服务器黑名单中的媒体服务器;
过滤目标服务器集群中服务器标识在接入服务器黑名单中的媒体服务器。
在另一种可能的实现方式中,多个第一性能指标包括中央处理器CPU使用率、内存使用率、磁盘使用率、网络带宽使用率、第一时延和第二时延中的多个,第一时延为到同一服务器集群的第三预设数量的其他媒体服务器的平均时延,第二时延为到其他服务器集群的第四预设数量的媒体服务器的平均时延;
确定模块602,用于分别基于第一媒体服务器的CPU使用率、内存使用率、磁盘使用率、网络带宽使用率、第一时延和第二时延中的多个,确定第一媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率、第一时延对应的第一效率和第二时延对应的第二效率中的多个,对第一媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率、第一效率和第二效率中的多个进行加权求和,得到第一媒体服务器的性能参数值。
在另一种可能的实现方式中,确定模块602,用于基于第二过滤条件信息,从目标服务器集群中过滤不满足条件的媒体服务器,得到多个第二媒体服务器;基于多个第二性能指标,确定多个第二媒体服务器的性能参数值,基于多个第二媒体服务器的性能参数值,将多个第二媒体服务器中性能参数值最大的媒体服务器作为接入服务器。
在另一种可能的实现方式中,第二过滤条件信息包括剩余磁盘大小、剩余网络带宽大小、剩余内存大小、已负载音频流数量、已负载视频流数量、与上次心跳时间的时间差、接入服务器黑名单和交换服务器白名单中的至少一项;
确定模块602,还用于执行如下至少一个步骤:
过滤目标服务器集群中剩余磁盘大小小于第二预设磁盘值的媒体服务器;
过滤目标服务器集群中剩余网络带宽大小小于第二预设带宽值的媒体服务器;
过滤目标服务器集群中剩余内存大小小于第二预设内存值的媒体服务器;
过滤目标服务器集群中已负载音频流数量大于第五预设数量的媒体服务器;
过滤目标服务器集群中已负载视频流数量大于第六预设数量的媒体服务器;
过滤目标服务器集群中服务器标识在交换服务器黑名单中的媒体服务器;
过滤目标服务器集群中服务器标识在接入服务器黑名单中的媒体服务器。
在另一种可能的实现方式中,多个第二性能指标包括中央处理器CPU使用率、内存使用率、磁盘使用率、网络带宽使用率和第三时延中的多个,第三时延为到同一服务器集群的第七预设数量的其他媒体服务器的平均时延;
确定模块602,用于分别基于第二媒体服务器的CPU使用率、内存使用率、磁盘使用率、网络带宽使用率和第三时延中的多个,确定第二媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率和第三时延对应的第三效率中的多个,对第二媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率和第三时延对应的第三效率中的多个进行加权求和,得到第二媒体服务器的性能参数值。
在另一种可能的实现方式中,多个服务器集群形成第一树形拓扑;
生成模块603,用于确定目标服务器集群在第一树形拓扑中的角色信息,基于角色信息、交换服务器和接入服务器,生成媒体转发路由。
在另一种可能的实现方式中,生成模块603,用于在接入服务器的使用资源没有达到阈值的情况下,基于交换服务器和接入服务器,生成媒体转发路由;
多个服务器集群形成第一树形拓扑,目标服务器集群包括的多个媒体服务器形成第二树形拓扑;生成模块603,还用于在接入服务器的使用资源达到阈值的情况下,基于第一树形拓扑和第二树形拓扑,确定目标根节点,从目标节点开始,确定资源使用没有达到阈值的第一节点,从第一节点的子节点中确定第二节点,将第一节点对应的服务器作为交换服务器,将第二节点对应的服务器作为接入服务器,基于交换服务器和接入服务器,生成媒体转发路由。
在本申请实施例中,由于将WebRTC包括的媒体服务器划分成了多个服务器集群,也即这是一层网络,将同一个服务器集群中的服务器按照角色划分成了交换服务器和接入服务器,也即这又是一层网络,从而实现将WebRTC中的媒体服务器划分成了两层网络,这样就能够实现分网络调度,减少了确定媒体转发路由的参与媒体服务器的数量,提高了调度效率。
需要说明的是:上述实施例提供的基于WebRTC的媒体服务器调度方法在基于WebRTC的媒体服务器调度时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于WebRTC的媒体服务器调度装置与基于WebRTC的媒体服务器调度方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参见图7,图7是本申请实施例提供的一种调度服务器的结构框图,该调度服务器700可因配置或性能不同而产生比较大的差异,可以包括处理器(central processingunits,CPU)701和存储器702,其中,该存储器702中存储有至少一条程序代码,该至少一条程序代码由该处理器701加载并执行以实现上述各个方法实施例提供的基于WebRTC的媒体服务器调度方法。当然,该调度服务器700还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该调度服务器700还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条程序代码,该至少一条程序代码由该处理器加载并执行以实现如上各个实施例示出的基于WebRTC的媒体服务器调度方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条程序代码,该至少一条程序代码由该处理器加载并执行以实现如上各个实施例示出的基于WebRTC的媒体服务器调度方法。
在一些实施例中,本申请实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅是为了便于本领域的技术人员理解本申请的技术方案,并不用以限制本申请。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种基于WebRTC的媒体服务器调度系统,其特征在于,所述系统包括:用于分享媒体流的第一终端、调度服务器、多个服务器集群和用于拉取媒体流的第二终端,所述多个服务器集群形成第一树形拓扑;
所述调度服务器分别与所述多个服务器集群连接,所述第一终端直接或者间接与所述多个服务器集群连接;
所述第二终端,用于向所述调度服务器发送接入请求,所述接入请求用于请求拉取媒体流;
所述调度服务器,用于响应于所述接入请求,从所述多个服务器集群确定目标服务器集群,从所述目标服务器集群中确定交换服务器和接入服务器,确定所述目标服务器集群在所述第一树形拓扑中的角色信息,基于所述角色信息、所述交换服务器和所述接入服务器,生成媒体转发路由,基于所述媒体转发路由,将所述第一终端分享的媒体流推送至所述第二终端;
在所述角色信息用于表示所述目标服务器集群在所述第一树形拓扑中是根节点的情况下,所述调度服务器,用于确定所述媒体转发路由为所述第一终端-所述交换服务器-所述接入服务器-所述第二终端;
在所述角色信息用于表示所述目标服务器集群在所述第一树形拓扑中是非根节点的情况下,所述调度服务器,用于在所述多个服务器集群中确定第一服务器集群,在所述第一服务器集群中确定第四媒体服务器,确定所述媒体转发路由为所述第一终端-所述第四媒体服务器-所述交换服务器-所述接入服务器-所述第二终端;所述第一服务器集群为连接所述目标服务器集群和所述第一终端的服务器集群,所述第四媒体服务器为连接所述交换服务器和所述第一终端的服务器;
所述交换服务器用于在所述多个服务器集群之间进行媒体流的转发,所述接入服务器用于在所述服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流。
2.根据权利要求1所述的系统,其特征在于,
所述调度服务器,用于基于第一过滤条件信息,从所述目标服务器集群中过滤不满足条件的媒体服务器,得到多个第一媒体服务器;基于多个第一性能指标,确定所述多个第一媒体服务器的性能参数值,基于所述多个第一媒体服务器的性能参数值,将所述多个第一媒体服务器中性能参数值最大的媒体服务器作为所述交换服务器。
3.根据权利要求2所述的系统,其特征在于,
所述第一过滤条件信息包括剩余磁盘大小、剩余网络带宽大小、剩余内存大小、已负载音频流数量、已负载视频流数量、与上次心跳时间的时间差、跨集群能力信息、交换服务器黑名单和接入服务器白名单中的至少一项;
所述调度服务器,还用于执行如下至少一个步骤:
过滤所述目标服务器集群中剩余磁盘大小小于第一预设磁盘值的媒体服务器;
过滤所述目标服务器集群中剩余网络带宽大小小于第一预设带宽值的媒体服务器;
过滤所述目标服务器集群中剩余内存大小小于第一预设内存值的媒体服务器;
过滤所述目标服务器集群中已负载音频流数量大于第一预设数量的媒体服务器;
过滤所述目标服务器集群中已负载视频流数量大于第二预设数量的媒体服务器;
过滤所述目标服务器集群中所述跨集群能力信息用于表示不可跨集群的媒体服务器;
过滤所述目标服务器集群中服务器标识在所述交换服务器黑名单中的媒体服务器;
过滤所述目标服务器集群中服务器标识在所述接入服务器黑名单中的媒体服务器。
4.根据权利要求2所述的系统,其特征在于,所述多个第一性能指标包括中央处理器CPU使用率、内存使用率、磁盘使用率、网络带宽使用率、第一时延和第二时延中的多个,所述第一时延为到同一服务器集群的第三预设数量的其他媒体服务器的平均时延,所述第二时延为到其他服务器集群的第四预设数量的媒体服务器的平均时延;
所述调度服务器,用于分别基于所述第一媒体服务器的CPU使用率、内存使用率、磁盘使用率、网络带宽使用率、第一时延和第二时延中的多个,确定所述第一媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率、所述第一时延对应的第一效率和所述第二时延对应的第二效率中的多个,对所述第一媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率、第一效率和第二效率中的多个进行加权求和,得到所述第一媒体服务器的性能参数值。
5.根据权利要求1所述的系统,其特征在于,
所述调度服务器,用于基于第二过滤条件信息,从所述目标服务器集群中过滤不满足条件的媒体服务器,得到多个第二媒体服务器;基于多个第二性能指标,确定所述多个第二媒体服务器的性能参数值,基于所述多个第二媒体服务器的性能参数值,将所述多个第二媒体服务器中性能参数值最大的媒体服务器作为所述接入服务器。
6.根据权利要求5所述的系统,其特征在于,所述第二过滤条件信息包括剩余磁盘大小、剩余网络带宽大小、剩余内存大小、已负载音频流数量、已负载视频流数量、与上次心跳时间的时间差、接入服务器黑名单和交换服务器白名单中的至少一项;
所述调度服务器,还用于执行如下至少一个步骤:
过滤所述目标服务器集群中剩余磁盘大小小于第二预设磁盘值的媒体服务器;
过滤所述目标服务器集群中剩余网络带宽大小小于第二预设带宽值的媒体服务器;
过滤所述目标服务器集群中剩余内存大小小于第二预设内存值的媒体服务器;
过滤所述目标服务器集群中已负载音频流数量大于第五预设数量的媒体服务器;
过滤所述目标服务器集群中已负载视频流数量大于第六预设数量的媒体服务器;
过滤所述目标服务器集群中服务器标识在所述交换服务器黑名单中的媒体服务器;
过滤所述目标服务器集群中服务器标识在所述接入服务器黑名单中的媒体服务器。
7.根据权利要求5所述的系统,其特征在于,所述多个第二性能指标包括中央处理器CPU使用率、内存使用率、磁盘使用率、网络带宽使用率和第三时延中的多个,所述第三时延为到同一服务器集群的第七预设数量的其他媒体服务器的平均时延;
所述调度服务器,用于分别基于所述第二媒体服务器的CPU使用率、内存使用率、磁盘使用率、网络带宽使用率和第三时延中的多个,确定所述第二媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率和第三时延对应的第三效率中的多个,对所述第二媒体服务器的CPU剩余利用率、内存剩余利用率、磁盘剩余利用率、网络带宽剩余利用率和第三时延对应的第三效率中的多个进行加权求和,得到所述第二媒体服务器的性能参数值。
8.根据权利要求1-7任一项所述的系统,其特征在于,
所述调度服务器,用于在所述接入服务器的使用资源没有达到阈值的情况下,基于所述交换服务器和所述接入服务器,生成媒体转发路由;
所述目标服务器集群包括的多个媒体服务器形成第二树形拓扑;所述调度服务器,还用于在所述接入服务器的使用资源达到所述阈值的情况下,基于所述第一树形拓扑和所述第二树形拓扑,确定目标根节点,从所述目标根节点开始,确定资源使用没有达到所述阈值的第一节点,从所述第一节点的子节点中确定第二节点,将所述第一节点对应的服务器作为所述交换服务器,将所述第二节点对应的服务器作为所述接入服务器,基于所述交换服务器和所述接入服务器,生成所述媒体转发路由。
9.一种基于WebRTC的媒体服务器调度方法,其特征在于,所述方法包括:
接收第二终端的接入请求,所述接入请求用于请求拉取第一终端分享的媒体流;
从多个服务器集群确定目标服务器集群,从所述目标服务器集群中确定交换服务器和接入服务器,所述多个服务器集群形成第一树形拓扑;
基于所述交换服务器和所述接入服务器,生成媒体转发路由;
基于所述媒体转发路由,将所述第一终端分享的媒体流推送至所述第二终端;
所述交换服务器用于在所述多个服务器集群之间进行媒体流的转发,所述接入服务器用于在所述服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流;
所述基于所述交换服务器和所述接入服务器,生成媒体转发路由,包括:
确定所述目标服务器集群在所述第一树形拓扑中的角色信息;
在所述角色信息用于表示所述目标服务器集群在所述第一树形拓扑中是根节点的情况下,调度服务器,用于确定所述媒体转发路由为所述第一终端-所述交换服务器-所述接入服务器-所述第二终端;
在所述角色信息用于表示所述目标服务器集群在所述第一树形拓扑中是非根节点的情况下,所述调度服务器,用于在所述多个服务器集群中确定第一服务器集群,在所述第一服务器集群中确定第四媒体服务器,确定所述媒体转发路由为所述第一终端-所述第四媒体服务器-所述交换服务器-所述接入服务器-所述第二终端;所述第一服务器集群为连接所述目标服务器集群和所述第一终端的服务器集群,所述第四媒体服务器为连接所述交换服务器和所述第一终端的服务器。
10.根据权利要求9所述的方法,其特征在于,所述基于所述交换服务器和所述接入服务器,生成媒体转发路由,包括:
在所述接入服务器的使用资源没有达到阈值的情况下,基于所述交换服务器和所述接入服务器,生成媒体转发路由;
所述多个服务器集群形成第一树形拓扑,所述目标服务器集群包括的多个媒体服务器形成第二树形拓扑;在所述接入服务器的使用资源达到所述阈值的情况下,基于所述第一树形拓扑和所述第二树形拓扑,确定目标根节点,从所述目标根节点开始,确定资源使用没有达到所述阈值的第一节点,从所述第一节点的子节点中确定第二节点,将所述第一节点对应的服务器作为所述交换服务器,将所述第二节点对应的服务器作为所述接入服务器,基于所述交换服务器和所述接入服务器,生成所述媒体转发路由。
11.一种基于WebRTC的媒体服务器调度装置,其特征在于,所述装置包括:
接收模块,用于接收第二终端的接入请求,所述接入请求用于请求拉取第一终端分享的媒体流;
确定模块,用于从多个服务器集群确定目标服务器集群,从所述目标服务器集群中确定交换服务器和接入服务器,所述多个服务器集群形成第一树形拓扑;
生成模块,用于基于所述交换服务器和所述接入服务器,生成媒体转发路由;
推送模块,用于基于所述媒体转发路由,将所述第一终端分享的媒体流推送至所述第二终端;
所述交换服务器用于在所述多个服务器集群之间进行媒体流的转发,所述接入服务器用于在所述服务器集群内进行媒体流的转发和为接入的第二终端推送媒体流;
所述生成模块,用于确定所述目标服务器集群在所述第一树形拓扑中的角色信息;
在所述角色信息用于表示所述目标服务器集群在所述第一树形拓扑中是根节点的情况下,调度服务器,用于确定所述媒体转发路由为所述第一终端-所述交换服务器-所述接入服务器-所述第二终端;
在所述角色信息用于表示所述目标服务器集群在所述第一树形拓扑中是非根节点的情况下,所述调度服务器,用于在所述多个服务器集群中确定第一服务器集群,在所述第一服务器集群中确定第四媒体服务器,确定所述媒体转发路由为所述第一终端-所述第四媒体服务器-所述交换服务器-所述接入服务器-所述第二终端;所述第一服务器集群为连接所述目标服务器集群和所述第一终端的服务器集群,所述第四媒体服务器为连接所述交换服务器和所述第一终端的服务器。
12.一种调度服务器,其特征在于,所述调度服务器包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求9至10任一所述的基于WebRTC的媒体服务器调度方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求9至10任一所述的基于WebRTC的媒体服务器调度方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求9至10任一所述的基于WebRTC的媒体服务器调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210686045.3A CN115022411B (zh) | 2022-06-16 | 基于WebRTC的媒体服务器调度系统、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210686045.3A CN115022411B (zh) | 2022-06-16 | 基于WebRTC的媒体服务器调度系统、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115022411A CN115022411A (zh) | 2022-09-06 |
CN115022411B true CN115022411B (zh) | 2024-06-04 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822243A (zh) * | 2020-12-30 | 2021-05-18 | 北京大米科技有限公司 | 推流服务器的选择方法、装置、存储介质及电子设备 |
CN114615272A (zh) * | 2022-01-29 | 2022-06-10 | 杭州华橙软件技术有限公司 | 媒体数据转发服务器调度方法和系统 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822243A (zh) * | 2020-12-30 | 2021-05-18 | 北京大米科技有限公司 | 推流服务器的选择方法、装置、存储介质及电子设备 |
CN114615272A (zh) * | 2022-01-29 | 2022-06-10 | 杭州华橙软件技术有限公司 | 媒体数据转发服务器调度方法和系统 |
Non-Patent Citations (1)
Title |
---|
一种基于网格的跨集群VOD系统及其仿真实现;李翠莲, 马允胜, 任久春;复旦学报(自然科学版)(01);第103-109页 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Adaptive and fault-tolerant data processing in healthcare IoT based on fog computing | |
TWI727467B (zh) | 聯盟鏈的可信度驗證方法、系統、裝置及設備 | |
JP7174719B2 (ja) | ブロックチェーンネットワークにおける効率的な伝播のための確率的リレー | |
WO2022222755A1 (zh) | 业务处理方法、装置及存储介质 | |
CN109831524B (zh) | 一种负载均衡处理方法及装置 | |
CN110225146B (zh) | 内外网映射方法、装置、电子设备、介质及视频会议系统 | |
CN112465359A (zh) | 算力调用方法和装置 | |
CN110971533B (zh) | 用于数据通信的方法、服务器装置、客户端装置和介质 | |
CN115022411B (zh) | 基于WebRTC的媒体服务器调度系统、方法及装置 | |
CN112073215B (zh) | 一种实现应用的方法及业务控制器 | |
US11595471B1 (en) | Method and system for electing a master in a cloud based distributed system using a serverless framework | |
WO2016095510A1 (zh) | 一种路径选择方法、设备及系统 | |
CN115022411A (zh) | 基于WebRTC的媒体服务器调度系统、方法及装置 | |
CN112738153B (zh) | 业务系统中的网关选择方法、系统、装置、服务器及介质 | |
CN114884880A (zh) | 数据传输方法以及系统 | |
CN107707383B (zh) | 放通处理方法、装置、第一网元及第二网元 | |
WO2024093264A1 (zh) | 音频检测方法、装置及设备 | |
WO2021189253A1 (zh) | 数据传输方法及装置 | |
CN110740151A (zh) | 一种微服务调整方法、装置、服务器及计算机存储介质 | |
JP6295675B2 (ja) | 音楽セッションシステム、方法及び端末装置 | |
CN115883315B (zh) | 区块链网络中节点加入方法、装置、电子设备和存储介质 | |
CN115733625A (zh) | 分布式信息松耦合分发方法、装置、电子设备及存储介质 | |
CN118069413A (zh) | 灾备数据的存储方法、装置、存储介质以及电子设备 | |
CN115378959A (zh) | 数据发送方法、装置、电子设备和存储介质 | |
CN117479333A (zh) | 一种基于业务量的接入方法、装置、终端设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |