资讯专栏INFORMATION COLUMN

几十万人同时在线的直播间聊天,如何设计服务端架构?

Jeff / 2089人阅读

摘要:一个热门视频直播间人数可能达到几十万甚至上百万人,几十万人发消息,几十万人接收,流量相当惊人,那么服务端要如何设计才能保证系统流畅本文作者将结合他在网易云信多年开发的经验进行深度分析。网易云信至今已申请了余项专利,远超市场同类产品。

一个热门视频直播间人数可能达到几十万甚至上百万人,几十万人发消息,几十万人接收,流量相当惊人,那么服务端要如何设计才能保证系统流畅?本文作者将结合他在网易云信多年IM开发的经验进行深度分析。

推荐阅读

高并发 IM 系统架构优化实践

IM 即时通讯:如何跳出传统思维来设计聊天室架构?

聊天室架构应满足哪些条件

高可用:任何一个节点故障都不应该引起服务不可用;

易扩展:具有水平扩展的特性,对不同量级的在线用户数都有应变的能力;

高并发低延迟:能支持大量的用户同时收发消息,消息从发出到送达所有在线端的延时在毫秒级;

客户端兼容性:新型的应用都是能同时跨多种设备实现消息互通的,比如网页端,手机端和桌面端,甚至智能电视等。

聊天室架构如何设计

客户端层

处理各种设备的兼容问题,包括对 iOS, Android, Windows, Web 等各种开发平台的语言适配;消息通道的管理维护,包括移动设备上的弱网络管理,断线重连等;保证数据安全,所有上行下行的数据包都需要加解密处理,规避数据泄露或中间人攻击等各种安全风险。

网关接入层

管理大量客户端连接,单个节点可以维护的客户端数量在数十万量级;处理不同类型客户端的协议兼容,由于客户端实现技术的多样性,导致客户端与网关之间底层的数据通信协议存在差异,需要由不同的接入网关做协议转换;处理数据安全逻辑;跨网络的高可用逻辑,网络级别的主备(谁知道哪天网线会被蓝翔的毕业生挖断呢?);广播消息的高效下行分发,将收到的广播消息分发到所有连接在本节点上的客户端。

路由层

作为业务层接入的中转,同时承担负载均衡和高可用的作用,单个业务节点处理能力达到瓶颈时更方便的扩容,路由层使业务层扩容对前置网关层完全透明;当一个网络的业务集群出现网络故障时,可以切换到备用网络,保证服务可用性。

业务层

处理聊天室内的业务消息,一个集群内有众多节点,节点角色相互对等,任何一个节点的故障会使整个集群的处理能力下降,但不会引起服务的中断,因为其他节点可以继续接管业务数据包的处理;业务集群同样有多个网络环境的热备,以应对可能出现的区域性网络故障。

难点在哪里

客户端多样性

目前的应用都存在跨平台的需求,iOS、安卓和 PC 端,网页端,甚至 IoT 物联网设备,能连多少是多少,多多益善;但是不同开发平台之间的技术差异性极大,不是所有公司都有这么全的全栈程序猿的;如果团队开发的话单就客户端开发人员就不是几个人可以完成的。

数据安全的保证

当前的网络安全形势异常复杂,开发应用时如果不在通信安全上花心思,那你的用户就是在互联网上裸奔;开发者需要针对不同的平台,不同的通信技术实现可靠的安全方案,避免用户数据在传输过程中泄露,避免中间人攻击等安全风险。

跨机房网络级的高可用方案

当机房网络出现故障时把责任推给市政施工队或者“网络抽风”已经不流行了,用户需要的是故障无感知。

所有环节的单点故障排除

任何硬件和软件都存在故障的可能,我们无法避免应用罢工,那就需要随时准备替补上场。

能应对任何用户量级的需求

架构级做到水平扩展的能力,当用户量增长时随时可以通过堆服务器来解决,而不是将架构推倒重来。

看完文章还是不知道怎么做?那么可以尝试借用目前已有的平台或工具,现在应用需要关注的是怎么以最快的速度抓住用户。网易云信是一个面对开发者的很好的 IM 云平台。十余年的研发积累,使其在即时通讯技术方面处于全国领先水平。网易云信至今已申请了 60 余项 IM 专利,远超市场同类产品。欢迎大家与我们讨论 IM 技术,也欢迎大家多多关注网易云信。

随着即时通讯以及音频处理和压缩技术的不断发展,效果更好、适用范围更广、性能更高的算法和新的技术必将不断涌现,如果你有好的技术或者分享,欢迎关注网易云信官方博客和 GitHub:

关注更多技术干货内容:网易云信博客
欢迎关注网易云信 GitHub
欢迎关注网易云信官网

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71497.html

相关文章

  • 如何打造在线播间(技术贴)

    摘要:背景当下视频直播如此红火,打造一个在线直播间涉及到哪些技术呢视频直播由主播的直播端以及观众的观看端组成。保持心跳断开重连快速搭建在线直播间按前文所述,搭建直播间有非常多的细节需要考虑,包括采集推流分发播放体验优化聊天室性能调优等。 背景 当下视频直播如此红火,打造一个在线直播间涉及到哪些技术呢? 视频直播由主播的直播端以及观众的观看端组成。一个简单的观看端最起码应包含播放器以及聊天室。...

    sugarmo 评论0 收藏0
  • 海量用户实时互动直播架构探索

    摘要:实时互动直播延时必须低达几百毫秒。实时互动直播要保证高可用性,有巨大的难度,原因如下实时很难。单服务器实时互动直播架构实时互动直播,不能使用方案,因为方案性质决定了延时达不到实时的要求。 现在比较流行的直播,经常会出现这样的情况: 用户打了一个弹幕上去,主播念出来的时候,弹幕已经飞出去了。二者时间是不匹配的。 这是我们的一个客户,两个主播连线互动,实时交互。试想,如果直播时延时高达几秒...

    honmaple 评论0 收藏0
  • 视频私有云实战:基于 Docker 构建点播私有云平台

    摘要:本篇文章将会结合网易云信的实践经验,以全局概述的方式带大家认识点播私有化平台构建的整体架构面貌。基于构建点播私有云平台在具有以上优势的同时,还具备资源弹性管理监控完善部署简易自动化维护等特性。基于构建平台,能够自由管理创建云主机。 私有云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序。其核心属...

    MadPecker 评论0 收藏0
  • 视频私有云实战:基于 Docker 构建点播私有云平台

    摘要:本篇文章将会结合网易云信的实践经验,以全局概述的方式带大家认识点播私有化平台构建的整体架构面貌。基于构建点播私有云平台在具有以上优势的同时,还具备资源弹性管理监控完善部署简易自动化维护等特性。基于构建平台,能够自由管理创建云主机。 私有云是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制。前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序。其核心属...

    jkyin 评论0 收藏0

发表评论

0条评论

Jeff

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<