CN113852593B - 一种分布式流媒体集群的部署***及方法 - Google Patents

一种分布式流媒体集群的部署***及方法 Download PDF

Info

Publication number
CN113852593B
CN113852593B CN202110819201.4A CN202110819201A CN113852593B CN 113852593 B CN113852593 B CN 113852593B CN 202110819201 A CN202110819201 A CN 202110819201A CN 113852593 B CN113852593 B CN 113852593B
Authority
CN
China
Prior art keywords
streaming media
stream
streaming
media service
service instance
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
Application number
CN202110819201.4A
Other languages
English (en)
Other versions
CN113852593A (zh
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.)
Inspur Software Technology Co Ltd
Original Assignee
Inspur Software 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 Inspur Software Technology Co Ltd filed Critical Inspur Software Technology Co Ltd
Priority to CN202110819201.4A priority Critical patent/CN113852593B/zh
Publication of CN113852593A publication Critical patent/CN113852593A/zh
Application granted granted Critical
Publication of CN113852593B publication Critical patent/CN113852593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种分布式流媒体集群的部署***及方法,涉及多媒体技术领域,该***包括:部署在第一流媒体集群内的第二流媒体集群,且,流媒体服务的服务地址为一个;被推流的流媒体服务实例根据媒体流发送者进行推流时的推流地址解析出对应的拉流地址并将拉流地址发送给第二流媒体集群;被拉流的流媒体服务实例通过第二流媒体集群,获取媒体流发送者进行拉流时的拉流地址对应的实际推流的流媒体服务实例,被拉流的流媒体服务实例从实际推流的流媒体服务实例拉取媒体流,并将拉取的媒体流推送至媒体流接收者,本发明兼顾视频监控***的弹性伸缩、容错恢复与稳定性以及实用性,为更好的打造上万路的云边端一体化的视频监控***提供技术支撑。

Description

