一种IPTV系统直播调度的方法与流程

文档序号:28292262发布日期:2021-12-31 22:49阅读:229来源:国知局
一种IPTV系统直播调度的方法与流程
一种iptv系统直播调度的方法
技术领域
1.本发明属于直播调度领域,具体涉及一种iptv系统直播调度的方法。


背景技术:

2.iptv系统中,直播业务主要包括单播和组播协议传输,单播业务主要包括tv、vod、catch

up、timeshift、npvr及fcc等业务。iptv系统中采用rtsp单播协议,存储介质一般为内存,无法使用传统的cdn系统进行直播的加速和分发,需要搭建自己的直播服务器集群及直播调度系统。
3.现有的调度系统可以解决多直播频道的分配问题及多播放终端的调度问题,大程度上提高了系统的可用性和性能,但现有的调度系统依然存在如下弊端:1、源站节点中服务器通过http api查询其他节点频道列表,各服务器需要配置集群中其他服务器http api接口地址,增加或减少集群服务器需要对所有服务器配置进行更改并重启服务,导致系统可维护性较差,不具备弹性伸缩能力;2、边缘节点所有服务器都从源站回源拉流,同一个站点同一个频道可能存在多路回源拉流链路,造成网络资源的浪费,源站服务器负载过大;3、源站中的频道均只有一个备份,当源站中某服务器宕机时,该服务器的频道将全网不可用,存在单点故障风险。


技术实现要素:

