百万级别并发聊天,看直播、撒红包以及答题 的架构挑战是怎么一个体验,今天群主就在这里给大家分析分享一哈技术干货。

2017年刚刚过去,在线抓娃娃热热度还未完全消减。新年伊始,大家还在回首总结、展望未来、好奇着2018年会有什么风口的时候,一场以《冲顶大会》、《芝士超人》和《百万英雄》为代表的全民狂欢直播答题的旋风就这样席卷而来。

高额奖金的诱惑,超低的参与门槛,王思聪的微博助推,邀请好友获得复活卡的社交裂变,多种因素加持下,这种新玩法迅速引爆了社交网络。

分析在线直播答题应用基础架构

一直以来,竞技类答题游戏对人们都极具吸引力,从《开心辞典》和《一站到底》在电视上火爆多年就能看出来。而直播答题APP将在线答题、知识付费、视频直播等众多火爆元素连结在一起,极有可能成为2018年的第一个风口。

风口背后,直播答题类APP的技术痛点

目前,这类直播答题APP的玩法很简单,每天举行几场答题直播,每场设置几万到几百万不等的奖金,1场12道题,每道限时10秒钟,全部答对者即可平分奖金。

直播答题的应用场景大概可以分为3类:

直播答题场景 , 单向直播和互动答题结合,主持人侧把题目实时地推送到直播间内所有用户,在限定时间内(10秒),用户侧提交完成的问题答案,主持人能实时看到统计数据。

明星连麦答题, 连麦直播和互动答题结合,除了基础的直播答题外,主持人邀请明星加入直播间,明星参与答题而且和主持人连麦互动,直播间内的用户能看到明星的视频画面和答题的实况,大大提高节目的观赏性和刺激性。即使是被中途淘汰的用户也会有耐心继续看完这个直播版的《开心辞典》节目。

组团群聊答题 , 视频群聊和互动答题结合,除了基础的直播答题外,多个用户线上组团加入视频聊天室协同答题,在视频聊天室内既能实时看到主持人和题目,还能群聊讨论题目答案并有带头大哥去操作答题。这个场景和2017年的热点狼人杀场景十分相似。

虽然直播答题的玩法简单,但是技术实现可一点都不简单。结合上面的应用场景,直播答题APP在实现上有如下4大痛点:

低延迟,无论是视频还是答题

答题的窗口时间只有10秒,读题时间4秒,思考时间3秒,选择时间1秒,满打满算都要8秒才能回答一道题目。如果延迟超过2秒,那么用户看到题目的时候已经比主持人的节奏落后2秒,那么用户就少了至关重要的2秒答题。

直播与答题同步

大部分的解决方案是把直播和答题消息分开实时音视频和IM消息两条通道来传输,直播与答题的同步就比较困难。如果直播和答题不同步,往往会出现主持人说开始答题,答题框还迟迟没有显示,造成十分差的用户体验。

3)超强互动(答题互动 + 连麦互动)

直播答题场景中的互动比单向直播的互动强很多,主持人要在极短时间向百万级用户(芝士超人直播间人数107万)推送问题消息,用户在极短时间内向服务器回复答案,由服务器统计答案反馈给主持人。在连麦直播场景中,受邀的明星会加入到直播间来一起答题,明星会和主持人同框连麦互动,全体用户还能看到明星的答题实况。这种互动的难度比常规的连麦直播都还要高。

百万海量并发

百万级别的在线用户,海量并发的压力不然而喻。更加重要的是主持人要一键向百万级别的用户分发问题消息,百万级别的用户要在极短的时间内回复问题答案,这样活跃度的海量并发所产生的压力超出你的想象。

往往一个软件的技术架构分为:
  • 1、业务架构
  • 2、应用架构
  • 3、数据架构
  • 4、平台架构
  • 5、基础架构

逐步分析:

  • 直播的答题模式
    主持人直播,通过文字答题。灵活的对题目进行管理和下发,高速精准的答题
    结果统计和结果校验
  • 极致的IM互动
    直播答题场景下的IM聊天室互动,无上限在线人数,秒级超低延时,打造极
    致的互动体验
  • 丰富的人脸特效
    基于百度人脸检测、表情迁移和图像融合技术,提供丰富的道具特效,并支持
    美白、磨皮和粉嫩等美颜效果,以及高斯模糊等多种实时滤镜效果,让您的主
    持人光彩照人

分析在线直播答题应用基础架构


即构ZEGO直播答题方案剖析

