发明内容
有鉴于此,本申请实施例提供了一种流媒体调度方法、装置、设备及存储介质,以提高数据处理和数据传输的速率,减轻用户端播放延迟的问题,提升用户观看直播的体验感。
主要包括以下几个方面:
第一方面,本申请实施例提供了一种流媒体调度方法,应用于推流边缘节点设备,该方法包括:
根据所述推流边缘节点设备的至少一个性能衡量指标,实时判断所述推流边缘节点设备是否满足预设的节点裂变条件;
若所述推流边缘节点设备满足所述节点裂变条件,向调度中心发送裂变请求,以使所述调度中心从推流边缘节点设备群中确定目标推流边缘节点设备,其中,所述目标推流边缘节点设备为所述推流边缘节点设备群中设备状态处于可用状态的性能最好的推流边缘节点设备;
接收所述调度中心发送的所述目标推流边缘节点设备的第一地址和第一端口号;
以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,将推流用户端发送的目标通信数据传输至所述目标推流边缘节点设备,以使所述目标推流边缘节点设备对所述目标通信数据进行缓存。
可选的,所述性能衡量指标包括剩余带宽、剩余内存容量、CPU使用率和链路连接数,所述根据所述推流边缘节点设备的至少一个性能衡量指标,实时判断所述推流边缘节点设备是否满足预设的节点裂变条件,包括:
当所述性能衡量指标为所述剩余带宽时,根据所述剩余带宽,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述剩余带宽小于第一预设阈值时,所述推流边缘节点设备满足所述节点裂变条件;
当所述性能衡量指标为所述剩余内存容量时,根据所述剩余内存容量,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述剩余内存容量小于第二预设阈值时,所述推流边缘节点设备满足所述节点裂变条件;
当所述性能衡量指标为所述CPU使用率时,根据所述CPU使用率,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述CPU使用率大于第三预设阈值时,所述推流边缘节点设备满足所述节点裂变条件;
当所述性能衡量指标为所述链路连接数时,根据所述链路连接数,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述链路连接数大于第四预设阈值时,所述推流边缘节点设备满足所述节点裂变条件。
可选的,所述以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,将推流用户端发送的目标通信数据传输至所述目标推流边缘节点设备,包括:
以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,建立与所述目标推流边缘节点设备的第一信令通道;
通过所述第一信令通道,向所述目标推流边缘节点设备发送至少一个第一会话描述协议SDP,以使所述目标推流边缘节点设备在各第一SDP中确定其支持的第一目标SDP;
接受所述目标推流边缘节点设备发送的所述第一目标SDP;
按照所述第一目标SDP,将所述目标通信数据传输至所述目标推流边缘节点设备。
第二方面,本申请实施例提供了一种流媒体调度方法,应用于拉流边缘节点设备,所述方法包括:
接收拉流用户端发送的目标推流边缘节点设备的第二地址和第二端口号,其中,所述目标推流边缘节点设备为缓存目标通信数据的节点设备,所述目标通信数据是由推流用户端发送到推流边缘节点设备,再由所述推流边缘节点设备根据所述目标推流边缘节点设备的第一地址和第一端口号发送到所述目标推流边缘节点设备上,所述第一地址和所述第一端口号是所述推流边缘节点设备在满足预设的节点裂变条件时,向调度中心发送裂变请求获取到的;
以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,接收所述目标推流边缘节点设备发送的所述目标通信数据;
将所述目标通信数据发送至所述拉流用户端。
可选的,所述以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,接收所述目标推流边缘节点设备发送的所述目标通信数据,包括:
以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,建立与所述目标推流边缘节点设备的第二信令通道;
通过所述第二信令通道,向所述目标推流边缘节点设备发送至少一个第二会话描述协议SDP,以使所述目标推流边缘节点设备在各第二SDP中确定其支持的第二目标SDP;
接受所述目标推流边缘节点设备发送的所述第二目标SDP;
按照所述第二目标SDP,接收所述目标推流边缘节点设备发送的所述目标通信数据。
第三方面,本申请实施例提供了一种流媒体调度装置,应用于推流边缘节点设备,所述装置包括:
判断模块,用于根据所述推流边缘节点设备的至少一个性能衡量指标,实时判断所述推流边缘节点设备是否满足预设的节点裂变条件;
执行模块,用于若所述推流边缘节点设备满足所述节点裂变条件,向调度中心发送裂变请求,以使所述调度中心从推流边缘节点设备群中确定目标推流边缘节点设备,其中,所述目标推流边缘节点设备为所述推流边缘节点设备群中设备状态处于可用状态的性能最好的推流边缘节点设备;
第一接收模块,用于接收所述调度中心发送的所述目标推流边缘节点设备的第一地址和第一端口号;
传输模块,用于以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,将推流用户端发送的目标通信数据传输至所述目标推流边缘节点设备,以使所述目标推流边缘节点设备对所述目标通信数据进行缓存。
可选的,所述性能衡量指标包括剩余带宽、剩余内存容量、CPU使用率和链路连接数,所述判断模块在用于根据所述推流边缘节点设备的至少一个性能衡量指标,实时判断所述推流边缘节点设备是否满足预设的节点裂变条件时,包括:
第一判断模块,用于当所述性能衡量指标为所述剩余带宽时,根据所述剩余带宽,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述剩余带宽小于第一预设阈值时,所述推流边缘节点设备满足所述节点裂变条件;
第二判断模块,用于当所述性能衡量指标为所述剩余内存容量时,根据所述剩余内存容量,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述剩余内存容量小于第二预设阈值时,所述推流边缘节点设备满足所述节点裂变条件;
第三判断模块,用于当所述性能衡量指标为所述CPU使用率时,根据所述CPU使用率,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述CPU使用率大于第三预设阈值时,所述推流边缘节点设备满足所述节点裂变条件;
第四判断模块,用于当所述性能衡量指标为所述链路连接数时,根据所述链路连接数,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述链路连接数大于第四预设阈值时,所述推流边缘节点设备满足所述节点裂变条件。
可选的,所述传输模块在用于以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,将推流用户端发送的目标通信数据传输至所述目标推流边缘节点设备时,包括:
以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,建立与所述目标推流边缘节点设备的第一信令通道;
通过所述第一信令通道,向所述目标推流边缘节点设备发送至少一个第一会话描述协议SDP,以使所述目标推流边缘节点设备在各第一SDP中确定其支持的第一目标SDP;
接受所述目标推流边缘节点设备发送的所述第一目标SDP;
按照所述第一目标SDP,将所述目标通信数据传输至所述目标推流边缘节点设备。
第四方面,本申请实施例提供了一种流媒体调度装置,应用于拉流边缘节点设备,所述装置包括:
第二接收模块,用于接收拉流用户端发送的目标推流边缘节点设备的第二地址和第二端口号,其中,所述目标推流边缘节点设备为缓存目标通信数据的节点设备,所述目标通信数据是由推流用户端发送到推流边缘节点设备,再由所述推流边缘节点设备根据所述目标推流边缘节点设备的第一地址和第一端口号发送到所述目标推流边缘节点设备上,所述第一地址和所述第一端口号是所述推流边缘节点设备在满足预设的节点裂变条件时,向调度中心发送裂变请求获取到的;
第三接收模块,用于以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,接收所述目标推流边缘节点设备发送的所述目标通信数据;
发送模块,用于将所述目标通信数据发送至所述拉流用户端。
可选的,所述第三接收模块在用于以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,接收所述目标推流边缘节点设备发送的所述目标通信数据时,包括:
以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,建立与所述目标推流边缘节点设备的第二信令通道;
通过所述第二信令通道,向所述目标推流边缘节点设备发送至少一个第二会话描述协议SDP,以使所述目标推流边缘节点设备在各第二SDP中确定其支持的第二目标SDP;
接受所述目标推流边缘节点设备发送的所述第二目标SDP;
按照所述第二目标SDP,接收所述目标推流边缘节点设备发送的所述目标通信数据。
第五方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或上述第二方面中任一所述的流媒体调度方法的步骤。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面或上述第二方面中任一所述的流媒体调度方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供的流媒体调度的方法,针对每一个推流边缘节点设备,该推流边缘节点设备实时监测自身的至少一个性能衡量指标,以根据实时的各性能衡量指标判断自身是否满足预设的节点裂变条件,当满足节点裂变条件时,说明自身的性能不能满足更多的数据处理,需要另一个推流边缘节点设备来分担数据处理的工作,所以向调度中心发送裂变请求,以使调度中心确定出可以分担其数据处理工作的目标推流边缘节点设备,在从调度中心得到该目标推流边缘节点设备的第一地址和第一端口号后,就可以根据第一地址准确的确定出目标推流边缘节点设备的连接地址,以及可以根据第一端口号准确的确定出目标推流边缘节点设备的连接端口,此时,就可以将从推流用户端获取到的无法处理的目标通信数据发送到目标推流边缘节点设备,以使目标推流边缘节点设备对该目标通信数据进行缓存及后续需要的处理操作,通过该方法,可以避免出现推流边缘节点设备因处理超出能力范围的目标通信数据而造成的卡顿或死机的异常现象,且当拉流用户端需要该目标通信数据时,可以通过拉流边缘节点设备获取到该目标通信数据,针对拉流边缘节点设备,该拉流边缘节点设备从拉流用户端获取到缓存该目标通信数据的目标推流边缘设备的第二地址和第二端口号,然后根据第二地址准确的确定出目标推流边缘节点设备的连接地址,以及根据第二端口号准确的确定出目标推流边缘节点设备的连接端口,与目标推流边缘节点设备建立连接,并获取目标推流边缘节点设备发送的该目标通信数据,从而将该目标通信数据发送到拉流用户端,实现完整的流媒体数据传输,通过该方法,将与目标推流边缘节点设备连接的工作交由拉流边缘节点设备来完成,以减轻调度中心的工作负担,在此过程中,目标通信数据的传输均是节点设备与节点设备间的传输,不需要依赖CDN,相较于现有技术中通过受限的CDN进行传输,本申请在观看直播的人数增加时,推流边缘节点设备需要处理的推流数据增加,但针对每一个推流边缘节点设备,该推流边缘节点设备会在本身处理能力不足或性能变差时,使用其他的推流边缘节点设备分担其无法处理的数据,以防止进行数据处理的推流边缘节点设备随着直播人数增加而性能变差,且该方法可以保证每一个推流边缘节点设备以高性能的状态持久的处理数据和传输数据,有利于提高数据处理和数据传输的速率,减轻用户端播放延迟的问题,提升用户观看直播的体验感。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种流媒体调度方法、装置、设备及存储介质,下面通过实施例进行描述。
实施例一
图1示出了本申请实施例一所提供的一种流媒体调度方法的流程图,如图1所示,该流媒体调度方法应用于推流边缘节点设备,该方法包括以下步骤:
步骤S101:根据所述推流边缘节点设备的至少一个性能衡量指标,实时判断所述推流边缘节点设备是否满足预设的节点裂变条件。
具体的,推流指的是进行推流的客户端把采集阶段包装好的内容传输到服务器的过程,推流边缘节点设备为靠近推流客户端的用于接收该推流客户端传输上来的内容的服务器设备,该服务器设备(推流边缘节点设备)的性能衡量指标是用于衡量该服务器设备的性能的指标数据,推流客户端指的是进行推流的客户端。
人为提前根据推流边缘节点设备上的各性能衡量指标,预设节点裂变条件,推流边缘节点设备实时确定自身的至少一个性能衡量指标,针对确定出的每一个性能衡量指标,根据该性能衡量指标,判断自身是否满足预设的节点裂变条件。
步骤S102:若所述推流边缘节点设备满足所述节点裂变条件,向调度中心发送裂变请求,以使所述调度中心从推流边缘节点设备群中确定目标推流边缘节点设备,其中,所述目标推流边缘节点设备为所述推流边缘节点设备群中设备状态处于可用状态的性能最好的推流边缘节点设备。
具体的,当推流边缘节点设备满足节点裂变条件时,说明该推流边缘节点设备不能继续缓存或传输之后推流上来的数据,需要增加一个可以分担其工作量的节点设备,所以该推流边缘节点设备需要向调度中心发送一个裂变请求,调度中心根据发送该裂变请求的推流边缘节点设备,确定出该推流边缘节点设备属于的推流边缘节点设备群,该推流边缘节点设备群中包括至少一个推流边缘节点设备,各推流边缘节点设备均是靠近推流客户端的用于接收推流客户端推上来的数据的节点设备,调度中心根据各推流边缘节点设备按照预设周期上传的自身的性能衡量指标,确定各推流边缘节点设备的设备状态和性能,最后从各推流边缘节点设备中筛选出节点状态为可用状态的性能最好的推流边缘节点设备,并将选出的该推流边缘节点设备作为目标推流边缘节点设备,其中,该目标推流边缘节点设备不是发送裂变请求的推流边缘节点设备。
需要说明的是,性能最好指的是该目标推流边缘节点设备的各性能衡量指标相较于其他推流边缘节点设备的各性能衡量指标,均是处于最好的状态,举例说明,推流边缘节点设备群中有推流边缘节点设备A、推流边缘节点设备B、推流边缘节点设备C和推流边缘节点设备D,推流边缘节点设备A是发送裂变请求的节点设备,推流边缘节点设备的性能衡量指标包括剩余带宽和CPU使用率,其中,推流边缘节点设备C相较于推流边缘节点设备B和推流边缘节点设备D,其剩余带宽最多且其CPU使用率最小,则推流边缘节点设备C为筛选出的目标推流边缘节点设备。
需要说明的是,调度中心与各客户端、与各节点设备之间通过http/https(Hypertext Transfer Protocol,超文本传输协议/Hyper Text Transfer Protocol overSecureSocket Layer,超文本传输安全协议)请求响应完成短连接,各节点设备按照预设周期会向调度中心发送自身的各性能衡量指标(包括剩余带宽、CPU使用率、剩余内存容量、链路连接数等指标),所述调度中心可以通过各节点设备上传的数据,对各节点设备的状态和性能进行实时监控,同时保存各节点设备上传的数据,以方便后续的信息追溯。
步骤S103:接收所述调度中心发送的所述目标推流边缘节点设备的第一地址和第一端口号。
具体的,调度中心在确定出目标推流边缘节点设备后,将该目标推流边缘节点设备的第一地址和第一端口号发送到发送裂变请求的推流边缘节点设备,此时,该推流边缘节点设备接收该第一地址和该第一端口号。
步骤S104:以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,将推流用户端发送的目标通信数据传输至所述目标推流边缘节点设备,以使所述目标推流边缘节点设备对所述目标通信数据进行缓存。
具体的,推流用户端发送的目标通信数据包括音视频数据和文本数据,目标推流边缘节点设备用于分担该推流边缘节点设备的工作量,所以在得到目标推流边缘节点设备的第一地址和第一端口号后,需要将目标通信数据发送到目标推流边缘节点设备上,使其对该目标通信数据进行缓存或进行其他的处理操作。
在接收的目标推流边缘节点设备的第一地址和第一端口号后,将该第一地址作为连接该目标推流边缘节点设备的地址,以找到该目标推流边缘节点设备,然后将该第一端口号代表的端口作为连接该目标推流边缘节点设备的端口,以找到该目标推流边缘节点设备上该第一端口号代表的端口,在找到该目标推流边缘节点设备上用于连接的端口后,就可以与目标推流边缘节点设备建立连接,并在建立连接后将目标通信数据传输到该目标推流边缘节点设备上,该目标推流边缘节点设备在接收到该目标通信数据后,缓存该目标通信数据,当有拉流客户端需要该目标通信数据时,就可以从该目标推流边缘节点设备处获取该目标通信数据。
需要说明的是,该目标通信数据为推流用户端进行采集并包装处理的数据,推流用户端即上述推流客户端,比如:直播发起用户的客户端。
在另一种可行的实施方案中,调度中心对推流过程中的各节点设备、拉流过程中的各节点设备进行双机热备,当工作中的节点设备出现状况,且无法及时修复时,该方法有利于避免数据传输中断。
在一种可行的实施方案中,所述性能衡量指标包括剩余带宽、剩余内存容量、CPU使用率和链路连接数,上述步骤S101可以通过以下步骤实现:
步骤S201:当所述性能衡量指标为所述剩余带宽时,根据所述剩余带宽,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述剩余带宽小于第一预设阈值时,所述推流边缘节点设备满足所述节点裂变条件。
步骤S202:当所述性能衡量指标为所述剩余内存容量时,根据所述剩余内存容量,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述剩余内存容量小于第二预设阈值时,所述推流边缘节点设备满足所述节点裂变条件。
步骤S203:当所述性能衡量指标为所述CPU使用率时,根据所述CPU使用率,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述CPU使用率大于第三预设阈值时,所述推流边缘节点设备满足所述节点裂变条件。
步骤S204:当所述性能衡量指标为所述链路连接数时,根据所述链路连接数,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述链路连接数大于第四预设阈值时,所述推流边缘节点设备满足所述节点裂变条件。
具体的,性能衡量指标指的是可以衡量推流边缘节点设备的性能的数据,性能衡量指标包括剩余带宽、剩余内存容量、CPU使用率、链路连接数、数据流吞吐能力等指标,当性能衡量指标为剩余带宽时,剩余带宽用于表示当前单位时间内传输的数据量,即:当前数据的传输能力,剩余带宽越多,该推流边缘节点设备当前的数据传输能力越好,反之,剩余带宽越少,该推流边缘节点设备当前的数据传输能力越差,此时,实时判断该推流边缘节点设备是否满足节点裂变条件,相当于实时判断该推流边缘节点设备的剩余带宽是否小于第一预设阈值,当剩余带宽小于第一预设阈值时,说明该推流边缘节点设备的剩余带宽不适合传输之后推流上来的数据,即:该推流边缘节点设备满足节点裂变条件,需要使用其他推流边缘节点设备来分担该推流边缘节点设备的工作;当性能衡量指标为剩余内存容量时,剩余内存容量用于表示该推流边缘节点设备当前的存储能力,此时,实时判断该推流边缘节点设备是否满足节点裂变条件,相当于实时判断该推流边缘节点设备的剩余内存容量是否小于第二预设阈值,当该推流边缘节点设备的剩余内存容量小于第二预设阈值,说明该推流边缘节点设备当前剩余的内存不能存储之后推流上来的数据,即:该推流边缘节点设备满足节点裂变条件,需要使用其他推流边缘节点设备来分担该推流边缘节点设备的工作;当性能衡量指标为CPU使用率时,CPU使用率指的是该推流边缘节点设备上运行的程序占用的CPU资源的量,该推流边缘节点设备上运行的程序占用的CPU资源的量越多,该推流边缘节点设备进行数据传输和数据缓存的能力越弱,此时,实时判断该推流边缘节点设备是否满足节点裂变条件,相当于实时判断该推流边缘节点设备的CPU使用率是否大于第三预设阈值,若该推流边缘节点设备的CPU使用率大于第三预设阈值,说明该推流边缘节点设备当前的CPU资源被占用的太多,剩余的CPU资源不足以处理之后推流上来的数据,即:该推流边缘节点设备满足节点裂变条件,需要使用其他推流边缘节点设备来分担该推流边缘节点设备的工作;当性能衡量指标为链路连接数时,链路连接数指的该推流边缘节点设备连接的推流客户端的数量,也就是说链路连接数用于表示该推流边缘节点设备接收的数据的多少,此时,实时判断推流边缘节点设备是否满足节点裂变条件,相当于实时判断该推流边缘节点设备的链路连接数是否大于第四预设阈值,当该推流边缘节点设备的链路连接数大于第四预设阈值,说明当前接收到的数据过多,该推流边缘节点设备无法再处理之后推流上来的数据,即:该推流边缘节点设备满足节点裂变条件,需要使用其他推流边缘节点设备来分担该推流边缘节点设备的工作。
需要说明的是,性能衡量指标包括的指标类型及对应的节点裂变条件可以根据实际情况进行增加或进行删减,以保证可以更准确的实现对该推流边缘节点设备的性能的实时监测,在此不做具体限定。
在一种可行的实施方案中,上述步骤S104可以通过以下步骤实现:
步骤S301:以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,建立与所述目标推流边缘节点设备的第一信令通道。
步骤S302:通过所述第一信令通道,向所述目标推流边缘节点设备发送至少一个第一SDP(Session Description Protocol,会话描述协议),以使所述目标推流边缘节点设备在各第一SDP中确定其支持的第一目标SDP。
步骤S303:接受所述目标推流边缘节点设备发送的所述第一目标SDP。
步骤S304:按照所述第一目标SDP,将所述目标通信数据传输至所述目标推流边缘节点设备。
具体的,在得到目标推流边缘节点设备的第一地址和第一端口号后,目标推流边缘节点设备的第一地址为该推流边缘节点设备的唯一编号,用于在网络中定位该目标推流边缘节点设备,在确定目标推流边缘节点设备的准确位置后,一个目标推流边缘节点设备可以同时与不同的推流客户端或不同的推流边缘节点设备进行连接,以同时进行不同的会话,所以不同的端口号可以代表不同的会话或不同的连接对象,得到的目标推流边缘节点设备的第一端口号所代表的端口是用于连接该推流边缘节点设备,并与该推流边缘节点设备进行会话的端口,所以可以通过第一地址和第一端口号代表的端口,和目标推流边缘节点设备建立Websocket连接,即:建立第一信令通道,在连接后,向该推流边缘节点设备发送会话请求及至少一个第一SDP,目标推流边缘节点设备在获取到会话请求时,在至少一个第一SDP中确定其支持的第一目标SDP,并将其支持的第一目标SDP发送到该推流边缘节点设备上,其中,SDP用于描述流媒体初始化参数的格式,支持的目标SDP用于表示目标推流边缘节点设备能够接收或识别的流媒体初始化参数的格式,第一目标SDP可以是一个,也可以是多个,但不超过第一SDP的数量,该推流边缘节点设备接收到目标推流边缘节点设备发送的第一目标SDP,相当于成功建立了WebRTC(Web Real-Time Communication,网页即时通信)会话,此时可以将目标通信数据传输到目标推流边缘节点设备,其中,传输目标通信数据的通道可以是UDP(User Datagram Protocol,用户数据包协议)。
需要说明的是,通过上述第一信令通道,还可以进行推流边缘节点与目标推流边缘节点之间除上述第一SDP之外的其他信令信息的传输。
在另一中可行的实施方案中,推流用户端在需要进行推流时,向调度中心发送推流请求,以从调度中心处获取推流边缘节点设备的地址和端口号,在得到地址和端口号后,根据推流边缘节点设备的地址和端口号,向推流边缘节点设备发送数据,关于推流实现方式的具体说明,可以参照上述推流边缘节点设备根据目标推流边缘节点设备的第一地址和第一端口号,向目标推流边缘节点设备发送目标通信数据的实现方式说明,在此不再进行赘述。
在另一种可行的实施方案中,每一个目标推流边缘节点设备相当于一个推流边缘节点设备,可以参照推流边缘节点设备,继续执行步骤S101至步骤S104中的具体实施方式。
实施例二
图2示出了本申请实施例二所提供的一种流媒体调度方法的流程图,如图2所示,该流媒体调度方法应用于拉流边缘节点设备,该方法包括以下步骤:
步骤S401:接收拉流用户端发送的目标推流边缘节点设备的第二地址和第二端口号,其中,所述目标推流边缘节点设备为缓存目标通信数据的节点设备,所述目标通信数据是由推流用户端发送到推流边缘节点设备,再由所述推流边缘节点设备根据所述目标推流边缘节点设备的第一地址和第一端口号发送到所述目标推流边缘节点设备上,所述第一地址和所述第一端口号是所述推流边缘节点设备在满足预设的节点裂变条件时,向调度中心发送裂变请求获取到的。
具体的,拉流指的是拉流服务端从指定地址拉取需要的数据内容的过程,拉流边缘节点设备指的靠近拉流用户端的缓存拉流用户端所需内容的服务器设备,拉流用户端指的是进行拉流的客户端,拉流用户端在进行拉流时,向调度中心发送拉流请求,以从调度中心获取存储目标通信数据的目标推流边缘节点设备的第二地址和第二端口号,以及获取拉流边缘节点设备的地址和端口号,然后拉流用户端根据拉流边缘节点设备的地址和端口号,与拉流边缘节点设备建立WebRTC会话的连接,关于拉流用户端与拉流边缘节点设备建立WebRTC会话连接的具体说明,可以参照上述推流边缘节点设备与目标推流边缘节点设备建立WebRTC会话的说明,在此不再进行赘述,在建立WebRTC会话后,拉流用户端将目标推流边缘节点设备的第二地址和第二端口号发送到拉流边缘节点设备,此时,拉流边缘节点设备接收到拉流用户端发送的目标推流边缘节点设备的第二地址和第二端口号,其中,目标推流边缘节点设备是缓存目标通信数据的节点设备,目标推流边缘节点设备缓存的目标通信数据是推流边缘节点设备在满足节点裂变条件的情况下将其传输到目标推流边缘节点设备上的,而推流边缘节点设备上的目标通信数据是推流客户端发送到推流边缘节点设备上的,推流边缘节点设备满足节点裂变条件的情况是推流边缘节点设备根据自身的至少一个性能衡量指标,实时判断出来的,在推流边缘节点设备满足节点裂变条件的情况下,目标通信数据是由推流边缘节点设备以目标推流边缘节点设备的第一地址作为连接目标推流边缘节点设备的地址,并以目标推流边缘节点设备的第一端口号代表的端口作为连接目标推流边缘节点设备的端口,将其发送到目标推流边缘节点设备上的,目标推流边缘节点设备的第一地址和第一端口号是推流边缘节点设备在满足节点裂变条件,向调度中心发送裂变请求的情况下,从调度中心获取到的调取中心确定出的第一地址和第一端口号,调取中心确定出的第一地址和第一端口号的具体过程为调度中心从推流边缘节点设备群中确定设备状态处于可用状态的性能最好的目标推流边缘节点设备,并将目标推流边缘节点设备的第一地址和第一端口号发送到推流边缘节点设备上。
需要说明的是,目标推流边缘节点设备是缓存目标通信数据的节点设备,也就是说当推流边缘节点设备没有满足节点裂变条件时,该推流边缘节点设备不需要将目标通信数据发送到目标推流边缘节点设备上,此时,缓存目标通信数据的节点设备为该推流边缘节点设备;当推流边缘节点设备满足节点裂变条件时,该推流边缘节点设备需要将目标通信数据发送到目标推流边缘节点设备上,此时,缓存目标通信数据的节点设备为目标推流边缘节点设备。
步骤S402:以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,接收所述目标推流边缘节点设备发送的所述目标通信数据。
具体的,关于拉流边缘节点设备使用第二地址和第二端口号,与目标推流边缘节点设备建立连接的说明,参照上述对步骤S104的解释中推流边缘节点设备与目标推流边缘节点设备建立连接的说明,在此不再进行赘述,在拉流边缘节点设备与目标推流边缘节点设备建立连接后,目标推流边缘节点设备就可以将目标通信数据发送到拉流边缘节点设备上,此时,拉流边缘节点设备接收到目标推流边缘节点设备发送的目标通信数据。
步骤S403:将所述目标通信数据发送至所述拉流用户端。
具体的,步骤S401的说明中的拉流用户端与拉流边缘节点设备建立WebRTC会话连接的具体实现方式,可以参照步骤S304的说明中推流边缘节点设备与目标推流边缘节点设备建立WebRTC会话的具体实现方式,在此不再进行赘述,在拉流用户端与拉流边缘节点设备建立WebRTC会话连接后,拉流边缘节点设备就可以将从目标推流边缘节点设备获取到目标通信数据发送到拉流用户端上。
在一种可行的实施方案中,上述步骤S402可以通过以下步骤实现:
步骤S501:以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,建立与所述目标推流边缘节点设备的第二信令通道。
步骤S502:通过所述第二信令通道,向所述目标推流边缘节点设备发送至少一个第二会话描述协议SDP,以使所述目标推流边缘节点设备在各第二SDP中确定其支持的第二目标SDP。
步骤S503:接受所述目标推流边缘节点设备发送的所述第二目标SDP。
步骤S504:按照所述第二目标SDP,接收所述目标推流边缘节点设备发送的所述目标通信数据。
具体的,步骤S501至步骤S503主要是建立拉流边缘节点设备与目标推流边缘节点设备之间的WebRTC会话,关于步骤S501至步骤S503的具体说明,参照上述对步骤S301至步骤S304的具体说明中的建立推流边缘节点设备与目标推流边缘节点设备之间的WebRTC会话的部分,在此不再进行赘述,在成功建立拉流边缘节点设备与目标推流边缘节点设备之间的WebRTC会话后,目标推流边缘节点设备就可以将目标通信数据发送到拉流边缘节点设备上,此时,拉流边缘节点设备就可以接受到目标推流边缘节点设备发送的目标通信数据。
需要说明的是,通过上述第二信令通道,还可以进行目标推流边缘节点与拉流边缘节点之间除上述第二SDP之外的其他信令信息的传输。
在另一种可行的实施方案中,针对每一个推流边缘节点设备,该推流边缘节点设备接收并保存与推流用户端之间的会话相关的连接或数据,以及建立并维护与目标推流边缘节点设备之间的会话连接,以及进行数据的分发,以及销毁与其相关的会话连接;针对每一个拉流边缘节点设备,该拉流边缘节点设备接收并保存与拉流用户端之间的会话相关的连接或数据,以及建立并维护与目标推流边缘节点设备之间的会话连接,以及销毁与其相关的会话连接。
实施例三
图3示出了本申请实施例三所提供的一种流媒体调度装置的结构示意图,如图3所示,该流媒体调度装置应用于推流边缘节点设备,该装置包括:
判断模块601,用于根据所述推流边缘节点设备的至少一个性能衡量指标,实时判断所述推流边缘节点设备是否满足预设的节点裂变条件;
执行模块602,用于若所述推流边缘节点设备满足所述节点裂变条件,向调度中心发送裂变请求,以使所述调度中心从推流边缘节点设备群中确定目标推流边缘节点设备,其中,所述目标推流边缘节点设备为所述推流边缘节点设备群中设备状态处于可用状态的性能最好的推流边缘节点设备;
第一接收模块603,用于接收所述调度中心发送的所述目标推流边缘节点设备的第一地址和第一端口号;
传输模块604,用于以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,将推流用户端发送的目标通信数据传输至所述目标推流边缘节点设备,以使所述目标推流边缘节点设备对所述目标通信数据进行缓存。
在一种可行的实施方案中,所述性能衡量指标包括剩余带宽、剩余内存容量、CPU使用率和链路连接数,所述判断模块601在用于根据所述推流边缘节点设备的至少一个性能衡量指标,实时判断所述推流边缘节点设备是否满足预设的节点裂变条件时,包括:
第一判断模块,用于当所述性能衡量指标为所述剩余带宽时,根据所述剩余带宽,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述剩余带宽小于第一预设阈值时,所述推流边缘节点设备满足所述节点裂变条件;
第二判断模块,用于当所述性能衡量指标为所述剩余内存容量时,根据所述剩余内存容量,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述剩余内存容量小于第二预设阈值时,所述推流边缘节点设备满足所述节点裂变条件;
第三判断模块,用于当所述性能衡量指标为所述CPU使用率时,根据所述CPU使用率,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述CPU使用率大于第三预设阈值时,所述推流边缘节点设备满足所述节点裂变条件;
第四判断模块,用于当所述性能衡量指标为所述链路连接数时,根据所述链路连接数,实时判断所述推流边缘节点设备是否满足所述节点裂变条件,当所述链路连接数大于第四预设阈值时,所述推流边缘节点设备满足所述节点裂变条件。
在一种可行的实施方案中,所述传输模块604在用于以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,将推流用户端发送的目标通信数据传输至所述目标推流边缘节点设备时,包括:
以所述第一地址作为连接所述目标推流边缘节点设备的地址,并以所述第一端口号代表的端口作为连接所述目标推流边缘节点设备的端口,建立与所述目标推流边缘节点设备的第一信令通道;
通过所述第一信令通道,向所述目标推流边缘节点设备发送至少一个第一会话描述协议SDP,以使所述目标推流边缘节点设备在各第一SDP中确定其支持的第一目标SDP;
接受所述目标推流边缘节点设备发送的所述第一目标SDP;
按照所述第一目标SDP,将所述目标通信数据传输至所述目标推流边缘节点设备。
实施例四
图4示出了本申请实施例四所提供的一种流媒体调度装置的结构示意图,如图4所示,该流媒体调度装置应用于拉流边缘节点设备,该装置包括:
第二接收模块701,用于接收拉流用户端发送的目标推流边缘节点设备的第二地址和第二端口号,其中,所述目标推流边缘节点设备为缓存目标通信数据的节点设备,所述目标通信数据是由推流用户端发送到推流边缘节点设备,再由所述推流边缘节点设备根据所述目标推流边缘节点设备的第一地址和第一端口号发送到所述目标推流边缘节点设备上,所述第一地址和所述第一端口号是所述推流边缘节点设备在满足预设的节点裂变条件时,向调度中心发送裂变请求获取到的;
第三接收模块702,用于以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,接收所述目标推流边缘节点设备发送的所述目标通信数据;
发送模块703,用于将所述目标通信数据发送至所述拉流用户端。
在一种可行的实施方案中,所述第三接收模块702在用于以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,接收所述目标推流边缘节点设备发送的所述目标通信数据时,包括:
以所述第二地址作为连接所述目标推流边缘节点设备的地址,并以所述第二端口号代表的端口作为连接所述目标推流边缘节点设备的端口,建立与所述目标推流边缘节点设备的第二信令通道;
通过所述第二信令通道,向所述目标推流边缘节点设备发送至少一个第二会话描述协议SDP,以使所述目标推流边缘节点设备在各第二SDP中确定其支持的第二目标SDP;
接受所述目标推流边缘节点设备发送的所述第二目标SDP;
按照所述第二目标SDP,接收所述目标推流边缘节点设备发送的所述目标通信数据。
本申请实施例所提供的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
本申请实施例提供的流媒体调度的方法,针对每一个推流边缘节点设备,该推流边缘节点设备实时监测自身的至少一个性能衡量指标,以根据实时的各性能衡量指标判断自身是否满足预设的节点裂变条件,当满足节点裂变条件时,说明自身的性能不能满足更多的数据处理,需要另一个推流边缘节点设备来分担数据处理的工作,所以向调度中心发送裂变请求,以使调度中心确定出可以分担其数据处理工作的目标推流边缘节点设备,在从调度中心得到该目标推流边缘节点设备的第一地址和第一端口号后,就可以根据第一地址准确的确定出目标推流边缘节点设备的连接地址,以及可以根据第一端口号准确的确定出目标推流边缘节点设备的连接端口,此时,就可以将从推流用户端获取到的无法处理的目标通信数据发送到目标推流边缘节点设备,以使目标推流边缘节点设备对该目标通信数据进行缓存及后续需要的处理操作,通过该方法,可以避免出现推流边缘节点设备因处理超出能力范围的目标通信数据而造成的卡顿或死机的异常现象,且当拉流用户端需要该目标通信数据时,可以通过拉流边缘节点设备获取到该目标通信数据,针对拉流边缘节点设备,该拉流边缘节点设备从拉流用户端获取到缓存该目标通信数据的目标推流边缘设备的第二地址和第二端口号,然后根据第二地址准确的确定出目标推流边缘节点设备的连接地址,以及根据第二端口号准确的确定出目标推流边缘节点设备的连接端口,与目标推流边缘节点设备建立连接,并获取目标推流边缘节点设备发送的该目标通信数据,从而将该目标通信数据发送到拉流用户端,实现完整的流媒体数据传输,通过该方法,将与目标推流边缘节点设备连接的工作交由拉流边缘节点设备来完成,以减轻调度中心的工作负担,在此过程中,目标通信数据的传输均是节点设备与节点设备间的传输,不需要依赖CDN,相较于现有技术中通过受限的CDN进行传输,本申请在观看直播的人数增加时,推流边缘节点设备需要处理的推流数据增加,但针对每一个推流边缘节点设备,该推流边缘节点设备会在本身处理能力不足或性能变差时,使用其他的推流边缘节点设备分担其无法处理的数据,以防止进行数据处理的推流边缘节点设备随着直播人数增加而性能变差,且该方法可以保证每一个推流边缘节点设备以高性能的状态持久的处理数据和传输数据,有利于提高数据处理和数据传输的速率,减轻用户端播放延迟的问题,提升用户观看直播的体验感。
实施例五
本申请实施例还提供了一种计算机设备800,图5示出了本申请实施例五所提供的一种计算机设备的结构示意图,如图5所示,该设备包括存储器801、处理器802及存储在该存储器801上并可在该处理器802上运行的计算机程序,其中,上述处理器802执行上述计算机程序时实现上述实施例一中的流媒体调度方法或上述实施例二中的流媒体调度方法。
具体地,上述存储器801和处理器802能够为通用的存储器和处理器,这里不做具体限定,当处理器802运行存储器801存储的计算机程序时,能够执行上述实施例一中的流媒体调度方法或上述实施例二中的流媒体调度方法,解决了现有技术中用户端播放延迟加重,使得用户观看直播的体验感变差的问题。
实施例六
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述实施例一中的流媒体调度方法或上述实施例二中的流媒体调度方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述实施例一中的流媒体调度方法或上述实施例二中的流媒体调度方法,解决了现有技术中用户端播放延迟加重,使得用户观看直播的体验感变差的问题。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。