4.本发明在于提供一种iptv系统直播调度方法,通过zookeeper监听功能实现直播服务器上下线监控功能,并能够及时迁移直播频道出故障直播服务器,提高系统直播服务的可用性;并依据直播服务器的负载信息判别查找合适的直播服务器,不需要人工修改配置参数,实现自动化配置,提高直播系统的可维护性,同时有效防止单一直播服务器负载过载,进而提高服务器硬件资源的利用率。
5.一种iptv系统直播调度方法,包括如下步骤:s1、直播服务器初始化:直播服务器启动,在zookeeper根目录下中检查servers节点和tasks节点,并创建相应的server_id永久子节点、tmp临时子节点和监听器;s2、内容管理接口服务器初始化:内容管理接口服务器启动,在zookeeper根目录下中检查channels节点,并创建相应的channel_id永久子节点;s3、内容调度服务器初始化:内容调度服务器启动,在zookeeper根目录下中检查channels节点、servers节点及tasks节点,注册监听器监听channels节点与servers节点。
6.s4、直播任务分配:s41、外部cms系统注入直播频道请求,内容管理接口服务器处理请求,在channel_id永久子节点中保存直播频道信息,channel_id永久子节点状态为未分配状态,之后返回外部cms处理结果,内容调度服务器通过监听器监听到channels节点的新增事件;s42、内容调度服务器查询对应的channel_id永久子节点,读取该channel_id永久
子节点保存的直播频道信息,同时遍历servers节点,获取所有服务器的负载信息,内容调度服务器根据预设好的分配规则将该直播频道分配给某一直播服务器,在tasks节点下查找对应的server_id永久子节点,在该server_id永久子节点下创建channel_id1直播任务节点,channel_id1直播任务节点保存信息,完成直播任务分配后更新channels节点下对应channel_id永久子节点的信息;s5、直播任务执行:直播频道分配给某一直播服务器,该直播服务器通过监听器监听到tasks节点的新增事件,该直播服务器读取channel_id1直播任务节点的保存信息,获取channel_id永久子节点的直播频道信息,启动频道的接收,执行直播任务。
7.通过zookeeper对iptv系统资源、配置统一管理,在其根目录下创建servers节点、tasks节点、channels节点,分别构建直播服务器、监听器以及直播频道,实现直播频道的引入、相关直播服务器的建立、直播频道任务的分配和执行,实现自动化配置和统一管理,从而达到更智能化的直播调度及良好的弹性伸缩能力。
8.进一步的,所述步骤s1具体包括:在zookeeper根目录下中检查servers节点是否存在,如果不存在则创建servers节点,直播服务器在servers节点下创建server_id永久子节点,用以保存直播服务器的负载信息及服务器接收的频道列表,直播服务器周期性对负载信息进行更新,直播服务器接收的频道列表信息在频道列表发生变动时,直播服务器对其进行更新;直播服务器在server_id永久子节点下创建tmp临时子节点,用于判断直播服务器的存活状态;在zookeeper根目录下中检查tasks节点是否存在,如果不存在创建tasks节点,在tasks节点下创建server_id永久子节点,并创建监听器监听该子节点。
9.通过设置监听器监听直播服务器的存在状态,上线直播服务器上下线的监控功能。
10.进一步的,所述步骤s41中在channel_id永久子节点中保存直播频道信息为:直播频道状态、直播频道元数据信息及接收直播频道的服务器列表;所述步骤s42中channel_id1直播任务节点保存信息包括:任务状态、任务类型、任务id、频道元数据,其中任务状态为未执行,任务类型为新增;完成直播任务分配后更新channels节点下对应channel_id1永久子节点的任务状态信息为已分配;更新接收直播频道的服务器列表。
11.通过对任务节点信息类型及状态的实时更新和监控,直观了解各直播频道任务分配情况。
12.进一步的,还包括直播频道删除步骤:外部cms请求删除直播频道,内容管理接口服务器处理该请求,在channels节点中查找并删除对应的channel_id永久子节点;内容调度服务器监听到channels节点的删除事件,内容调度服务器查询出被删除的channel_id永久子节点,遍历tasks节点下所有的子节点,查找对应的channel_id1直播任务节点,若查找到,则判断任务状态及其任务类型,若任务类型为新增且任务状态为未执行,则直接删除该channel_id1直播任务节点,若任务类型为新增且任务状态为已执行,则删除该channel_id1直播任务节点并创建一个任务类型为删除,任务状态为未执行的channel_id1直播任务节点,之后更新channels节点下对应的channel_id永久子节点的接
收该直播频道的服务器列表;直播服务器通过监听器监听到tasks节点的删除事件,直播服务器读取channel_id1直播任务节点的保存信息,获取channel_id永久子节点的直播频道信息,获取频道元数据,停止频道的接收,更新直播服务器servers节点中的频道列表。
13.通过对外部cms系统发出的删除直播频道的请求,各服务器通过监听器监听并执行删除操作,完整要删除直播频道的信息,节省各服务器内存空间。
14.进一步的,还包括播放请求调度步骤:请求调度服务器收到频道拉流请求,请求调度服务器解析出channel_id永久子节点参数,然后在channels节点下查找到该channel_id永久子节点,从该channel_id永久子节点中读取出接收直播频道的服务器列表;在直播服务器的servers节点下依次查询出所有接收该直播频道的直播服务器的负载信息,根据预设的调度策略,将频道拉流请求重新定向到目标服务器。
15.通过查找需要拉流的直播频道信息,遍历servers节点下所有接收该直播频道的直播服务器,依据预设调度策略,实现直播频道的拉流。
16.进一步的,还包括直播服务器故障迁移步骤:某一直播服务器宕机,该直播服务器的servers节点下对应的tmp临时子节点删除,内容调度服务器监听到servers节点的删除事件;内容调度服务器从该servers节点下读取对应的server_id子节点获取直播服务器的频道列表,如果该频道列表不为空则遍历频道列表,执行步骤s42。
17.内容调度服务器通过监听器监听到发生宕机的直播服务器下线,并在该直播服务器下线后对其直播频道进行迁移,提高系统直播服务的可用性。
18.进一步的,还包括频道动态扩容步骤:请求调度服务器调度直播频道请求,如果发现该直播频道所在的直播服务器负载均过载,请求调度服务器遍历其他直播服务器,查找负载小的直播服务器,然后在该直播服务器的tasks节点对应的server_id子节点下创建channel_id1直播任务节点,触发该直播服务器去接收需要调度的直播频道。
19.通过zookeeper对iptv系统资源和配置的统一管理,依据各直播服务器的负载信息以及各直播频道的负载信息,计算当前该直播服务器是否可承载该直播频道,依照频道动态扩容策略,适时对直播频道进行调度,有效防止直播服务器负载过载,进而提高服务器硬件资源的利用率,提高直播系统的可维护性。
20.本发明的有益效果为:通过zookeeper对iptv系统资源、配置统一管理,在其根目录下创建servers节点、tasks节点、channels节点,分别构建直播服务器、监听器以及直播频道,实现直播频道的引入、相关直播服务器的建立、直播频道任务的分配和执行,实现自动化配置和统一化管理,从而达到更智能化的直播调度及良好的弹性伸缩能力;zookeeper的监听功能实现直播服务器上下线监控功能,并能够及时迁移直播频道出故障直播服务器,提高系统直播服务的可用性;并依据直播服务器的负载信息判别查找合适的直播服务器,不需要人工修改配置参数,实现自动化配置,提高直播系统的可维护性,同时有效防止单一直播服务器负载过载,进而提高服务器硬件资源的利用率。
附图说明
21.图1为本发明中iptv系统的示意图;图2为本发明的流程示意图。
具体实施方式
22.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.图1所示的是一种iptv系统,包括zookeeper、请求调度服务器、内容调度服务器、直播服务器和内容管理接口服务器;zookeeper连接请求调度服务器、内容管理服务器和直播服务器,请求调度服务器和内容管理服务器的另一端连接内容管理接口服务器,用于接收外部cms系统发出的直播频道的请求。
24.通过引入开源的分布式应用程序协调服务zookeeper对iptv系统服务器中的请求调度服务器、内容调度服务器、直播服务器进行集中管理,实现各服务器配置参数、直播频道元数据、直播频道分配、播放请求的调度的统一管理,利用其监听机制实现各服务器间的事件通知,简化集群中各服务器间的交互,从而达到更智能的直播调度和良好的弹性伸缩能力;同时通过各服务器实现直播系统中直播频道内容的增删查改、直播频道的管理和拉流以及直播任务的执行,自动化配置,提高直播系统的可用性。
25.图2所示的是一种iptv系统直播调度的方法,包括如下步骤:s1、直播服务器初始化:直播服务器启动,在zookeeper根目录下中检查servers节点和tasks节点,并创建相应的server_id永久子节点、tmp临时子节点和监听器;s2、内容管理接口服务器初始化:内容管理接口服务器启动,在zookeeper根目录下中检查channels节点,并创建相应的channel_id永久子节点;s3、内容调度服务器初始化:内容调度服务器启动,在zookeeper根目录下中检查channels节点、servers节点及tasks节点,注册监听器监听channels节点与servers节点;s4、直播任务分配:s41、外部cms注入直播频道请求,内容管理接口服务器处理请求,在channel_id永久子节点中保存直播频道信息,channel_id永久子节点状态为未分配状态,之后返回外部cms处理结果,内容调度服务器通过监听器监听到channels节点的新增事件;s42、内容调度服务器查询对应的channel_id永久子节点,读取该channel_id永久子节点保存的直播频道信息,同时遍历servers节点,获取所有服务器的负载信息,内容调度服务器根据预设好的分配规则将该直播频道分配给某一直播服务器,在tasks节点下查找对应的server_id永久子节点,在该server_id永久子节点下创建channel_id1直播任务节点,channel_id1直播任务节点保存信息,完成直播任务分配后更新channels节点下对应channel_id永久子节点的信息;s5、直播任务执行:直播频道分配给某一直播服务器,该直播服务器通过监听器监听到tasks节点的新增事件,该直播服务器读取channel_id1直播任务节点的保存信息,获取channel_id永久子节点的直播频道信息,启动频道的接收,执行直播任务。
26.通过zookeeper对iptv系统资源、配置统一管理,在其根目录下创建servers节点、tasks节点、channels节点,分别构建直播服务器、监听器以及直播频道,实现直播频道的引入、相关直播服务器的建立、直播频道任务的分配和执行,实现自动化配置和统一管理,从而达到更智能化的直播调度及良好的弹性伸缩能力。
27.在本实施例中,步骤s1具体包括如下步骤:s11、在zookeeper根目录下中检查servers节点是否存在,如果不存在则创建servers节点,直播服务器在servers节点下创建server_id永久子节点,用以保存直播服务器的负载信息及服务器接收的频道列表,直播服务器周期性对负载信息进行更新,直播服务器接收的频道列表信息在频道列表发生变动时,直播服务器对其进行更新;s12、直播服务器在server_id永久子节点下创建tmp临时子节点,用于判断直播服务器的存活状态,即创建tmp临时子节点,则表示对应的直播服务器上线,删除tmp临时子节点,则对应的直播服务器下线;s13、在zookeeper根目录下中检查tasks节点是否存在,如果不存在创建tasks节点,在tasks节点下创建server_id永久子节点,并创建监听器监听该子节点。
28.通过设置监听器监听直播服务器的存在状态,上线直播服务器上下线的监控功能。
29.在本实施例中,步骤s41中在channel_id永久子节点中保存直播频道信息为:直播频道状态、直播频道元数据信息及接收直播频道的服务器列表;步骤s42中channel_id1直播任务节点保存信息包括:任务状态、任务类型、任务id、频道元数据,其中任务状态为未执行,任务类型为新增;完成直播任务分配后更新channels节点下对应channel_id1永久子节点的任务状态信息为已分配;更新接收直播频道的服务器列表。
30.通过对任务节点信息类型及状态的实时更新和监控,直观了解各直播频道任务分配情况。
31.在本实施例中,还包括直播频道的删除,具体包括如下步骤:t11:外部cms系统发出删除直播频道的请求,内容管理接口服务器处理该请求,在channels节点中查找并删除对应的channel_id永久子节点;t12:内容调度服务器监听到channels节点的删除事件,内容调度服务器查询出被删除的channel_id永久子节点,遍历tasks节点下所有的子节点,查找对应的channel_id1直播任务节点,若查找到,则判断任务状态及其任务类型,若任务类型为新增且任务状态为未执行,则直接删除该channel_id1直播任务节点,若任务类型为新增且任务状态为已执行,则删除该channel_id1直播任务节点并创建一个任务类型为删除,任务状态为未执行的channel_id1直播任务节点,之后更新channels节点下对应的channel_id永久子节点的接收该直播频道的服务器列表;t13:直播服务器通过监听器监听到tasks节点的删除事件,直播服务器读取channel_id1直播任务节点的保存信息,获取channel_id永久子节点的直播频道信息,获取频道元数据,停止频道的接收,更新直播服务器servers节点中的频道列表。
32.通过对外部cms系统发出的删除直播频道的请求,各服务器通过监听器监听并执行删除操作,完整要删除直播频道的信息,节省各服务器内存空间。
33.在本实施例中,还包括服务器的播放请求调度,具体包括如下步骤: t21:请求调度服务器收到频道拉流请求,请求调度服务器解析出channel_id永久子节点参数,然后在channels节点下查找到该channel_id永久子节点,从该channel_id永久子节点中读取出接收直播频道的服务器列表;t22:在直播服务器的servers节点下依次查询出所有接收该直播频道的直播服务器的负载信息,根据预设的调度策略,将频道拉流请求重新定向到目标服务器。
34.通过查找需要拉流的直播频道信息,遍历servers节点下所有接收该直播频道的直播服务器,依据预设调度策略,实现直播频道的拉流。
35.在本实施例中,还包括直播服务器故障迁移,具体包括如下步骤:t31:某单一直播服务器发生宕机,显示该直播服务器下线,该直播服务器的servers节点下对应的tmp临时子节点被删除,内容调度服务器监听到servers节点的删除事件;t32:内容调度服务器从该servers节点下读取对应的server_id子节点获取直播服务器的频道列表,如果该频道列表不为空则遍历频道列表,执行步骤s42。
36.内容调度服务器通过监听器监听到发生宕机的直播服务器下线,并在该直播服务器下线后对其直播频道进行迁移,提高系统直播服务的可用性。
37.在本实施例中,还包括频道动态扩容,具体包括如下步骤:t41:请求调度服务器调度直播频道请求,如果发现该直播频道所在的直播服务器负载均过载,请求调度服务器遍历其他直播服务器,查找负载小的直播服务器,然后在该直播服务器的tasks节点对应的server_id子节点下创建channel_id1直播任务节点,触发该直播服务器去接收需要调度的直播频道。
38.通过zookeeper对iptv系统资源和配置的统一管理,依据各直播服务器的负载信息以及各直播频道的负载信息,计算当前该直播服务器是否可承载该直播频道,依照频道动态扩容策略,适时对直播频道进行调度,有效防止直播服务器负载过载,进而提高服务器硬件资源的利用率,提高直播系统的可维护性。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1