一种利用UDP特性构建实时流媒体集群调度的方法技术

技术编号:27887423 阅读:13 留言:0更新日期:2021-03-31 01:55
本发明专利技术属于实时视频互动直播技术领域,具体是一种利用UDP特性构建实时流媒体集群调度的方法,包括接入点集群、流媒体服务节点集群和内存数据库服务集群。采用上下行分离的方式实现下行观看的巨量便捷扩展,在接入点集群实现用户RTP/RTCP协议的协商和接入,推流用户的上行数据RTP流都通过接入点集群接收。此类上行流量在整个大用户量媒体集群中占用量相对很少,因此此方式可以使少量接入点便可支持巨量用户的接入。巧妙的利用RTP包分发单向打通的方式,将下行分离出接入点,继而简化调度,并提高整体的资源利用率,减少用户因资源调度付出的如切断重新申请等代价。

【技术实现步骤摘要】
一种利用UDP特性构建实时流媒体集群调度的方法
本专利技术属于实时视频互动直播
,具体是一种利用UDP特性构建实时流媒体集群调度的方法。
技术介绍
实时流媒体技术通常采用RTP方式传输媒体数据。在集群调度中,当总用户量、单视频流拉流用户量急剧上升时候,非常容易出现流媒体服务器单点流量超标,导致采用媒体数据包被服务器大量丢弃,进而出现用户观看卡顿的现象。如何采用合理的调度算法避免出现此种情况,成为调度算法的核心需求。现有的算法,通常部署一台专用的监控服务器,实时收集集群内所有流媒体服务节点的CPU、内存、流量等指标,并负责提供用户接入系统的调度依据。但是采集频度很难把控,太高容易出现采集逻辑占用整体过多资源,太低容易出现用户分配不均匀、不合理、转发多等问题,继而造成上述丢包卡顿问题。特别是在用户量瞬间标高的场景,尤为明显。实践中如,在一个千人课堂内,老师邀请学生上线答题,此时课堂内千人学生,会同时去拉取该上线用户的新发布音视频流。调度信息的滞后性,导致调度错误,造成单个媒体服务节点发生突发流量拥塞。另外,现有的算法在出现单媒体服务节点资源过载时候,只能通过踢出部分服务用户,请求用户重新申请资源,分配用户到新的服务节点的方式降低当前过载节点的资源消耗。但这将导致用户观看端出现黑屏切换、卡顿等现象。因此,针对目前现有技术中存在的上述缺陷,实有必要进行研究,以提供一种方案,解决现有技术中存在的缺陷,提供更好的资源调度算法,避免用户节点切换,提高用户的观看体验。
技术实现思路
为了弥补现有技术的不足,本专利技术提供了一种无资源状态集中实时收集、各媒体节点自身资源实时评估主动任务获取式调度,并利用UDP特性构建实时流媒体集群调度的方法。所述的一种利用UDP特性构建实时流媒体集群调度的方法,其特征在于包括以下步骤:(1)用户发送连接请求到上行节点中,上行节点为接入点,接入点将用户对端开放IP和端口储存到内存数据库服务集群中,然后启动各个下行节点,下行节点为流媒体服务器,下行节点调用接入点的服务器接口,返回自身负载,接入点服务器在收到后记录流媒体服务器当前负载到内存服务器中;(2)用户推流,发送RTP/RTCP数据到接入点,接入点查询内存数据,获得当前流媒体服务器资源负载,先选择前三个空闲服务器,发送分配请求到所述空闲服务器中;(3)所述流媒体服务器收到推流请求后,根据自身当前实时负载判定是否进行推流接收服务,并返回,同时返回自身实时负载给接入点服务器,接入点服务器更新实时负载到内存数据库,根据收到服务器情况,选择一个最优服务器,下发任务;(4)所述流媒体服务器接收确认任务后,再次根据自身当前实时负载判定是否进行推流接收服务并返回,同时返回自身实时负载给接入点服务器,接入点服务更新实时负载到内存数据库,同时收到服务器确认情况,如果成功分配,则开始转发用户后续RTP数据包到确定的流媒体服务器,否则回到上述步骤(1)重新开始分配流程,完成推流用户的一个分配过程;(5)用户拉指定流A,发送拉流请求到接入点,接入点查询内存数据,获得当前所有正在服务流A的流媒体服务器负载,最多选择前三个空闲服务器,下发任务,并同时发送用户对端开放IP和端口,以及自身的内网IP和同该用户通讯的内网端口,如果当前无法获得空闲服务器,根据最后服务器状态判断都负载过高时候,启动流媒体服务器自动分配和启动流程,完成新服务器扩容,并下发和完成流媒体A的服务器转发,之后重新进行本步骤;(6)流媒体服务器收到拉流请求后,根据自身当前实时负载判定是否进行拉流推送服务,并返回,同时返回自身实时负载给接入点服务器,如果负载正常,可提供服务,同时记录用户对端开放IP和端口,以及接入点的内网IP和同该用户通讯的内网端口;(7)接入点服务器更新实时负载到内存数据库,根据收到服务器情况,如果成功分配,则开始转发后续可能的少量RTCP包到该确定服务器,否则回到上述步骤(5)重新开始拉流分配流程,完成拉流用户的一个分配;(8)拉流流媒体服务器,在收到流A的一个RTP数据包后,遍历当前所有接收服务任务的拉流用户列表,构建RTP下行数据包,并修改RTP数据包UDP协议栈中目标IP和端口为之前记录的该用户开放IP和端口,修改发送IP和端口为对应接入点内部IP和端口,将数据包发送到内网网关并将数据包发送到公网,数据包正常到达该确定用户,用户拉到流A并开始解码观看。所述的利用UDP特性构建实时流媒体集群调度的方法,其特征在于所述步骤(2)还包括步骤(21),当服务器资源不足时,启动流媒体服务器自动分配和启动流程,完成新服务器扩容后,重新进行所述步骤(2)。所述的利用UDP特性构建实时流媒体集群调度的方法,其特征在于所述步骤(5)中新服务器从当前具有A流的服务器拉取A流。所述的利用UDP特性构建实时流媒体集群调度的方法,其特征在于所述步骤(8)中所述内网网关根据数据包和自身的网关内网IP和端口映射表,自动修改发送IP和端口为和确定用户通讯的接入点对应的公网IP和端口。所述的利用UDP特性构建实时流媒体集群调度的方法,其特征在于所述步骤(8)中的所述RTP数据包来自于发布流A的用户通过接入点上行转发,或者来自于其他流A的流媒体服务器转发。所述的利用UDP特性构建实时流媒体集群调度的方法,其特征在于上行节点为接入点,所述接入点组合为接入点集群,用于实现用户RTP/RTCP协议的协商和接入。所述的利用UDP特性构建实时流媒体集群调度的方法,其特征在于下行节点为流媒体服务节点,组合为流媒体服务节点集群,当下行节点本身发现资源紧张时候,通知到上行节点中的调度模块中。所述的利用UDP特性构建实时流媒体集群调度的方法,其特征在于所述的调度模块发起下行节点资源申请命令,新的下行节点收到后立即根据服务用户的目标IP和端口,构建RTP包,发起流媒体数据的转发服务。所述的利用UDP特性构建实时流媒体集群调度的方法,其特征在于所述流媒体服务器、空闲服务器、接入点服务器、新服务器均具有统一出口网关,即服务器集群处于同一内网中。与现有技术相比,本专利技术有以下优点:巧妙的利用RTP包分发单向打通的方式,将下行分离出接入点,继而简化调度,并提高整体的资源利用率,减少用户因资源调度付出的如切断重新申请等代价。本方法不仅可以降低企业流媒体服务成本,提高用户流媒体体验,而且为现代社会发展中涌现出的新应用场景(如在线教育、社交泛娱乐、互动游戏、电商直播、企业协作、金融医疗、IoT)等的加速发展提供了技术方案支持。具体实施方式一种利用UDP特性构建实时流媒体集群调度的方法,包括接入点集群、流媒体服务节点集群和内存数据库服务集群。采用上下行分离的方式实现下行观看的巨量便捷扩展,上行节点为接入点集群,下行节点为流媒体服务节点集群。具体来看,在接入点集群实现用户RTP/RTCP协议的协商和接入,推流用户的上行数据RTP流都通过接入点集群接收。此类上行流量在整个大本文档来自技高网...