一种分布式流媒体集群的部署***及方法
技术领域
本发明涉及多媒体技术领域,尤其涉及一种分布式流媒体集群的部署***及方法。
背景技术
在视频监控应用普及的今天,同时接入上万路网络摄像机与同时满足上万人进行实时音视频点播的需求与日俱增,这就要求针对流媒体服务进行分布式、集群化部署,实现动态的伸缩与容错恢复,比如使用到容器编排平台Kubernetes以及提供分布式同步的协调服务Zookeeper。其中,Kubernetes,简称K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Chubby一个开源的实现,是Hadoop和Hbase的重要组件,ZooKeeper是一个为分布式应用提供一致***的软件,ZooKeeper提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
但部署多个流媒体服务实例就会带来一个问题,如图1所示,当在Kubernetes集群中部署了多个流媒体服务实例例如A、B、C、D四个流媒体服务实例时,每个流媒体服务实例通过流媒体服务(Service)统一对外发布服务,媒体流发送者将实时媒体流推送到了流媒体服务实例B上,但媒体流接收者通过拉流地址进行拉流请求时,流媒体服务将请求路由至流媒体服务实例D上,即实际推流的媒体服务实例与接受到用户拉流请求的媒体服务实例不是同一个,这样就会产生媒体流接收者拉取不到流的情况。
为了解决上述在部署多个流媒体服务实例时媒体流接收者拉取不到流的问题,需要提出一种新的分布式流媒体集群的部署架构。
发明内容
本发明提供一种分布式流媒体集群的部署***及方法,用以解决现有技术中部署多个流媒体服务实例时媒体流接收者拉取不到流的缺陷,实现兼顾视频监控***的弹性伸缩、容错恢复与稳定性以及实用性。
本发明提供一种分布式流媒体集群的部署***,包括:媒体流发送者、媒体流接收者以及第一流媒体集群,所述第一流媒体集群中部署了流媒体服务以及多个流媒体服务实例,每个所述流媒体服务实例均通过所述流媒体服务对外发布服务,所述媒体流发送者通过所述流媒体服务将媒体流推送至所述流媒体服务实例,所述媒体流接收者通过所述流媒体服务从所述流媒体服务实例拉取媒体流,还包括:
部署在所述第一流媒体集群内的第二流媒体集群,且,所述流媒体服务的服务地址为一个;
其中,被推流的所述流媒体服务实例根据所述媒体流发送者进行推流时的推流地址解析出对应的拉流地址,并将拉流地址发送给所述第二流媒体集群;
被拉流的所述流媒体服务实例通过所述第二流媒体集群,获取所述媒体流发送者进行拉流时的拉流地址对应的实际推流的所述流媒体服务实例,被拉流的所述流媒体服务实例从实际推流的所述流媒体服务实例拉取媒体流,并将拉取的媒体流推送至所述媒体流接收者,实际推流的所述流媒体服务实例为媒体流发送者进行推流时的被推流的所述流媒体服务实例,或者为空闲且在线的所述流媒体服务实例。
根据本发明提供的分布式流媒体集群的部署***,所述流媒体服务实例获取其地址以及对应的所述拉流地址之间的映射关系,并将所述拉流地址以及所述映射关系发送至所述第二流媒体集群。
根据本发明提供的分布式流媒体集群的部署***,所述拉流地址以及所述映射关系以JSON格式数据发送至所述第二流媒体集群,且,所述第二流媒体集群存储所述JSON格式数据。
根据本发明提供的分布式流媒体集群的部署***,所述媒体流发送者通过推流地址向所述流媒体服务推流,并通过所述流媒体服务的转发将媒体流推送至其中一个在线的所述流媒体服务实例,被推流的所述流媒体服务实例根据媒体流发送者进行推流时的推流地址解析出对应的拉流地址。
根据本发明提供的分布式流媒体集群的部署***,所述媒体流接收者通过拉流地址从所述流媒体服务拉流,并通过所述流媒体服务的转发从其中一个在线的所述流媒体服务实例拉取媒体流;
其中,当被拉流的所述流媒体服务实例为实际推流的所述流媒体服务实例时,被拉流的所述流媒体服务实例通过所述流媒体服务的转发将媒体流推送至所述媒体流接收者;
当被拉流的所述流媒体服务实例并非实际推流的所述流媒体服务实例时,被拉流的所述流媒体服务实例从实际推流的所述流媒体服务实例拉取媒体流,并通过所述流媒体服务的转发将拉取的媒体流推送至所述媒体流接收者。
根据本发明提供的分布式流媒体集群的部署***,所述第一流媒体集群采用Kubernetes集群。
根据本发明提供的分布式流媒体集群的部署***,所述第二流媒体集群采用Zookeeper集群。
根据本发明提供的分布式流媒体集群的部署***,所述流媒体服务的类型采用负载均衡器。
根据本发明提供的分布式流媒体集群的部署***,所述流媒体服务获取来自所述媒体流接收者的拉流请求,并通过负载均衡算法转发所述拉流请求至其中一个在线的所述流媒体服务实例,该流媒体服务实例将媒体流推送至所述媒体流接收者。
本发明还提供一种分布式流媒体集群的部署方法,包括以下步骤:
所述媒体流发送者通过推流地址向所述流媒体服务推流,并通过所述流媒体服务的转发将媒体流推送至其中一个在线的所述流媒体服务实例;
被推流的所述流媒体服务实例根据所述媒体流发送者进行推流时的推流地址解析出对应的拉流地址,所述流媒体服务实例获取其地址以及对应的所述拉流地址之间的映射关系,并将所述拉流地址以及所述映射关系发送至所述第二流媒体集群;
所述媒体流接收者通过拉流地址从所述流媒体服务拉流,并通过所述流媒体服务的转发从其中一个在线的所述流媒体服务实例拉取媒体流;
所述第二流媒体集群获取所述媒体流接收者拉流时的拉流地址对应的实际推流的所述流媒体服务实例,并判断被拉流的所述流媒体服务实例是否为实际推流的所述流媒体服务实例;
当被拉流的所述流媒体服务实例为实际推流的所述流媒体服务实例时,被拉流的所述流媒体服务实例通过所述流媒体服务的转发将媒体流推送至所述媒体流接收者;
当被拉流的所述流媒体服务实例并非实际推流的所述流媒体服务实例时,被拉流的所述流媒体服务实例从实际推流的所述流媒体服务实例拉取媒体流,并通过所述流媒体服务的转发将拉取的媒体流推送至所述媒体流接收者。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述分布式流媒体集群的部署方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述分布式流媒体集群的部署方法的步骤。
本发明提供的分布式流媒体集群的部署***及方法,为用户提供无感知的拉流转发服务,通过在第一流媒体集群中部署第二流媒体服务集群,解析流媒体服务实例在媒体流发送者推流过程中对应的拉流地址,并获取该拉流地址与流媒体服务实例地址之间的映射关系,并通过第二流媒体服务集群进行存储,之后在媒体流接收者进行拉流时,根据媒体流接收者拉流时拉流地址获取实际推流的流媒体服务实例地址进而得知到底是哪个流媒体服务实例进行实际推流,当前被拉流的流媒体服务实例进行直接推送实时媒体流或者从实际推流的流媒体服务实例拉取媒体流,并通过流媒体服务的转发将拉取的媒体流推送至所述媒体流接收者,实现将流媒体服务进行分布式集群部署,并解决了在集群环境下通过拉流地址查找实际的流媒体服务实例不是进行推流的同一个流媒体服务实例时,无法转发实时媒体流的问题,兼顾视频监控***的弹性伸缩、容错恢复与稳定性以及实用性,为更好的打造上万路的云边端一体化的视频监控***提供技术支撑。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中部署多个流媒体服务实例时媒体流接收者获取媒体流发送者发送的媒体流的示意图;
图2是本发明提供的分布式流媒体集群的部署***的结构示意图;
图3是本发明提供的分布式流媒体集群的部署***中媒体流接收者获取媒体流发送者发送的媒体流的示意图;
图4为本发明提供的分布式流媒体集群的部署方法的流程示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图2和图3描述本发明的分布式流媒体集群的部署***,该***不仅包括如图1所示的媒体流发送者100、媒体流接收者200以及第一流媒体集群300,其中,第一流媒体集群300中部署了流媒体服务310以及多个流媒体服务实例320,具体的,当第一流媒体集群300部署了至少两个流媒体服务实例320时,流媒体服务实例320的个数与网络摄像头的接入路数有关,每个流媒体服务实例320均通过流媒体服务310对外发布服务,媒体流发送者100通过流媒体服务310将媒体流推送至流媒体服务实例320,媒体流接收者200通过流媒体服务310从流媒体服务实例320拉取媒体流,还包括:
部署在第一流媒体集群300内的第二流媒体集群330,且,流媒体服务310的服务地址为一个,即流媒体服务320对外暴露服务,对于媒体流发送者100以及媒体流接收者200而言,流媒体服务310的服务地址只有一个。
其中,被推流的流媒体服务实例320根据媒体流发送者100进行推流时的推流地址解析出对应的拉流地址,并将拉流地址发送给第二流媒体集群330。具体的为:媒体流发送者100通过推流地址向流媒体服务310推流,并通过流媒体服务310的转发将媒体流推送至其中一个在线的流媒体服务实例320,被推流的流媒体服务实例320根据媒体流发送者100进行推流时的推流地址解析出对应的拉流地址。
同时在此过程中,流媒体服务实例320获取其地址以及对应的拉流地址之间的映射关系,并将拉流地址以及映射关系发送至第二流媒体集群330。
在本实施例中,拉流地址以及映射关系以JSON格式数据发送至第二流媒体集群330,且,第二流媒体集群330存储JSON格式数据。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于欧洲计算机协会制定的对象简谱规范(ECMAScript)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,简洁和清晰的层次结构使得JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
被拉流的流媒体服务实例320通过第二流媒体集群330,获取媒体流发送者100进行拉流时的拉流地址对应的实际推流的流媒体服务实例320,被拉流的流媒体服务实例320从实际推流的流媒体服务实例320拉取媒体流,并将拉取的媒体流推送至媒体流接收者200,实际推流的流媒体服务实例320即为媒体流发送者100进行推流时的被推流的流媒体服务实例320,或者为空闲且在线的流媒体服务实例320。具体的为:媒体流接收者200通过拉流地址从流媒体服务310拉流,并通过流媒体服务310的转发从其中一个在线的流媒体服务实例320拉取媒体流;
其中,当被拉流的流媒体服务实例320为实际推流的流媒体服务实例320时,被拉流的流媒体服务实例320通过流媒体服务310的转发将媒体流推送至媒体流接收者200;
当被拉流的流媒体服务实例320并非实际推流的流媒体服务实例320时,被拉流的流媒体服务实例320从实际推流的流媒体服务实例320拉取媒体流,并通过流媒体服务310的转发将拉取的媒体流推送至媒体流接收者200。
在本实施例中,第一流媒体集群300采用Kubernetes集群,第二流媒体集群330采用Zookeeper集群,其中,Kubernetes集群提供Zookeeper集群与流媒体服务集群的自动化部署、扩容、容错、健康检查及异常恢复,同时使用Service组件作为流媒体服务310提供服务注册与发现、自动路由与负载均衡,在本实施例中,流媒体服务310的类型采用负载均衡器(LoadBalancer),因此,流媒体服务310获取来自媒体流接收者200的拉流请求,并通过负载均衡算法转发拉流请求至其中一个在线的流媒体服务实例320,该流媒体服务实例320将媒体流推送至媒体流接收者200,成为最终向媒体流接收者200推流的流媒体服务实例320,当可能并非是实际推流的流媒体服务实例320,而是一个进行流媒体中转的流媒体服务实例320;Zookeeper集群提供配置中心功能,保存拉流地址与流媒体服务实例320地址之间的映射关系数据,同时为每一个流媒体服务实例320提供同步的数据配置;流媒体集群负责为媒体流发送者100提供推流地址,以及为媒体流接收者200提供拉流地址,实现将媒体流发送者100发送的媒体流转发给媒体流接收者200;媒体流发送者100包括网络摄像机、网络视频录像机(Network Video Recorder,NVR)、其他平台等;媒体流接收者200代表了用户音视频监控点播终端等。
本发明的分布式流媒体集群的部署***,为用户提供无感知的拉流转发服务,通过在第一流媒体集群300中部署第二流媒体服务集群330,解析流媒体服务实例320在媒体流发送者100推流过程中对应的拉流地址,并获取该拉流地址与流媒体服务实例320地址之间的映射关系,并通过第二流媒体服务集群330进行存储,之后在媒体流接收者200进行拉流时,根据媒体流接收者200拉流时拉流地址获取实际推流的流媒体服务实例320地址进而得知到底是哪个流媒体服务实例320进行实际推流,当前被拉流的流媒体服务实例320进行直接推送实时媒体流或者从实际推流的流媒体服务实例320拉取媒体流,并通过流媒体服务310的转发将拉取的媒体流推送至所述媒体流接收者200,实现将流媒体服务进行分布式集群部署,并解决了在集群环境下通过拉流地址查找实际的流媒体服务实例不是进行推流的同一个流媒体服务实例时,无法转发实时媒体流的问题,兼顾视频监控***的弹性伸缩、容错恢复与稳定性以及实用性,为更好的打造上万路的云边端一体化的视频监控***提供技术支撑。
下面结合图4描述本发明的分布式流媒体集群的部署方法,该方法包括以下步骤:
S100、媒体流发送者100通过推流地址向流媒体服务310推流,并通过流媒体服务310的转发将媒体流推送至其中一个在线的流媒体服务实例320。
S200、被推流的流媒体服务实例320根据媒体流发送者100进行推流时的推流地址解析出对应的拉流地址,流媒体服务实例320获取其地址以及对应的拉流地址之间的映射关系,并将拉流地址以及映射关系发送至第二流媒体集群330。
S300、媒体流接收者200通过拉流地址从流媒体服务310拉流,并通过流媒体服务310的转发从其中一个在线的流媒体服务实例320拉取媒体流。
S400、第二流媒体集群330获取媒体流接收者200拉流时的拉流地址对应的实际推流的流媒体服务实例320,并判断被拉流的流媒体服务实例320是否为实际推流的流媒体服务实例320。
S500、当被拉流的流媒体服务实例320为实际推流的流媒体服务实例320时,被拉流的流媒体服务实例320通过流媒体服务310的转发将媒体流推送至媒体流接收者200。
S600、当被拉流的流媒体服务实例320并非实际推流的流媒体服务实例320时,被拉流的流媒体服务实例320从实际推流的流媒体服务实例320拉取媒体流,并通过流媒体服务310的转发将拉取的媒体流推送至媒体流接收者200。
本发明的分布式流媒体集群的部署***,为用户提供无感知的拉流转发服务,通过步骤S200解析流媒体服务实例320在媒体流发送者100推流过程中对应的拉流地址,并获取该拉流地址与流媒体服务实例320地址之间的映射关系,并通过第二流媒体服务集群330进行存储,之后在步骤S400中,根据媒体流接收者200拉流时拉流地址获取实际推流的流媒体服务实例320地址进而得知到底是哪个流媒体服务实例320进行实际推流,执行相应的步骤S500或者步骤S600,实现将流媒体服务进行分布式集群部署,并解决了在集群环境下通过拉流地址查找实际的流媒体服务实例不是进行推流的同一个流媒体服务实例时,无法转发实时媒体流的问题,兼顾视频监控***的弹性伸缩、容错恢复与稳定性以及实用性,为更好的打造上万路的云边端一体化的视频监控***提供技术支撑。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行分布式流媒体集群的部署方法,该方法包括以下步骤:
S100、所述媒体流发送者100通过推流地址向所述流媒体服务310推流,并通过所述流媒体服务310的转发将媒体流推送至其中一个在线的所述流媒体服务实例320;
S200、被推流的所述流媒体服务实例320根据所述媒体流发送者100进行推流时的推流地址解析出对应的拉流地址,所述流媒体服务实例320获取其地址以及对应的所述拉流地址之间的映射关系,并将所述拉流地址以及所述映射关系发送至所述第二流媒体集群330;
S300、所述媒体流接收者200通过拉流地址从所述流媒体服务310拉流,并通过所述流媒体服务310的转发从其中一个在线的所述流媒体服务实例320拉取媒体流;
S400、所述第二流媒体集群330获取所述媒体流接收者200拉流时的拉流地址对应的实际推流的所述流媒体服务实例320,并判断被拉流的所述流媒体服务实例320是否为实际推流的所述流媒体服务实例320;
S500、当被拉流的所述流媒体服务实例320为实际推流的所述流媒体服务实例320时,被拉流的所述流媒体服务实例320通过所述流媒体服务310的转发将媒体流推送至所述媒体流接收者200;
S600、当被拉流的所述流媒体服务实例320并非实际推流的所述流媒体服务实例320时,被拉流的所述流媒体服务实例320从实际推流的所述流媒体服务实例320拉取媒体流,并通过所述流媒体服务310的转发将拉取的媒体流推送至所述媒体流接收者200。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的分布式流媒体集群的部署方法,该方法包括以下步骤:
S100、所述媒体流发送者100通过推流地址向所述流媒体服务310推流,并通过所述流媒体服务310的转发将媒体流推送至其中一个在线的所述流媒体服务实例320;
S200、被推流的所述流媒体服务实例320根据所述媒体流发送者100进行推流时的推流地址解析出对应的拉流地址,所述流媒体服务实例320获取其地址以及对应的所述拉流地址之间的映射关系,并将所述拉流地址以及所述映射关系发送至所述第二流媒体集群330;
S300、所述媒体流接收者200通过拉流地址从所述流媒体服务310拉流,并通过所述流媒体服务310的转发从其中一个在线的所述流媒体服务实例320拉取媒体流;
S400、所述第二流媒体集群330获取所述媒体流接收者200拉流时的拉流地址对应的实际推流的所述流媒体服务实例320,并判断被拉流的所述流媒体服务实例320是否为实际推流的所述流媒体服务实例320;
S500、当被拉流的所述流媒体服务实例320为实际推流的所述流媒体服务实例320时,被拉流的所述流媒体服务实例320通过所述流媒体服务310的转发将媒体流推送至所述媒体流接收者200;
S600、当被拉流的所述流媒体服务实例320并非实际推流的所述流媒体服务实例320时,被拉流的所述流媒体服务实例320从实际推流的所述流媒体服务实例320拉取媒体流,并通过所述流媒体服务310的转发将拉取的媒体流推送至所述媒体流接收者200。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的分布式流媒体集群的部署方法,该方法包括以下步骤:
S100、所述媒体流发送者100通过推流地址向所述流媒体服务310S100、所述媒体流发送者100通过推流地址向所述流媒体服务310推流,并通过所述流媒体服务310的转发将媒体流推送至其中一个在线的所述流媒体服务实例320;
S200、被推流的所述流媒体服务实例320根据所述媒体流发送者100进行推流时的推流地址解析出对应的拉流地址,所述流媒体服务实例320获取其地址以及对应的所述拉流地址之间的映射关系,并将所述拉流地址以及所述映射关系发送至所述第二流媒体集群330;
S300、所述媒体流接收者200通过拉流地址从所述流媒体服务310拉流,并通过所述流媒体服务310的转发从其中一个在线的所述流媒体服务实例320拉取媒体流;
S400、所述第二流媒体集群330获取所述媒体流接收者200拉流时的拉流地址对应的实际推流的所述流媒体服务实例320,并判断被拉流的所述流媒体服务实例320是否为实际推流的所述流媒体服务实例320;
S500、当被拉流的所述流媒体服务实例320为实际推流的所述流媒体服务实例320时,被拉流的所述流媒体服务实例320通过所述流媒体服务310的转发将媒体流推送至所述媒体流接收者200;
S600、当被拉流的所述流媒体服务实例320并非实际推流的所述流媒体服务实例320时,被拉流的所述流媒体服务实例320从实际推流的所述流媒体服务实例320拉取媒体流,并通过所述流媒体服务310的转发将拉取的媒体流推送至所述媒体流接收者200。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种分布式流媒体集群的部署***,包括:媒体流发送者(100)、媒体流接收者(200)以及第一流媒体集群(300),所述第一流媒体集群(300)中部署了流媒体服务(310)以及多个流媒体服务实例(320),每个所述流媒体服务实例(320)均通过所述流媒体服务(310)对外发布服务,所述媒体流发送者(100)通过所述流媒体服务(310)将媒体流推送至所述流媒体服务实例(320),所述媒体流接收者(200)通过所述流媒体服务(310)从所述流媒体服务实例(320)拉取媒体流,其特征在于,还包括:
部署在所述第一流媒体集群(300)内的第二流媒体集群(330),且,所述流媒体服务(310)的服务地址为一个;
其中,被推流的所述流媒体服务实例(320)根据所述媒体流发送者(100)进行推流时的推流地址解析出对应的拉流地址,并将拉流地址发送给所述第二流媒体集群(330);
被拉流的所述流媒体服务实例(320)通过所述第二流媒体集群(330),获取所述媒体流发送者(100)进行拉流时的拉流地址对应的实际推流的所述流媒体服务实例(320),被拉流的所述流媒体服务实例(320)从实际推流的所述流媒体服务实例(320)拉取媒体流,并将拉取的媒体流推送至所述媒体流接收者(200),实际推流的所述流媒体服务实例(320)为媒体流发送者(100)进行推流时的被推流的所述流媒体服务实例(320),或者为空闲且在线的所述流媒体服务实例(320)。
2.根据权利要求1所述的分布式流媒体集群的部署***,其特征在于,所述流媒体服务实例(320)获取流媒体服务实例地址及对应的所述拉流地址之间的映射关系,并将所述拉流地址以及所述映射关系发送至所述第二流媒体集群(330)。
3.根据权利要求2所述的分布式流媒体集群的部署***,其特征在于,所述拉流地址以及所述映射关系以JSON格式数据发送至所述第二流媒体集群(330),且,所述第二流媒体集群(330)存储所述JSON格式数据。
4.根据权利要求2所述的分布式流媒体集群的部署***,其特征在于,所述媒体流发送者(100)通过推流地址向所述流媒体服务(310)推流,并通过所述流媒体服务(310)的转发将媒体流推送至其中一个在线的所述流媒体服务实例(320),被推流的所述流媒体服务实例(320)根据媒体流发送者(100)进行推流时的推流地址解析出对应的拉流地址。
5.根据权利要求2所述的分布式流媒体集群的部署***,其特征在于,所述媒体流接收者(200)通过拉流地址从所述流媒体服务(310)拉流,并通过所述流媒体服务(310)的转发从其中一个在线的所述流媒体服务实例(320)拉取媒体流;
其中,当被拉流的所述流媒体服务实例(320)为实际推流的所述流媒体服务实例(320)时,被拉流的所述流媒体服务实例(320)通过所述流媒体服务(310)的转发将媒体流推送至所述媒体流接收者(200);
当被拉流的所述流媒体服务实例(320)并非实际推流的所述流媒体服务实例(320)时,被拉流的所述流媒体服务实例(320)从实际推流的所述流媒体服务实例(320)拉取媒体流,并通过所述流媒体服务(310)的转发将拉取的媒体流推送至所述媒体流接收者(200)。
6.根据权利要求1所述的分布式流媒体集群的部署***,其特征在于,所述第一流媒体集群(300)采用Kubernetes集群。
7.根据权利要求1所述的分布式流媒体集群的部署***,其特征在于,所述第二流媒体集群(330)采用Zookeeper集群。
8.根据权利要求1所述的分布式流媒体集群的部署***,其特征在于,所述流媒体服务(310)的类型采用负载均衡器。
9.根据权利要求8所述的分布式流媒体集群的部署***,其特征在于,所述流媒体服务(310)获取来自所述媒体流接收者(200)的拉流请求,并通过负载均衡算法转发所述拉流请求至其中一个在线的所述流媒体服务实例(320),该流媒体服务实例(320)将媒体流推送至所述媒体流接收者(200)。
10.一种基于权利要求1-9任一项所述的分布式流媒体集群的部署***所实现的分布式流媒体集群的部署方法,其特征在于,包括以下步骤:
所述媒体流发送者(100)通过推流地址向所述流媒体服务(310)推流,并通过所述流媒体服务(310)的转发将媒体流推送至其中一个在线的所述流媒体服务实例(320);
被推流的所述流媒体服务实例(320)根据所述媒体流发送者(100)进行推流时的推流地址解析出对应的拉流地址,所述流媒体服务实例(320)获取流媒体服务实例地址以及对应的所述拉流地址之间的映射关系,并将所述拉流地址以及所述映射关系发送至所述第二流媒体集群(330);
所述媒体流接收者(200)通过拉流地址从所述流媒体服务(310)拉流,并通过所述流媒体服务(310)的转发从其中一个在线的所述流媒体服务实例(320)拉取媒体流;
所述第二流媒体集群(330)获取所述媒体流接收者(200)拉流时的拉流地址对应的实际推流的所述流媒体服务实例(320),并判断被拉流的所述流媒体服务实例(320)是否为实际推流的所述流媒体服务实例(320);
当被拉流的所述流媒体服务实例(320)为实际推流的所述流媒体服务实例(320)时,被拉流的所述流媒体服务实例(320)通过所述流媒体服务(310)的转发将媒体流推送至所述媒体流接收者(200);
当被拉流的所述流媒体服务实例(320)并非实际推流的所述流媒体服务实例(320)时,被拉流的所述流媒体服务实例(320)从实际推流的所述流媒体服务实例(320)拉取媒体流,并通过所述流媒体服务(310)的转发将拉取的媒体流推送至所述媒体流接收者(200)。
CN202110819201.4A 2021-07-20 2021-07-20 一种分布式流媒体集群的部署***及方法 Active CN113852593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110819201.4A CN113852593B (zh) 2021-07-20 2021-07-20 一种分布式流媒体集群的部署***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110819201.4A CN113852593B (zh) 2021-07-20 2021-07-20 一种分布式流媒体集群的部署***及方法

