视频直播软件开发不得不引起重视的网络架构问题

本文涉及的产品
视频直播,500GB 1个月
简介: 直播在互联网市场中一直都处于稳定发展的局面,虽然直播行业经历了不同时期的洗牌和考验,但它还是依靠自身强大的变现能力“存活”到现在。而且随着即将统一运营商服务和流量资费的不断下调,更是给视频直播软件开发业务提供了发展“温床”,比如接下来我要给大家分享的内容,开发过程中需要注意的网络架构相关。

直播在互联网市场中一直都处于稳定发展的局面,虽然直播行业经历了不同时期的洗牌和考验,但它还是依靠自身强大的变现能力“存活”到现在。而且随着即将统一运营商服务和流量资费的不断下调,更是给视频直播软件开发业务提供了发展“温床”,比如接下来我要给大家分享的内容,开发过程中需要注意的网络架构相关。本文主要以CDN为主来介绍相关的架构问题。
20170418104411_707_wps_

 对于传统的点播业务来说,CDN只有下行分发不同。但是对于泛娱乐和游戏类的直播场景来说,直播架构是分为上行汇聚和下行分发两种的。

1.主播推流模式
(1)直播端推流到上行边缘节点。
(2)上行边缘节点将流推到汇聚核心。
(3)汇聚核心收到流后,和 CDN 一样,不需要主动将流分发到边缘,一些转码、水印或录制类的业务通常是在汇聚核心完成。
2.回源拉流模式
如果用户在访问到汇聚核心后,会向一个回源节点拉流,回源节点向客户源站拉流。
3.下行观看流程
(1)观众到边缘节点拉取直播流。
(2)在边缘节点上如果存在音视频流,可以直接发送给观众,如果没有就会向上一级回源。
(3)上一级节点可能是中转节点,也可能是汇聚核心。通常会在两种情况下选择是否经过中转节点,即下行边缘到汇聚核心链路质量和汇聚核心处理能力。

1157465_20170730140446427_1712739361_wps_
对于CDN来说,是不可能单独使用一个汇聚核心的。如果使用单独的汇聚核心,一旦遇到网络故障或者是高并发等情况发生,就会导致整个直播业务出现瘫痪的情况。况且,单独的汇聚核心无论怎样都是无法覆盖全国的,所以就需要大量的中转节点。通常,直播会使用多汇聚核心的架构,即以下两种方式。
1.链路选优
即上行到一个链路最优的核心,下行也到一个链路最优的核心。两个核心之间使用专线“打通”,从而保证传输质量。国内通常使用3个核心就可以覆盖国内的主要运营商和区域,5个核心基本就能全覆盖所有边缘节点。链路选优问题是需要进行长期的实时数据监控的。比如,直播流在哪个汇聚核心,是汇聚核心之间互相能拉到流的基础。如果需要考虑一些异常节点无法使用的情况,那么就需要进行对应的数据清理。需要注意的是:多一级拉流会增加首屏时间。
2.保证每个汇聚核心都有流
即下行边缘无论如何都能拉到流。这一架构的优点就是不需要使用数据库进行记录是推到了哪个核心,但是也容易存在以下几个问题。
(1)上行边缘到两个核心的质量无法保证,如果上行边缘到某个汇聚核心的链路质量较差,那么从这个汇聚核心拉流的用户观看质量肯定会很差。
(2)上行边缘是需要推两份流到汇聚核心的,这样一来就会造成一定的带宽浪费。对于直播来说,带宽的耗费远远要比主播的收益要高得多。
(3)为了解决上行边缘到所有核心的链路问题,就需要选取很多的中转节点,或者是使用BGP的机房作为上行边缘,这样就会耗费更大的成本。

cdn2_wps_

 在视频直播软件开发过程中,CDN的架构也是相当重要的。至于选择哪种架构,还是要根据直播平台自身的定位和资金等方面来决定的。

本文声明原创,转载请注明出处。