【技术保护点】
1.一种利用UDP特性构建实时流媒体集群调度的方法,其特征在于包括以下步骤:/n1)用户发送连接请求到上行节点中,上行节点为接入点,接入点将用户对端开放IP和端口储存到内存数据库服务集群中,然后启动各个下行节点,下行节点为流媒体服务器,下行节点调用接入点的服务器接口,返回自身负载,接入点服务器在收到后记录流媒体服务器当前负载到内存服务器中;/n2)用户推流,发送RTP/RTCP数据到接入点,接入点查询内存数据,获得当前流媒体服务器资源负载,先选择前三个空闲服务器,发送分配请求到所述空闲服务器中;/n3)所述流媒体服务器收到推流请求后,根据自身当前实时负载判定是否进行推流接收服务,并返回,同时返回自身实时负载给接入点服务器,接入点服务器更新实时负载到内存数据库,根据收到服务器情况,选择一个最优服务器,下发任务;/n4)所述流媒体服务器接收确认任务后,再次根据自身当前实时负载判定是否进行推流接收服务并返回,同时返回自身实时负载给接入点服务器,接入点服务更新实时负载到内存数据库,同时收到服务器确认情况,如果成功分配,则开始转发用户后续RTP数据包到确定的流媒体服务器,否则回到上述步骤1)重新开始分配流程,完成推流用户的一个分配过程;/n5)用户拉指定流A,发送拉流请求到接入点,接入点查询内存数据,获得当前所有正在服务流A的流媒体服务器负载,最多选择前三个空闲服务器,下发任务,并同时发送用户对端开放IP和端口,以及自身的内网IP和同该用户通讯的内网端口,如果当前无法获得空闲服务器,根据最后服务器状态判断都负载过高时候,启动流媒体服务器自动分配和启动流程,完成新服务器扩容,并下发和完成流媒体A的服务器转发,之后重新进行本步骤;/n6)流媒体服务器收到拉流请求后,根据自身当前实时负载判定是否进行拉流推送服务,并返回,同时返回自身实时负载给接入点服务器,如果负载正常,可提供服务,同时记录用户对端开放IP和端口,以及接入点的内网IP和同该用户通讯的内网端口;/n7)接入点服务器更新实时负载到内存数据库,根据收到服务器情况,如果成功分配,则开始转发后续可能的少量RTCP包到该确定服务器,否则回到上述步骤5)重新开始拉流分配流程,完成拉流用户的一个分配;/n8)拉流流媒体服务器,在收到流A的一个RTP数据包后,遍历当前所有接收服务任务的拉流用户列表,构建RTP下行数据包,并修改RTP数据包UDP协议栈中目标IP和端口为之前记录的该用户开放IP和端口,修改发送IP和端口为对应接入点内部IP和端口,将数据包发送到内网网关并将数据包发送到公网,数据包正常到达该确定用户,用户拉到流A并开始解码观看。/n...