这次直播答题风口的时间窗口比以往的风口都要短得多,有业内人士表示,顶级直播平台早已经完成了流量和技术积累,短短十来天就出现百万级别的直播间,完全还在考虑要不要入场的团队惊呆了。这时候,自行研发直播答题方案根本不可能是选项,每一个团队都想着如何尽快上线产品,要么一飞冲顶,要么堕入凡尘。

为了响应这个市场需求,基于经过映客、花椒和一直播验证过的直播方案,即构科技推出了直播答题一站式解决方案。

分析在线直播答题应用基础架构

即构直播答题系统架构图

即构视频直播的业务流程

1) 主持人通过语音视频传输通道向即构ZEGO实时通信网络进行推流。

2) 主持人的语音视频流通过两种方式达到用户端,要么通过即构ZEGO实时通信网络,要么通过即构ZEGO实时分发网络,前者的延迟大约300毫秒,成本相对较高,后者延迟大约1秒,成本相对较低。

3) 明星嘉宾和主持人连麦参与直播答题的场景中,明星嘉宾通过即构ZEGO实时通信网络推流,主持人通过即构ZEGO实时通信网络拉流,延迟平均300毫秒左右。

即构直播竞答的业务流程

1)主持人从即构客户的业务服务器拉取问题内容和问题ID,把问题ID通过语音视频扩展传输通道推送到即构ZEGO实时通信网络,这一步和推流同时进行,也就保障了语音视频流和问题ID的严格同步。

2)问题ID和语音视频流通过两种方式到达用户端,要么通过即构ZEGO实时通信网络,要么通过即构ZEGO实时分发网络,前者的延迟大约300毫秒,成本相对较高,后者延迟大约1秒,成本相对较低。

3)用户端获得问题ID以后,向即构客户业务服务器查询并获得问题内容,然后答题,最后分别提交问题答案。即构客户业务服务器统计问题,并且把结果返回给主持人端。

即构直播答题方案的关键点

1)完美地帮助即构客户解决瞬间百万级问题推送的海量并发问题。要知道,在主持人按下按键向一百多万个用户推送问题的时候,极短时间内从单点向海量多点推送消息会产生难以想象的压力,这是一个关键的技术难点。

2)允许即构客户通过异步和服务器集群的方式来响应问题查询,还有问题答案统计。答题用户通过异步查询问题内容和提交问题答案的方式和即构客户业务服务器集群交互,避免了单点在瞬间承受海量数据并发的压力。

3)允许即构客户完全地保护问题内容的私密性和安全性。在即构的实时网络内只传输问题ID,允许即构客户完全掌控问题内容的私密性。

4)语音视频数据和问题ID通过实时信道传输和同步,完美地解决了语音、视频画面和问题同步的问题,保障优质的用户体验。

在其直播方案的基础上,即构科技针对直播答题的场景需要,推出直播答题一站式方案,完美地解决上述4大痛点。

1)超低延迟

在明星答题和组团答题等互动场景,即构直播答题方案的延迟达到300毫秒;在用户答题的互动场景,延迟在1秒以内。这种延迟水平可以很好地满足直播答题的各种场景需求。

2)直播与答题同步

即构的实时通信网络为语音视频数据和答题信息实现了良好的同步机制,让用户纹丝合缝地和主持人互动答题。答题信息既可以作为独立的图文消息来传输,也可以作为视频画面的一部分特效动画来传输,大大地增加答题的趣味性。

3)超强互动(连麦互动和答题互动)

即构的连麦互动直播方案在过去两年经过了映客、花椒和一直播等顶级平台的验证,花椒直播曾经使用即构的连麦直播方案举办过各种K歌海选活动,并且获得巨大的成功。即构的实时通信网络无论传输语音视频数据还是答题数据,都可以实现超低的延迟,从而让主持人、明星嘉宾和答题用户之间进行超强互动。

百万海量并发

针对直播答题的高并发挑战,即构科技也解决方案是经过验证的。即构的核心研发团队来自腾讯QQ,早已经历了QQ亿级并发架构的挑战,在高并发架构上有着丰富的实战经验。更重要的是,即构的直播方案从设计之初,就是面向海量并发架构的,并且早已经过映客、花椒、一直播等众多头部直播平台亿级用户的验证。

另外,即构直播答题方案提供了丰富的直播前处理接口,包括主持人画面直播、主持人背景替换、片花/广告播放、奖金池信息展示、场景切换等功能。开发者只需4行代码即可轻松集成即构的直播答题SDK。

深入分析与对比业务场景和架构之间的关系