Publications (2)

Publication Number Publication Date
CN113852593A CN113852593A (zh) 2021-12-28
CN113852593B true CN113852593B (zh) 2023-07-11

Family

ID=78975133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110819201.4A Active CN113852593B (zh) 2021-07-20 2021-07-20 一种分布式流媒体集群的部署***及方法

Country Status (1)

Country Link
CN (1) CN113852593B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850581A (zh) * 2017-01-04 2017-06-13 网宿科技股份有限公司 互动直播流媒体数据的分发备份方法、***及服务器
WO2017096841A1 (zh) * 2015-12-07 2017-06-15 乐视控股(北京)有限公司 一种拉流控制的方法、装置及***
CN109450911A (zh) * 2018-11-26 2019-03-08 武汉虹信技术服务有限责任公司 一种跨网络流媒体数据传输***和方法
CN111355971A (zh) * 2020-02-20 2020-06-30 北京金山云网络技术有限公司 直播流传输方法、装置、cdn服务器及计算机可读介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017096841A1 (zh) * 2015-12-07 2017-06-15 乐视控股(北京)有限公司 一种拉流控制的方法、装置及***
CN106850581A (zh) * 2017-01-04 2017-06-13 网宿科技股份有限公司 互动直播流媒体数据的分发备份方法、***及服务器
CN109450911A (zh) * 2018-11-26 2019-03-08 武汉虹信技术服务有限责任公司 一种跨网络流媒体数据传输***和方法
CN111355971A (zh) * 2020-02-20 2020-06-30 北京金山云网络技术有限公司 直播流传输方法、装置、cdn服务器及计算机可读介质

