下载此文档

搭建视频通信服务器的一点总结.docx


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
搭建视频通信服务器架构的一点总结
随着移动互联网的发展,视频通信使用场景越来越多,如***、视频会议、在线直播等。但是随之而来对前端设计的要求、对后端服务器的要求也不断增加。所以如何搭建一个完善的服务器以适合视频通信,是每个视频通信研发人员都关注的问题。
一个完善的音视频服务器需要解决高并发、低延迟、NAT穿透和扩展性负载均衡等问题,我们关注这个方向已有一年多,下面是总结的部分经验:
关于高并发
在这里主要介绍了如何设计互联网分布架构以提高系统并发能力。
有两种常用的方法:垂直扩展(Scale Up)与水平扩展(Scale Out)。
一、采用垂直扩展来提升单机处理能力。
写代码时,我们能做的优化可分为三类:架构优化、算法优化和语言优化。
1架构优化:如用异步IO来增加单服务器吞吐量,多线程的时候通过减少锁的使用来提高服务器性能等。
2算法优化:其在服务器中比较少见,因为服务器逻辑代码里通常没有繁琐的算法,但是如果有能优化的空间,还是要进行优化。
3语言优化:比较常见的优化方式,比如const加引用传参,比如复杂对象遍历时前置加加与后置加加等,具体看参阅《effective c++》和《more effective c++》。当然,如果有数据库,那么SQL语句的优化也算。
现在代码已经写好了,也跑起来了,发现性能还是不满意,怎么办呢?
看瓶颈! 就好比医生治病,要先找病因。Linux下的gperftools、Windows下的vs、Mac下的xcode都能进行集成性能分析。
这些性能分析工具能帮助你大致定位到哪一行代码占用了CPU时间。找到病因后,就是对症下药。
当然了,对于这种主要由于占用CPU、内存不够和网卡而导致的服务器性能不高,提升硬件还是非常有效的。
但是单机性能总是有极限的,会受到时代技术的限制。所以互联网分布式架构设计高并发的解决方案还是要依靠水平扩展。
采用水平扩展来增加服务器数量,以扩充系统性能
这点与互联网的分层架构有关,在互联网的分层机构中,各层次水平扩展的实践是不同的,比如:反向代理层通过“DNS轮询”的方式;站点层通过nginx来进行,而服务器则主要依靠服务连接池。在各层实施水平扩展后,通过增加服务器数量的方式,可以做到理论上系统性能的无限提升。
简单说就是,活太多时一个人干不完,多个人一起干。然后牵扯到多个人,必然会涉及到调度分配管理的问题。
相关的名词有:CDN,负载均衡,Hadoop,云计算等。
解决完高并发的问题,现在来说一下低延时。
关于低延时
低延时是所有视频通信都会关注的一个点,更低的延时必将提升用户使用体验。可是如何做到低延时呢?
图鸭的产品是采用了如下的方法:服务器采用udp协议传输音视频数据、tcp协议传输控制信令,以此来保证控制信令可靠且音视频数据传输延时低。
众所周知,UDP协议与TCP协议相比:采用UDP协议传输数据可能导致数据丢失,但客户端接收信息延时低;而TCP协议有丢包重传策略,但速度不快。我们的产品在使用时,将这二者结合,以确保UDP在接收到的包不完全时也能正常解包。
在解决了高并发和低延时的问题后,我们要来考虑一下流量成本的问题。降低流量成本是每个视频通信使用者的需求,也是每个研究视频通信的程序员们要解决的问题。在这里我简单介绍下NAT穿

搭建视频通信服务器的一点总结 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1640869425
  • 文件大小115 KB
  • 时间2018-06-17