CN117750049A - 推流地址的调度方法及装置 - Google Patents

推流地址的调度方法及装置 Download PDF

Info

Publication number
CN117750049A
CN117750049A CN202311761213.1A CN202311761213A CN117750049A CN 117750049 A CN117750049 A CN 117750049A CN 202311761213 A CN202311761213 A CN 202311761213A CN 117750049 A CN117750049 A CN 117750049A
Authority
CN
China
Prior art keywords
target
node
push
domain name
address
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.)
Pending
Application number
CN202311761213.1A
Other languages
English (en)
Inventor
陈腾启
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202311761213.1A priority Critical patent/CN117750049A/zh
Publication of CN117750049A publication Critical patent/CN117750049A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种推流地址的调度方法,用于服务端,该推流地址的调度方法包括:响应目标主播端的开播请求,向目标主播端返回目标域名。响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP。将所述目标IP发送给目标主播端,以使目标主播端根据所述目标IP进行直播推流。本申请实施例的技术方案可以获取到精准可用的目标IP。

Description

推流地址的调度方法及装置
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种推流地址的调度方法、装置、计算机设备、计算机可读存储介质。
背景技术
直播是一种实时的多媒体传输方式。在直播中,内容提供者可以实时将音频和视频流传输到在线平台,观众可以即时观看、听到。在开始进行直播时,需要获取到相应的推流地址以对直播进行推流,通过推流地址将实时媒体流传输到观众端。
然而,在当前的直播,无法实时精确地控制返回至主播端的推流地址,影响直播推流的性能。
需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
发明内容
本申请实施例提供一种推流地址的调度方法、装置、计算机设备、计算机可读存储介质,以解决或缓解上面提出的一项或更多项技术问题。
本申请实施例的一个方面提供了一种推流地址的调度方法,所述方法用于服务端,所述方法包括:
响应目标主播端的开播请求,向目标主播端返回目标域名;
响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP;
将所述目标IP发送给目标主播端,以使目标主播端根据所述目标IP进行直播推流。
可选地,所述方法还包括:
实时监测用于提供推流服务的多个节点的运行状态;
根据每个节点的运行状态,实时更新节点列表;其中,所述节点列表包括一个或多个节点,所述节点列表中的每个节点的运行状态均为可用状态;
对应地,获取与所述目标域名关联的目标节点的目标IP包括:根据所述节点列表确定目标节点,以获取目标IP。
可选地,根据所述节点列表确定目标节点,以获取目标IP,包括:
根据所述推流请求,获取目标主播端的IP地址以及直播的业务属性;
根据所述IP地址以及所述业务属性,从所述节点列表中确定所述目标节点,以获取目标IP。
可选地,每个节点设置有对应的权重值;对应地,根据所述IP地址以及所述业务属性,从所述节点列表中确定所述目标节点,包括:
根据所述IP地址以及业务属性,确定预设节点组,所述预设节点组中包括一个或多个节点;
根据所述预设节点组中的每个节点的预设权重,从所述预设节点组中确定目标节点。
可选地,根据所述IP地址以及业务属性,确定预设节点组,包括:
根据所述IP地址,获取所述目标主播端的互联网服务提供商信息和/或地理区域信息;
基于所述互联网服务提供商信息和/或地理区域信息,确定一个或多个节点,以形成预设节点组。
可选地,业务属性包括主播属性和/或数据流量属性;对应地,根据所述I P地址以及业务属性,确定预设节点组,包括:
根据所述主播属性和/或数据流量属性,获取预设目标类型的一个或多个节点,以形成预设节点组。
可选地,响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP,包括:
在接收所述推流请求的情况下,获取用于提供推流服务的多个节点的运行状态;
根据多个节点的运行状态,从所述多个节点中确定目标节点,以获取所述目标IP。
本申请实施例的另一个方面提供了一种推流地址的调度装置,所述装置包括:
返回模块,用于响应目标主播端的开播请求,向目标主播端返回目标域名;
获取模块,用于响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP;
发送模块,用于将所述目标IP发送给目标主播端,以使目标主播端根据所述目标IP进行直播推流。
本申请实施例的另一个方面提供了一种计算机设备,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;
其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
本申请实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的方法。
本申请实施例采用上述技术方案可以包括如下优势:根据目标主播端的开播请求获取目标域名,并将目标域名返回给目标主播端,以使目标主播端发送携带有目标域名的推流请求。在接收到该推流请求之后,获取与目标域名关联的目标节点的目标IP,并将该目标IP作为目标主播端的推流地址。可知,本实施例实时地根据目标域名获取到精准可用的目标IP(即推流地址),可以提高推流地址调度的精准度以及准确性,进而提高直播推流的性能和效率。此外,实时地根据主播端的域名获取到精准可用的目标IP,可以避免出现因DNS缓存以及DNS污染而导致的问题,增加安全性。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示意性示出了根据本申请实施例一的推流地址的调度方法的运行环境图;
图2示意性示出了根据本申请实施例一的推流地址的调度方法的流程图;
图3示意性示出了根据本申请实施例一推流地址的调度方法的新增流程图;
图4示意性示出了本申请实施例的推流地址的调度方法的一个应用示例流程图;
图5示意性示出了图3中步骤S304的子步骤流程图;
图6示意性示出了图5中步骤S502的子步骤流程图;
图7示意性示出了图6中步骤S600的子步骤流程图;
图8示意性示出了图2中步骤S202的子步骤流程图;
图9示意性示出了本申请实施例的推流地址的调度方法的一个应用示例流程图;
图10示意性示出了根据本申请实施例二的推流地址的调度方法的流程图;
图11示意性示出了根据本申请实施例二的推流地址的调度方法的新增流程图;
图12示意性示出了根据本申请实施例二的推流地址的调度方法的新增流程图;
图13示意性示出了根据本申请实施例三的推流地址的调度装置的框图;及
图14示意性示出了根据本申请实施例五中的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
首先,提供本申请涉及的术语解释:
DNS(Domain Name System,域名系统):用来实现域名到IP地址的解析。
域名:由一串用点分隔的名字组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时对计算机进行定位标识。
IP(Internet Protocol Address)地址:IP协议提供的一种统一的地址格式,IP地址可以为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
推流:将音视频内容从源端(如摄像头、麦克风和编码设备)上传到流媒体服务器的过程。
推流地址:用于将音视频数据上传到流媒体服务器的地址或链接。推流地址可以用于实时传输音视频内容,如视频会议、游戏直播等。
HTTP(Hypertext Transfer Protocol):请求-响应协议,用于在互联网上传输超文本文档(如网页)的应用层协议。HTTP协议可用于在客户端(如We b浏览器)和服务器之间传递数据。
其次,为方便本领域技术人员理解本申请实施例提供的技术方案,下面对相关技术进行说明:
大部分直播技术都是在DNS服务器内直接进行域名转换以得到推流地址。主播具体推流到哪些节点完全取决于主播DNS服务器的解析结果。主播具体推流到哪些节点还会受到DNS缓存以及DNS污染的影响,不具备灵活控制推流节点的能力。综上所述,上述方式虽然可以给主播提供一个基本可用的推流地址,但是在实践过程中,发现有如下问题:(1)DNS服务器缓存不能灵活感知节点的上下线;(2)给主播的结果不能精准控制;(3)不能在调度的时候添加一些业务控制逻辑。
为此,本申请实施例提供了一种推流地址的调度技术方案。在该技术方案中,(1)可以通过HTTP协议,实时地将主播的域名调度结果换取为具体的I P地址,从而精准控制节点的调度,可以避免DNS缓存和DNS污染的问题,并解决节点上下线延迟的问题,从而实时精准地控制节点的上下线。此外,也可以增加各类DNS解析无法支持的调度业务逻辑规则。(2)通过增加一步域名到节点IP的HTTP请求交互,可以实现上行节点的精准控制和业务调度。具体见后文。
最后,为了方便理解,下面提供一个示例性运行环境。
图1示意性示出了根据本申请实施例的环境应用示意图。
所述环境示意图可以包括服务平台2、主播端(4A、4B、…、4M)、观众端(6A、6B、…、6N)。在直播等场景下,主播端(4A、4B、…、4M)可以登录服务平台2,并通过服务平台2将直播数据实时推送至观众端(6A、6B、…、6N)。
服务平台2,可以提供直播间服务,其可以是单个服务器、服务器集群或云计算服务中心。服务平台2可以包括域名通用调度系统、IP实时调度系统和节点服务发现系统。其中,所述域名通用调度系统可以用于为主播端确定对应的域名,并将域名返回给主播端;所述IP实时调度系统可以用于实时的根据主播发送的域名获取具体的节点IP地址;所述节点服务发现系统可以用于监测并管理直播平台上所有的节点,以提供实时可用的节点。
主播端(4A、4B、…、4M),用于实时生成直播数据,并进行直播数据的推流操作。所述直播数据可以包括音频数据或视频数据。主播端可以是智能手机、平板电脑、膝上笔记本电脑、车载终端等电子设备。当然,主播端可以是服务平台2内的虚拟计算实例。
观众端(6A、6B、…、6N),可以被配置为实时接收主播端的直播数据。观众端(6A、6B、…、6N)可以是任意类型的计算设备,诸如智能手机、平板设备、膝上型计算机、智能电视、车载终端等。观众端(6A、6B、…、6N)可以内置浏览器或专门程序,通过浏览器或专门程序接收所述直播数据以向用户输出内容。所述内容可以包括视频、音频、评论、文本数据和/或类似物。
观众端(6A、6B、…、6N)可以包括播放器8。播放器8向用户输出(如,展示,呈现)内容。其中所述内容可以包括视频,音频,评论,文本数据和/或类似物。观众端(6A、6B、…、6N)可以包括接口,该接口可以包括输入元件(触摸屏)。例如,输入元件可以被配置为接收用户指令,所述用户指令可以使观众端(6A、6B、…、6N)执行各类操作,如发送弹幕、输入评论、赠送礼物等。
主播端(4A、4B、…、4M)、观众端(6A、6B、…、6N)和服务平台2可以通过网络连接。网络可以包括各种网络设备,例如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙和/或代理设备等。网络可以包括物理链路,例如同轴电缆链路、双绞线电缆链路、光纤链路及其组合和/或类似物。网络可以包括无线链路,例如蜂窝链路、卫星链路、Wi-Fi链路和/或类似物。
需要说明的是,图中的主播端和观众端的数量仅是示意性的,不用于限制本申请的专利保护范围。根据实际情况,可以具有任意数目的主播端和观众端。
下面以服务平台2为执行主体,通过多个实施例介绍本申请的技术方案。须知,这些实施例可以由多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。
实施例一
图2示意性示出了根据本申请实施例一的推流地址的调度方法的流程图。
如图2所示,所述推流地址的调度方法用于服务端,该推流地址的调度方法可以包括步骤S200~S204,其中:
步骤S200,响应目标主播端的开播请求,向目标主播端返回目标域名。
步骤S202,响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP。
步骤S204,将所述目标IP发送给目标主播端,以使目标主播端根据所述目标IP进行直播推流。
本实施例提供的推流地址的调度方法,根据目标主播端的开播请求获取目标域名,并将目标域名返回给目标主播端,以使目标主播端发送携带有目标域名的推流请求。在接收到该推流请求之后,获取与目标域名关联的目标节点的目标IP,并将该目标IP作为目标主播端的推流地址。可知,本实施例实时地根据目标域名获取到精准可用的目标IP(即推流地址),可以提高推流地址调度的精准度以及准确性,进而提高直播推流的效率。此外,实时地根据主播端的域名获取到精准可用的目标IP,可以避免出现因DNS缓存以及DNS污染而导致的问题,增加安全性。
以下结合图2,对步骤S200~S204中各个步骤以及可选的其他步骤进行详细阐述。
步骤S200,响应目标主播端的开播请求,向目标主播端返回目标域名。
直播是一种通过互联网实时传输音频和视频内容的技术,在直播中,内容创作者(主播端)使用摄像头、麦克风或其他设备将音视频信号传输到互联网上,观众可以通过各种终端设备(如计算机、智能手机、智能电视等)实时观看直播内容。
开播请求可以是主播端在直播平台上发出的开始直播活动的请求。
域名可以用于在互联网上标识和定位特定资源(如网站、服务器或网络服务)的可读的字符序列。域名采用分层结构,从右到左逐级分隔,从右至左依次可以为顶级域名(如.com)、域名(如google、baidu等)、主机名(如ww w)。
示例性地,若主播端1要开启直播,可以先向服务端发送一个开播请求,服务端接收到该开播请求之后,服务端会根据该开播请求返回对应的域名。
步骤S202,响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP。
目标节点可以用于提供推流服务,例如:(1)接收视频流,例如接收主播端上的摄像头或其他视频设备生成的实时视频流。(2)接收到实时视频流之后,目标节点可以将实时视频流传输到其他地方(如观众端),以便观众端可以观看实时的视频内容。需要说明的是,为了使获取到的目标节点有与该推流请求对应的资源,可以在推流请求中携带相应的目标域名。由于目标域名可以用来识别和定位特定资源,因此在确定目标节点时,根据推流请求中的目标域名,可以获取到具有与所述推流请求对应资源的节点,进而可以正确地获取到目标节点以进行推流。
目标IP(Internet Protocol)是指目标节点的IP,目标IP可以用来在互联网上定位和识别该目标节点。所述目标IP可以是一个由数字和句点(.)组成的字符串,所述目标IP可以为以下两种形式:(1)IPv4地址:32位的二进制数字,可以以点分十进制的形式表示,例如,192.168.1.1。(2)IPv6地址:一组128位的十六进制数字,用冒号分隔,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
示例性地,目标主播端接收到目标域名之后,会发送携带有目标域名的推流请求至服务端。服务端接收到该推流请求之后,会获取到与目标域名关联的目标节点,进而根据该目标节点获取对应的目标IP,所述目标IP即为目标主播端的推流地址。
目标IP可以随机选择得到,也可以根据预设规则选择得到。用于推流的多个节点中,可能会有些节点已经无法再使用,如,有些节点可能已经发生了故障,或者有些节点的资源利用率(如CPU、内存等资源)过高等影响到推流效果。因此,为了选择到可用的节点的IP对目标主播端提供推流服务,可以提供以下可选的实施例。
在可选的实施例中,如图3、4所示,所述方法还包括:
步骤S300,实时监测用于提供推流服务的多个节点的运行状态。
步骤S302,根据每个节点的运行状态,实时更新节点列表。其中,所述节点列表包括一个或多个节点,所述节点列表中的每个节点的运行状态均为可用状态。
步骤S304,对应地,获取与所述目标域名关联的目标节点的目标IP包括:根据所述节点列表确定目标节点,以获取目标IP。
所述运行状态可以包括节点的负载和健康状态等。其中:节点的负载可以指节点正在处理的工作或任务数量,以及其资源利用率的程度。对于节点而言,高负载会导致节点性能下降,进而使得节点不可用或推流效果无法达到预期。节点的健康状态可以为节点的运行状况,节点的健康状态可用通过相应的指标和因素来进行评估,如:(1)在线状态:节点是否在线,即是否可访问和响应网络请求。离线或不可用的节点被认为是不健康或不可用的。(2)响应时间:节点的响应时间,包括网络延迟、数据传输速度等。响应时间过长的节点可以被认为是不健康或不可用的。(3)错误率:节点在处理请求或任务时发生错误的频率。高错误率可能表明该节点存在问题,可能处于不健康状态或不可用状态。在一些实施例中,可以通过探活、心跳、质量分析等方式去获取各个节点的健康状况。
然后,根据每个节点的运行状态,实时更新节点列表。所述节点列表中的每个节点的运行状态均为可用状态。在所述运行状态包括健康状态以及负载状态,可用状态的节点是指处于健康状态且负载小于预设阈值的节点。所述预设阈值可用根据实际情况进行选择,如可以为50%。示例性地,在实时更新节点列表时,可以从用于提供推流服务的多个节点中选出处于健康状态的且节点负载小于50%的节点。
在上述可选的实施例中,根据节点的运行状态实时更新节点列表,即实时精准地控制节点列表中节点的上下线,使节点列表中的节点都是可用的节点,保证节点调度的可用性,从而缓解因节点上下线延迟而导致获取到的推流节点不可用的情况。
需要说明的是,节点列表中可以包括多个节点,所述多个节点的性能可能不一致,为了选取到性能较好的节点供目标主播端进行推流,提供以下可选的实施例。
在可选的实施例中,如图5所示,所述步骤304可以包括:
步骤S500,根据所述推流请求,获取目标主播端的IP地址以及直播的业务属性。
步骤S502,根据所述IP地址以及所述业务属性,从所述节点列表中确定所述目标节点,以获取目标IP。
所述推流请求中可以包含目标主播端请求时的IP,即目标主播端的IP地址。示例性地,当主播端1想要在某个网站上进行直播推流时,主播端1可以通过相应的的设备(例如,计算机、智能手机或平板电脑)发送一个推流请求到服务端,该推流请求可以包含主播端1的IP地址,以及其他必要的信息,例如请求的资源的URL(统一资源定位符)。服务端根据所述推流请求,可以获取到主播端的IP地址。需要说明的是,可以根据目标主播端的IP地址去获取较优的目标节点,如选择与所述IP地址对应的地理位置信息距离最近的节点。
所述业务属性可以包括直播不同方面的属性,如应用属性(如是否需要高频截图)等。在示例性的应用中,如果直播1需要高频截图,则可以从节点列表中可以选取运行状态良好(如负载最小)的节点作为目标节点,以获取目标IP。
在上述可选的实施例中,根据IP地址以及业务属性,从节点列表中确定目标节点,使获取到的目标节点更加适配所述IP地址以及业务属性,从而提高推流节点(即目标节点)调度的精准性以及准确性,进而提高后续根据目标节点进行直播推流的效率。
根据IP地址以及业务属性从节点列表中确定节点时,仍然可能会获取到多个可用的节点,为了可以进一步的获取性能更优的节点,提供以下可选的实施例。
在可选的实施例中,每个节点设置有对应的权重值;如图6所示,所述步骤502可以包括:
步骤S600,根据所述IP地址以及业务属性,确定预设节点组,所述预设节点组中包括一个或多个节点。
步骤S602,根据所述预设节点组中的每个节点的预设权重,从所述预设节点组中确定目标节点。
每个节点的权重可以由后台人员根据实际情况来进行设定,也可以由系统根据节点的相关指标自行设定,如可以根据节点的硬件性能、网络带宽、地理位置、优先级等指标去设定每个节点的权重,在此不做限定。
在示例性的应用中,假设根据IP地址以及业务属性,可以确定一个预设节点组1,该预设节点组1包括3个节点,即节点1、节点2、节点3。假设节点1的权重为100,节点2的权重为100,节点3的权重为10,则根据上述3个节点的权重以及对应的随机算法,可以获取到每个节点对应的随机选择概率。即节点1的随机选择概率为10/21,节点1的随机选择概率为10/21,节点1的随机选择概率为1/21,根据各个节点的随机选择概率,从预设节点组中随机选择一个节点作为目标节点。
在上述可选的实施例中,根据所述预设节点组中的每个节点的预设权重,从所述预设节点组中确定目标节点,使得权重更大的节点选择作为目标节点的概率更大,从而有效地利用权重较大的节点的资源,减少资源的浪费。
在可选的实施例中,如图7所示,所述步骤600可以包括:
步骤S700,根据所述IP地址,获取所述目标主播端的互联网服务提供商信息和/或地理区域信息。
步骤S700,基于所述互联网服务提供商信息和/或地理区域信息,确定一个或多个节点,以形成预设节点组。
每个IP地址都与特定的ISP(Internet Service Provider,互联网服务提供商)相关联,因此,通过主播端的IP地址,可以知道主播端请求时的ISP。在示例性的应用中,所述ISP可以包括移动、电信、联通等,若根据IP地址获取到目标主播端的ISP为移动,则可以从节点列表中获取ISP也为移动的节点,如节点列表中有5个节点,节点1的ISP为移动、节点2的ISP为电信、节点3的ISP为移动、节点4的ISP为联通、节点5的ISP为移动,则可以筛选出ISP为移动的节点以形成预设节点组,因此,与目标主播端对应的预设节点组中可以包括节点1、节点3、节点5。
获取到IP地址之后,可以通过IP地址定位方法获取到目标主播端的地理区域信息,如国家、地区、城市等。根据目标主播端的地理区域信息,可以选择位置信息与目标主播端的地理区域信息相同的节点,如,可以选择与目标主播端处于同一省份的节点。
需要说明的是,可以根据ISP以及地理区域信息这两个方面共同确定预设节点组,如可以选择与目标主播端的ISP以及地理区域信息都相同的节点,以形成预设节点组。
在上述可选的实施例中,基于ISP和/或地理区域信息去确定预设节点组可以有以下好处:一方面,通过同一ISP的网络连接,可以提高主播端推流至节点时的数据传输速度。另一方面,基于地理区域信息,可以减小主播端与节点之间推流数据传输的距离,进而提高推流速度。
在可选的实施例中,业务属性包括主播属性和/或数据流量属性;所述步骤600还可以包括:根据所述主播属性和/或数据流量属性,获取预设目标类型的一个或多个节点,以形成预设节点组。
所述预设目标类型可以包括BGP(Border Gateway Protocol,边界网关协议)节点、ISP节点等,其中,所述BGP节点可以指运行BGP协议的节点,所述BGP协议是用于在互联网中进行路由选择和自治系统(AS)间路由信息交换的协议。
在示例性的应用中,若目标主播端(如4A)发出推流请求,通过所述推流请求获取目标主播端的主播属性。所述主播属性可以是指大小主播。大小主播可以根据主播流量的大小或者粉丝量的多少决定。举例而言,小主播可以为粉丝量小于一定阈值的主播、大主播可以为粉丝量大于一定阈值的主播。在主播属性为大主播的情况下,可以优先选择BGP节点作为目标主播端(如4A)的目标节点。
在示例性的应用中,若目标主播端(如4A)发出推流请求,通过所述推流请求获取目标主播端的数据流量属性,所述数据流量属性可以包括免流、非免流。若目标主播端为免流的情况下,可以优先选择BGP节点作为目标主播端(如4A)的目标节点。
需要说明的是,可以基于主播属性和数据流量属性这两个属性共同确定预设节点组,示例性的,若目标主播端为大主播且目标主播端的数据流量属性为免流,则可以优先选择BGP节点作为目标主播端的目标节点。
在上述可选的实施例中,根据主播属性和/或数据流量属性,获取到更加适配的推流节点(即目标节点),提高推流节点调度的精准性以及准确性,进而提直播推流的效率和质量。
上述实施例中节点的运行状态是实时监测的,根据实时监测到的运行状态可以实时更新节点列表,进而使得在接收到推流请求时可以快速地获取到目标IP。然而在某些特定场景下,如为了节省资源的耗费,可以在接收到推流请求之后,再去获取各个节点的运行状态,进而根据各个节点的运行状态去获取目标节点,具体如下:
在可选的实施例中,如图8所示,所述步骤S202可以包括:
步骤S800,在接收所述推流请求的情况下,获取用于提供推流服务的多个节点的运行状态;
步骤S802,根据多个节点的运行状态,从所述多个节点中确定目标节点,以获取所述目标IP。
在上述可选的实施例中,在接收到推流请求的情况下,再去获取各个节点的运行状态,继而根据获取到的运行状态确定目标节点,可以降低计算资源的耗费。
步骤S204,将所述目标IP发送给目标主播端,以使目标主播端根据所述目标IP进行直播推流。
所述目标IP为可用的目标节点的IP。在示例性的应用中,服务端将目标I P发送给目标主播端(如4A)之后,目标主播端(如4A)可以根据该目标IP将开播后的实时直播流推流至该目标节点上。目标节点接收到实时直播流之后,可以将视频流推送到观众端,以便观众端可以观看实时的直播内容。
需要说明的是,在目标IP获取失败的情况下,可以对目标域名进行DNS解析,从而获取到相应的域名推流地址,使得目标直播端可以根据所述域名推流地址进行推流。这样做的好处:保障在目标IP获取失败的情况下,也可以正确有效地获取到推流地址,以便目标直播端对直播进行推流。
为了使得本申请更加容易理解,以下结合图9提供一个示例性应用。
在该示例性应用中,主播端和服务平台可以通过网络连接。其中,服务平台可以包括域名通用调度系统、IP实时调度系统和节点服务发现系统。
S11,主播端向域名通用调度系统发送开播请求;
S12,域名通用调度系统获取目标域名;
S13,域名通用调度系统向主播端返回目标域名;
S14,主播端向IP实时调度系统发出携带有目标域名的推流请求;
S15,IP实时调度系统从节点服务发现中心实时更新的节点列表中获取目标IP,具体如下:
在接收到推流请求之后,根据同ISP覆盖,同省份节点覆盖,优先BGP节点覆盖等策略从节点列表中获取到预设节点组;
根据权重从预设节点组中确定目标节点,并获取目标IP;
S16,IP实时调度系统将目标IP发送给目标主播端,以使主播端根据目标IP进行直播推流。
实施例二
该实施例是以主播端的角度进行描述,和实施例一具有对应关系,以帮助理解和完善实施例一的技术方案。
图10示意性示出了根据本申请实施例二的推流地址的调度方法的流程图。
如图10所示,所述推流地址的调度方法用于主播端,该推流地址的调度方法可以包括步骤S1000~S1006,其中:
步骤S1000,响应于开播事件,向服务端发送开播请求,以使所述服务端根据所述开播请求返回目标域名。
步骤S1002,接收所述目标域名。
步骤S1004,响应于推流事件,向服务端发送携带有目标域名的推流请求,以使服务端返回目标节点的目标IP。
步骤S1006,在接收到所述目标节点的目标IP的情况下,基于所述目标节点的目标IP进行直播推流。
在示例性的应用中,若目标主播端(如4A)需要进行直播,则可以先向服务端发送开播请求。服务端根据接收到的开播请求获取到目标域名,并将目标域名返回给目标主播端(如4A)。目标主播端(如4A)接收所述目标域名后会向服务端发送携带有目标域名的推流请求,以使服务端返回目标节点的目标IP。若目标主播端(如4A)接收到服务端返回的目标IP,则可以基于所述目标IP进行直播推流。
本实施例提供的推流地址的调度方法,若目标主播端需要进行直播,则可以先向服务端发送开播请求,以通过服务端获取到目标域名。继而将获取到的目标域名携带在推流请求之中发送给服务端,以使服务端返回与目标域名关联的目标节点的目标IP,所述目标IP即为推流地址。可知,本实施例实时地根据目标域名获取到精准可用的目标IP(即推流地址),可以提高推流地址调度的精准度以及准确性,进而提高直播推流的性能与效率。此外,实时地根据主播端的域名获取到精准可用的目标IP,可以避免出现因DNS缓存以及DNS污染而导致的问题,增加安全性。
在可选的实施例中,如图11所示,所述方法还可以包括:
步骤S1100,在没有接收到所述目标节点的目标IP的情况下,通过对所述目标域名解析得到域名推流地址。
步骤S1102,根据所述目标域名的域名推流地址,进行直播推流。
在目标节点的目标IP获取失败的情况下,目标主播端无法根据所述目标节点的目标IP进行直播推流。因此,为了使目标直播端在目标IP获取失败的情况下,也可以进行直播推流,本实施例可以通过对目标域名进行DNS解析,获取到相应的IP地址(域名推流地址),进而使目标主播端基于DNS解析出的域名推流地址进行直播推流。
在上述可选的实施例中,在目标IP获取失败的情况下,可以对目标域名进行解析,从而获取到相应的域名推流地址,使得目标直播端可以根据所述域名推流地址进行推流。这样做的好处:保障在目标IP获取失败的情况下,也可以有效地获取到推流地址,以便目标直播端对直播进行推流。
在可选的实施例中,如图12所示,所述目标IP是基于以下操作得到:
步骤S1200,实时监测用于提供推流服务的多个节点的运行状态。
步骤S1202,根据每个节点的运行状态,实时更新节点列表。其中,所述节点列表包括一个或多个节点,所述节点列表中的每个节点的运行状态均为可用状态。
步骤S1204,根据所述节点列表确定目标节点,以获取目标IP。
在上述可选的实施例中,可以根据节点的运行状态实时获取到目标IP,使获取到的目标IP对应的目标节点都是当前的可用节点,即保证调度的目标节点的可用性。
实施例三
图13示意性示出了根据本申请实施例三的推流地址的调度装置的框图,该推流地址的调度装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图13所示,该推流地址的调度装置可以包括:返回模块1310、获取模块1320、发送模块1330,其中:
返回模块1310,用于响应目标主播端的开播请求,向目标主播端返回目标域名;
获取模块1320,用于响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP;
发送模块1330,用于将所述目标IP发送给目标主播端,以使目标主播端根据所述目标IP进行直播推流。
作为可选的实施例,所述推流地址的调度装置还可以包括更新模块,所述更新模块用于:
实时监测用于提供推流服务的多个节点的运行状态;
根据每个节点的运行状态,实时更新节点列表;其中,所述节点列表包括一个或多个节点,所述节点列表中的每个节点的运行状态均为可用状态;
对应地,所述获取模块1320还用于:根据所述节点列表确定目标节点,以获取目标IP。
作为可选的实施例,所述获取模块1320还用于:
根据所述推流请求,获取目标主播端的IP地址以及直播的业务属性;
根据所述IP地址以及所述业务属性,从所述节点列表中确定所述目标节点,以获取目标IP。
作为可选的实施例,每个节点设置有对应的权重值;对应地,所述获取模块1320还用于:
根据所述IP地址以及业务属性,确定预设节点组,所述预设节点组中包括一个或多个节点;
根据所述预设节点组中的每个节点的预设权重,从所述预设节点组中确定目标节点。
作为可选的实施例,所述获取模块1320还用于:
根据所述IP地址,获取所述目标主播端的互联网服务提供商信息和/或地理区域信息;
基于所述互联网服务提供商信息和/或地理区域信息,确定一个或多个节点,以形成预设节点组。
作为可选的实施例,业务属性包括主播属性和/或数据流量属性;对应地,所述获取模块1320还用于:
根据所述主播属性和/或数据流量属性,获取预设目标类型的一个或多个节点,以形成预设节点组。
作为可选的实施例,所述获取模块1320还用于:
在接收所述推流请求的情况下,获取用于提供推流服务的多个节点的运行状态;
根据多个节点的运行状态,从所述多个节点中确定目标节点,以获取所述目标IP。
实施例四
本申请实施例四的推流地址的调度装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。该推流地址的调度装置可以包括:第一发送模块、接收模块、第二发送模块、直播推流模块,其中:
第一发送模块,用于响应于开播事件,向服务端发送开播请求,以使所述服务端根据所述开播请求返回目标域名;
接收模块,用于接收所述目标域名;
第二发送模块,用于响应于推流事件,向服务端发送携带有目标域名的推流请求,以使服务端返回目标节点的目标IP;
第一直播推流模块,用于在接收到所述目标节点的目标IP的情况下,基于所述目标节点的目标IP进行直播推流。
作为可选的实施例,所述推流地址的调度装置还可以包括第二直播推流模块,所述第二直播推流模块用于:
在没有接收到所述目标节点的目标IP的情况下,通过对所述目标域名解析得到域名推流地址;
根据所述目标域名的推流地址,进行直播推流。
作为可选的实施例,所述推流地址的调度装置还可以包括目标IP获取模块,所述目标IP获取模块用于:
实时监测用于提供推流服务的多个节点的运行状态;
根据每个节点的运行状态,实时更新节点列表;其中,所述节点列表包括一个或多个节点,所述节点列表中的每个节点的运行状态均为可用状态;
根据所述节点列表确定目标节点,以获取目标IP。
实施例五
图14示意性示出了根据本申请实施例五的适于实现推流地址的调度方法的计算机设备10000的硬件架构示意图。在一些实施例中,计算机设备10000可以是智能手机、可穿戴设备、平板电脑、个人电脑、车载终端、游戏机、虚拟设备、工作台、数字助理、机顶盒、机器人等终端设备。在另一些实施例中,计算机设备10000可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或多个服务器所组成的服务器集群)等。如图14所示,所述计算机设备10000包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(如,SD或DX存储器)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如推流地址的调度方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(WidebandCode Divi sion Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetoo th)、Wi-Fi等无线或有线网络。
需要指出的是,图14仅示出了具有部件10010-10030的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代地实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的推流地址的调度方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(如处理器10020)所执行,以完成本申请实施例。
实施例六
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,其中,计算机程序被处理器执行时实现实施例中的推流地址的调度方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEP ROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中推流地址的调度方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算机设备来实现,它们可以集中在单个的计算机设备上,或者分布在多个计算机设备所组成的网络上,可选地,它们可以用计算机设备可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算机设备来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
需要说明的是,以上仅为本申请的优选实施例,并非因此限制本申请的专利保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种推流地址的调度方法,其特征在于,用于服务端,所述方法包括:
响应目标主播端的开播请求,向目标主播端返回目标域名;
响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP;
将所述目标IP发送给目标主播端,以使目标主播端根据所述目标IP进行直播推流。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
实时监测用于提供推流服务的多个节点的运行状态;
根据每个节点的运行状态,实时更新节点列表;其中,所述节点列表包括一个或多个节点,所述节点列表中的每个节点的运行状态均为可用状态;
对应地,获取与所述目标域名关联的目标节点的目标IP包括:根据所述节点列表确定目标节点,以获取目标IP。
3.根据权利要求2所述的方法,其特征在于,根据所述节点列表确定目标节点,以获取目标IP,包括:
根据所述推流请求,获取目标主播端的IP地址以及直播的业务属性;
根据所述IP地址以及所述业务属性,从所述节点列表中确定所述目标节点,以获取目标IP。
4.根据权利要求3所述的方法,其特征在于,每个节点设置有对应的权重值;对应地,根据所述IP地址以及所述业务属性,从所述节点列表中确定所述目标节点,包括:
根据所述IP地址以及业务属性,确定预设节点组,所述预设节点组中包括一个或多个节点;
根据所述预设节点组中的每个节点的预设权重,从所述预设节点组中确定目标节点。
5.根据权利要求4所述的方法,其特征在于,根据所述IP地址以及业务属性,确定预设节点组,包括:
根据所述IP地址,获取所述目标主播端的互联网服务提供商信息和/或地理区域信息;
基于所述互联网服务提供商信息和/或地理区域信息,确定一个或多个节点,以形成预设节点组。
6.根据权利要求4所述的方法,其特征在于,业务属性包括主播属性和/或数据流量属性;对应地,根据所述IP地址以及业务属性,确定预设节点组,包括:
根据所述主播属性和/或数据流量属性,获取预设目标类型的一个或多个节点,以形成预设节点组。
7.根据权利要求1所述的方法,其特征在于,响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP,包括:
在接收所述推流请求的情况下,获取用于提供推流服务的多个节点的运行状态;
根据多个节点的运行状态,从所述多个节点中确定目标节点,以获取所述目标IP。
8.一种推流地址的调度装置,其特征在于,所述装置包括:
返回模块,用于响应目标主播端的开播请求,向目标主播端返回目标域名;
获取模块,用于响应目标主播端发送的携带有目标域名的推流请求,获取与所述目标域名关联的目标节点的目标IP;
发送模块,用于将所述目标IP发送给目标主播端,以使目标主播端根据所述目标IP进行直播推流。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至7中任一项所述的方法。
CN202311761213.1A 2023-12-19 2023-12-19 推流地址的调度方法及装置 Pending CN117750049A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311761213.1A CN117750049A (zh) 2023-12-19 2023-12-19 推流地址的调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311761213.1A CN117750049A (zh) 2023-12-19 2023-12-19 推流地址的调度方法及装置