相关文章
|
5月前
|
运维 Cloud Native 持续交付
云原生架构:未来软件开发的蓝图
【6月更文挑战第6天】随着云计算技术的不断进步,云原生架构已经成为推动现代软件开发的重要力量。本文将深入探讨云原生的概念、核心组件以及它如何改变应用程序的开发、部署和运维方式。通过分析云原生的优势,我们将揭示这一趋势如何为企业带来更高的效率、灵活性和创新能力。
|
2月前
|
Cloud Native 持续交付 云计算
云原生技术:重塑软件开发与架构的未来
在云计算的推动下,云原生技术正逐渐成为软件开发的新标准,强调利用容器、服务网格、微服务等技术实现敏捷开发与高效运维。本文探讨了云原生技术如何重塑软件开发与架构的未来,介绍了其核心概念(如容器化、微服务架构、CI/CD)及优势(如敏捷性、可扩展性、成本效益),并讨论了其在金融服务、电子商务和物联网等领域的实际应用及面临的挑战。尽管存在技术复杂性和人才短缺等问题,云原生技术仍将成为软件开发的主流趋势。
|
5月前
|
存储 Cloud Native 持续交付
云原生架构:未来软件开发的引擎
【6月更文挑战第13天】随着企业数字化转型的加速,云原生技术已成为推动现代软件交付和运维的关键力量。本文将深入探讨云原生架构的核心概念、优势以及它如何重塑软件开发流程,为企业带来前所未有的敏捷性、可扩展性和成本效率。
204 1
|
1月前
|
监控 测试技术 持续交付
深入理解微服务架构及其在现代软件开发中的应用
【10月更文挑战第10天】深入理解微服务架构及其在现代软件开发中的应用
38 0
|
6月前
|
监控 Java 测试技术
现代化软件开发中的微服务架构设计与实践
随着软件开发的发展,传统的单体应用架构已经无法满足现代化应用的需求。微服务架构作为一种新的设计理念,为软件开发提供了更灵活、可扩展的解决方案。本文将介绍微服务架构的设计原则、实践方法以及相关技术工具,并结合实例展示其在现代化软件开发中的应用。
|
2月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
205 3
|
3月前
|
XML 开发框架 .NET
.NET框架:软件开发领域的瑞士军刀,如何让初学者变身代码艺术家——从基础架构到独特优势,一篇不可错过的深度解读。
【8月更文挑战第28天】.NET框架是由微软推出的统一开发平台,支持多种编程语言,简化应用程序的开发与部署。其核心组件包括公共语言运行库(CLR)和类库(FCL)。CLR负责内存管理、线程管理和异常处理等任务,确保代码稳定运行;FCL则提供了丰富的类和接口,涵盖网络、数据访问、安全性等多个领域,提高开发效率。此外,.NET框架还支持跨语言互操作,允许开发者使用C#、VB.NET等语言编写代码并无缝集成。这一框架凭借其强大的功能和广泛的社区支持,已成为软件开发领域的重要工具,适合初学者深入学习以奠定职业生涯基础。
102 1
|
3月前
|
敏捷开发
怎么理解基于架构的软件开发
理解基于架构的软件开发
162 1
|
2月前
|
缓存 负载均衡 数据管理
深入探索微服务架构的核心要素与实践策略在当今软件开发领域,微服务架构以其独特的优势和灵活性,已成为众多企业和开发者的首选。本文将深入探讨微服务架构的核心要素,包括服务拆分、通信机制、数据管理等,并结合实际案例分析其在不同场景下的应用策略,旨在为读者提供一套全面、深入的微服务架构实践指南。**
**微服务架构作为软件开发领域的热门话题,正引领着一场技术革新。本文从微服务架构的核心要素出发,详细阐述了服务拆分的原则与方法、通信机制的选择与优化、数据管理的策略与挑战等内容。同时,结合具体案例,分析了微服务架构在不同场景下的应用策略,为读者提供了实用的指导和建议。
|
3月前
|
运维 Cloud Native 安全
云原生架构在现代软件开发中的优势与挑战
【8月更文挑战第20天】随着技术的进步,云原生架构已成为推动软件开发现代化的关键力量。本文将探讨云原生的核心优势和所面临的挑战,旨在为读者提供一个全面的视角来理解这一变革性技术如何影响企业的应用部署、管理和扩展。

热门文章

最新文章

下一篇
无影云桌面