Also Published As

Publication number Publication date
CN113852593A (zh) 2021-12-28

Similar Documents

Publication Publication Date Title
US10079722B2 (en) Stream creation with limited topology information
US20140164477A1 (en) System and method for providing horizontal scaling of stateful applications
US20090319686A1 (en) Communication route selecting method and apparatus
CN105656653A (zh) 分布式协调***中新增节点的入网方法、装置和***
US9094270B2 (en) Content transmission architecture
CN105281947A (zh) 用于将遗留网络变换成具备sdn能力的网络的技术
US10360514B2 (en) Method and system to dynamically enable SDN network learning capability in a user-defined cloud network
JP2015515037A (ja) 機械学習を採用するメディア・コンポーネントをマップするための方法
US20110246658A1 (en) Data exchange optimization in a peer-to-peer network
CN106713936B (zh) 直播视讯媒合方法与***
US20120096136A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
CN109379209B (zh) 一种视联网存储服务的升级方法和装置
US11050811B2 (en) System and method for mesh network streaming
CN101662508B (zh) 基于点对点协议数据传输的方法、装置和***
US20150127721A1 (en) Server network address selection based on network characteristics of service providers
CN107959704B (zh) 一种数据处理方法及家庭网关
US20220070507A1 (en) Method for distributing audio/video stream in audio/video stream distribution system, and dynamic parent node
CN113852593B (zh) 一种分布式流媒体集群的部署***及方法
JP2011039681A (ja) 中継装置及び転送ルールに関連する情報処理方法並びにプログラム
CN110187903A (zh) 一种升级方法及装置
Gusev et al. Data-centric video for mixed reality
CN106878826B (zh) 一种类p2p实时视频转发的方法
US20120216233A1 (en) Virtual network constructing apparatus and method
US11863592B2 (en) Active speaker tracking using a global naming scheme
US11985072B2 (en) Multimedia data stream processing method, electronic device, and storage medium

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
GR01 Patent grant
GR01 Patent grant