【技术特征摘要】
1.一种利用UDP特性构建实时流媒体集群调度的方法,其特征在于包括以下步骤:
1)用户发送连接请求到上行节点中,上行节点为接入点,接入点将用户对端开放IP和端口储存到内存数据库服务集群中,然后启动各个下行节点,下行节点为流媒体服务器,下行节点调用接入点的服务器接口,返回自身负载,接入点服务器在收到后记录流媒体服务器当前负载到内存服务器中;
2)用户推流,发送RTP/RTCP数据到接入点,接入点查询内存数据,获得当前流媒体服务器资源负载,先选择前三个空闲服务器,发送分配请求到所述空闲服务器中;
3)所述流媒体服务器收到推流请求后,根据自身当前实时负载判定是否进行推流接收服务,并返回,同时返回自身实时负载给接入点服务器,接入点服务器更新实时负载到内存数据库,根据收到服务器情况,选择一个最优服务器,下发任务;
4)所述流媒体服务器接收确认任务后,再次根据自身当前实时负载判定是否进行推流接收服务并返回,同时返回自身实时负载给接入点服务器,接入点服务更新实时负载到内存数据库,同时收到服务器确认情况,如果成功分配,则开始转发用户后续RTP数据包到确定的流媒体服务器,否则回到上述步骤1)重新开始分配流程,完成推流用户的一个分配过程;
5)用户拉指定流A,发送拉流请求到接入点,接入点查询内存数据,获得当前所有正在服务流A的流媒体服务器负载,最多选择前三个空闲服务器,下发任务,并同时发送用户对端开放IP和端口,以及自身的内网IP和同该用户通讯的内网端口,如果当前无法获得空闲服务器,根据最后服务器状态判断都负载过高时候,启动流媒体服务器自动分配和启动流程,完成新服务器扩容,并下发和完成流媒体A的服务器转发,之后重新进行本步骤;
6)流媒体服务器收到拉流请求后,根据自身当前实时负载判定是否进行拉流推送服务,并返回,同时返回自身实时负载给接入点服务器,如果负载正常,可提供服务,同时记录用户对端开放IP和端口,以及接入点的内网IP和同该用户通讯的内网端口;
7)接入点服务器更新实时负载到内存数据库,根据收到服务器情况,如果成功分配,则开始转发后续可能的少量RTCP包到该确定服务器,否则回到上述步骤5)重新开始拉流分配流程,完成拉流用户的一个分配;
8)拉流流媒体服务器,在收到流A的一个RTP数据包后,遍历当前所...

【专利技术属性】
技术研发人员:张立峰褚国华周波
申请(专利权)人:杭州米络星科技集团有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1