直播答题已经是风口,毋容置疑。对攻城狮们来说,2018 年春节是个坎,直播答题技术做细致做到位了,才能安心过个好年。

为了应对这个挑战,我们首先分析一下直播答题和传统直播在技术上的不同,然后深度解释一下直播答题解决方案的海量并发派题和收题。

分析在线直播答题应用基础架构

直播答题和传统直播在技术上的不同

直播答题首先是直播,然后是答题。直播答题是构建在传统直播基础上的创新玩法,和传统直播的不同包括下面几点:

分析在线直播答题应用基础架构

1. 海量并发派题

就传统视频直播而言,直播间通常在线用户人数是少几万人,通常情况下超过五万的不多。而对直播答题来说,直播间在线用户人数超过百万那是很平常的事情,某一线直播平台旗下的直播答题直播间在线人数更是突破了五百万人。因此,派题的环节要承受百万级别的海量并发压力,而且所有用户都是在活跃答题的,这是传统视频直播不曾面对过的压力。幸运的是,直播答题可以利用视频直播实时媒体通道来派发题目,为派题的实时性和可达性提供了天然的基础。

2. 海量并发收题

派题可以重用视频直播实时媒体通道,可是收题却不能这么做,因为用户端不推流,而且收题要反馈标准答案和进行统计。收题不但不能重用实时媒体通道,而且还带来同样是百万级别的并发压力,那么要在视频直播架构以外构建一个分布式的子系统来处理。

3. 视频和答题同步

派题重用视频直播实时媒体通道,和语音视频数据包是天然同步的。需要在实时媒体通道扩展一个数据通道,题目信息可以附着在相应的语音视频数据包上传输,做到视频和答题同步。同时,为了应对网络损伤,在随后的数据中可以发送一定的冗余拷贝,接收端再进行排重。

4. 主持人背景特效

中国的直播答题应用受美国同类先行产品 HQ Trivia 的启发,主播的背景都是虚拟的特效,比如变幻的色彩,以后也可能演变成 AR 特效。这里有一个技术点就是要把画面上除了主持人以外的部分去除,然后填充上特效的画面。主持人主持直播答题节目的背景幕布是绿色的,因为在拜耳阵列中绿色的成分最多,摄影机捕捉到的绿色信息最多,在后期更容易去除绿色通道的信息。

直播答题:海量并发派题和收题

直播答题是叠加在视频直播上的业务创新,题目数据量比语音视频少很多,但派题和收题的并发压力是海量的。下面对关键技术点进行探讨,抛砖引玉,希望对大家有所启发。

分析在线直播答题应用基础架构

首先,我们看一下直播答题的业务流程:

  1. 主持人发出派题指令;
  2. 题目信息通过实时通信网络和实时分发网络送达给用户;
  3. VIP 用户从实时通信网络拉取题目信息;
  4. 普通用户从实时分发网络拉取题目信息;
  5. 如题目信息包含完整内容,则下一步,如果只有题目 ID,则到业务服务器查询题目内容;
  6. 用户把题目答案提交给答题统计分析服务器,同时得到标准答案反馈;答题统计分析服务器是分布式的集群,统计答题结果,反馈给主持人;

然后,我们看看各个网络服务实体的分工:

  1. 实时通信网络:为实时传输而设计的网络,能实时传输海量数据,不只是语音视频。它比实时分发网络(比如 CDN)的延迟更低,具有动态回源和对抗弱网等特点。
  2. 实时分发网络:为实时分发海量内容而设计的网络,优点是能支撑海量并发,成本相对也比较低,缺点是延迟相对于实时通信网络要高一些。
  3. 答题统计服务:为统计用户提交的题目答案而在视频直播架构外设计的服务,能反馈标准答案,并且统计所有题目答案,最后反馈给主持人。该服务要能承受海量并发压力。
  4. 业务服务器:如果派题信息包含完整题目内容,用户不需要再查询题目内容;如果派题信息只有题目 ID, 那么用户要到业务服务器查询题目内容。该服务也要承受海量并发压力。
  5. 恩威科技保留该文的版权,分享请保留原文链接。

分析在线直播答题应用基础架构

最后,我们再分析直播答题中的关键环节:

1. 海量并发派题

派题的指令必须是主持人端发出,然后服务器会担负起启动向海量用户群发题目的任务。题目是优先级最高的消息,不能像处理 IM 消息那样采取低优先级消息抛弃,或者用户分桶等应对海量并发的策略,必须要确保消息内容实时到达每个用户的终端,这是实打实的实时海量并发。另外,如果由服务器单点在毫秒级别时间内复制群发 N 份消息,那么单点就要承受巨大的压力,这明显是不可能的。那么海量并发派题要依仗内容分发网络的能力。内容分发可以通过实时低延迟网络或者 CDN 来完成,考虑到 CDN 有成本的优势,因此 VIP 用户的派题由实时网络完成,其它用户的派题要由 CDN 来完成。