Publications (1)

Publication Number Publication Date
CN117750049A true CN117750049A (zh) 2024-03-22

Family

ID=90250487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311761213.1A Pending CN117750049A (zh) 2023-12-19 2023-12-19 推流地址的调度方法及装置

Country Status (1)

Country Link
CN (1) CN117750049A (zh)

Similar Documents

Publication Publication Date Title
KR102514250B1 (ko) 모바일 에지 컴퓨팅 노드를 선택하기 위한 방법, 장치 및 시스템
CN109067914B (zh) Web服务的代理方法、装置、设备及存储介质
US9503308B2 (en) Method, device and system for processing content
US9444759B2 (en) Service provider registration by a content broker
CN102077189B (zh) 使用网络计算组件的请求路由
US8244874B1 (en) Edge-based resource spin-up for cloud computing
CN110830564B (zh) Cdn调度方法、装置、系统及计算机可读存储介质
CN111345012A (zh) 使用目的地系统的链路级容量的dns解析
US8341285B2 (en) Method and system for transferring files
US20240106793A1 (en) Traffic scheduling method, apparatus and system, terminal device and readable storage medium
CN112714365B (zh) 视频播放方法和系统
CN116633934A (zh) 负载均衡方法、装置、节点及存储介质
CN110958279B (zh) 一种数据处理方法及其装置
US10951707B2 (en) Selection device, device selection method, and program
EP3579526A1 (en) Resource file feedback method and apparatus
CN115514981A (zh) 一种视频流调度系统及相关产品
CN110677443A (zh) 数据发送和接收方法、发送端、接收端、系统及存储介质
CN112019604A (zh) 边缘数据传输方法和系统
CN108259576B (zh) 一种软硬件实时信息传输系统和方法
CN115022278A (zh) Cdn处理方法和系统
CN117750049A (zh) 推流地址的调度方法及装置
CN113746851B (zh) 一种支持实时解析grpc请求的代理系统和方法
CN101958934A (zh) 一种电子节目指南增量内容同步方法、装置及系统
CN109600452B (zh) 服务器集群、消息推送方法及相关服务器
US11546405B2 (en) Methods for exposing mainframe data as a web service and devices thereof

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