2. 海量并发收题

收题的环节由用户触发,每个用户答题的时间窗口不尽相同,因此每个用户提交题目的时间有秒级的差别。然而,海量用户在数秒之内提交答案,题目答案属于重要消息,不能做抛弃处理,服务器的压力也是巨大的。为了减少服务器压力,用户的答题将会被就近提交到边缘节点并且获得正确答案反馈,整体的答题统计结果将会由分布式的服务器集群来完成,最后传达到主持人端,使得主持人可以近乎实时地宣布统计的结果。

3. 视频和答题同步

视频直播要低延迟,题目派送同样也要低延迟,而且要和视频画面同步。通过 IM 的能力来派题是很难做到视频和派题同步的,因为语音视频传输通道和 IM 的通道是相互独立的。一般的做法是通过实时语音视频的扩展数据通道来附带传输题目信息,让视频和题目天然就同步。考虑到网络抖动和丢包等网络损伤的情况,在答题时间窗口内,要适当发送题目的冗余 copy,然后用户端做排重,避免题目信息丢失而导致用户收不到题目。

通过实时语音视频传输通道来派题的技术手段其实并不新鲜。在视频直播的 K 歌场景中,主播 K 歌要尽量还原线下的体验 -- 主播的歌声、画面还有歌词必须要同步在用户端显示。歌词信息在主播端打点,通过实时语音视频传输通道同步传输给用户端。

另外,还可以为主持人的背景增加特效,甚至 AR 效果。主持人要在绿幕背景前进行节目主持。在采集和编码之间的前处理环节,开发者获得原始视频数据,把绿色的画面部分去除,把主持人的画像扣出来,补充上动画或者 AR 等特效处理后,再把视频数据塞给编码环节。使用第三方视频直播 SDK 的话,那么该视频直播 SDK 必须要开放前处理接口,开发者才能获得原始视频数据,否则开发者没办法通过前处理的方式在视频画面增加特效。比如说,支持 WebRTC 的浏览器没有开放前处理接口,那么基于 WebRTC 的视频直播方案在浏览器端就不支持在视频画面上增加特效。

4. 题目内容安全性

直播答题悬赏巨额奖金,各种黑产活跃到其中,题目内容的安全性十分重要。题目内容缓存在用户终端是万万不可的,必须实时地送达用户终端,否则黑产从用户终端可以提前获得题目内容。

针对题目派送的方式,目前市面上有两种第三方直播答题方案:第一种方案,技术方案通过实时语音视频通道派送题目的全部内容,该方案的优势是完全负责了派题的安全性和并发压力,开发者不需要投入开发成本。第二种方案,技术方案通过实时语音视频通道只派送题目 ID,用户终端获得题目 ID 后,到开发者的业务服务器查询题目内容。该方案的优势是开发者完全把控题目内容的私密性。

以即构 ZEGO 的直播答题方案为例,如果题目内容小于 1000 字节,也就是 500 个中文字符,可以通过实时语音视频通道传输所有题目内容;如果超过 1000 字节,通过实时语音视频信道传输题目 ID, 然后由用户终端以题目 ID 从就近服务器拉取题目内容。

如果第三方直播答题方案只派送题目 ID,开发者可以把题目内容缓存在就近服务器,通过题目 ID 获取题目内容,增加的延迟很小,不会影响用户体验。然而,开发者要承担查询题目的海量并发压力,还要实现题目内容的安全保护机制,比如说拉取题目要鉴权,题目传输要加密,和题目时效窗口的控制等,开发成本也就水涨船高。

写在最后

视频直播的魅力在于,它已经成为类电视的流量入口,类似开心辞典等在电视上被验证过的业务玩法也会逐一在视频直播平台上尝试和落地。如果说直播答题是视频直播的第二春,那么每年春天还会来,请不要意外。PS:虽然有搜狗汪仔等作弊答题神器出现,但是他不会影响直播答题类技术的发展。未来还有赛事直播购物,VR实时互动游戏的推出,所以做好架构的衍变以应对未来复杂对边的业务场景需求。

本文最后送福利:

如何创建一个直播答题平台需要几步?https://segmentfault.com/a/1190000013001328

相关文章: