新浪微博技术分享:微博实时直播答题的百万高并发架构实践

  • 时间:
  • 浏览:3

让我们我们我们基于微博直播的技术现状,设计了俩个 方案。如下图所示,这是让我们我们我们微博直播互动的架构图。左侧是微博的基础设施服务,基本上日后自研的,比如最核心的短连使用的是自研的 wesync 协议,支持SSL,是支撑百万互动消息架构设计 的核心服务之一。长连维护消息通道可动态扩容,海量用户一起涌入日后进行容量的计算,对让我们我们我们的资源进行扩缩容。

《新手入门:到底有哪些是WebRTC服务器,以及它是要怎样联接通话的?》

《移动端实时音视频直播技术详解(六):延迟优化》

[1] 开源实时音视频技术WebRTC的文章:

《实现延迟低于5000毫秒的10500P实时音视频直播的实践分享》

《即时通讯音视频开发(六):要怎样现在开始英文英文音频编解码技术的学习》

你你你你你这个句话中含俩个 关键点,分别对应了不同的技术要求:

方案三:复用互动通道

《要怎样优化传输机制来实现实时音视频的超低延迟?》

《IM实时音视频聊天时的回声消除技术详解》

《基于开源WebRTC开发实时音视频靠谱吗?第3方SDK有有哪些?》

一起,在资源层,让我们我们我们对数据进行补救时,把用户提交的请求做俩个 合并,交给独立的资源池进行批量提交。让我们我们我们的设计方案有俩个 阈值,当遇到不可控,比如负荷达到让我们我们我们设计的阈值时,让我们我们我们有自动随机重试的机制,保证用户把答案都都可不还可以提交上来。对于重试请求让我们我们我们做针对性的时间补偿,原来保证流量达到让我们我们我们负载的然后,答题请求都可不还可以不能提交上来。

直播答题的核心需求用励志的话 就都可不还可以概括:海量用户一起在线的场景下,确保用户的答题画面能展现,在直播过程中流畅地参与答题,最终分到奖金。

让我们我们我们从接入难度、扩展性和音视频同步三方面,对俩个 方案进行了对比。针对以上俩个 方案,让我们我们我们最终使用方案三。首比较慢保证答题不受直播流信号的影响。让我们我们我们现在微博直播现有的架构能都都可不还可以支持千万级消息的架构设计 ,让我们我们我们把答题信息塞进去去互动通道架构设计 ,这是让我们我们我们有能力支持的。答题和互动的上行消息由短连服务支撑,在发题以及结果展示信息的然后,让我们我们我们直接通过主动推送,经过广播消息,通过长连最终发给用户。也一些一些 说整个答题就直接采用了互动的通道,与音视频流完整版隔抛妻弃子来。

让我们我们我们的补救依据有两方面。第一一些一些 针对海量消息架构设计 ,对消息进行体积上的压缩,减少消息传输的冗余。压缩消息的然后让我们我们我们采用了俩个 私有协议,让我们我们我们尽量压缩顶端无用的东西,减小传输冗余,减小速率单位的消耗。

补救机拉到用户的任务分片时,根据用户取舍、情形,以及长连的地址,让我们我们我们对用户的消息整合。假如有一天有海量的用户,一些一些体量巨大,假如有一天答案取舍往往都可不还可以 A、B、C、D 并算不算,针对答案让我们我们我们都可不还可以做俩个 分组,比如选 A 用户有几条,选 B 用户有几条。让我们我们我们把单独消息进行合并,选A的用户做为俩个 集合。

《WebRTC实时音视频技术的整体架构介绍》

另一方面,每一轮的答题都可不还可以发题和展示答案俩个 指令。主持人在发题日后说题目是有哪些,最终说出结果是有哪些。越来越单独指令触发告诉服务器端有哪些然后进行数据补救。假如有一天,海量数据时要得到快速的计算。

最后,还有俩个 关键的核心,一些一些 压测,通过压测让我们我们我们都可不还可以快速了解上述补救方案与算不算效,我要们都可不还可以持续优化补救方案。

《声网架构师谈实时音视频云的实现难点(视频采访)》

针对可靠性的有哪些的什么的问题,让我们我们我们通过完善快速自动断连重试机制,以及题目消息无条件重传,来保证弱网下的用户都可不还可以正常参与答题活动。

《简述开源实时音视频技术WebRTC的优缺点》

《近期大热的实时直播答题系统的实现思路与技术难点分享》

另外,即时通讯网架构设计 的直播答题相关文章有:

《访谈WebRTC标准之父:WebRTC的过去、现在和未来》

直播有音视频流通道和互动通道,题目使用互动通道独立架构设计 。它的特点是题目架构设计 不依赖于音视频流,它的通道是独立的,不受直播流的影响,即使直播中断了,哪怕是黑屏,让我们我们我们都可不还可以不能把题目的画面展示给用户。缺点也是一样,假如有一天它并日后跟音视频在俩个 通道,一些一些它们两者时间难以保持一致。

《实时音视频聊天技术分享:面向不可靠网络的抗丢包编解码器》

《2018新“风口”——直播答题应用原理解析》

刚才让我们我们我们提到,用户假如有一天在弱网情形架构设计 生丢包,让我们我们我们推送的消息有假如有一天他越来越收到,他一旦收都可不还可以消息,整个答题越来越依据进行,有假如有一天原因分析分析他在你你你你你这个轮就被淘汰了。让我们我们我们的补救方案是实现更稳定更快速的自动重连。人太好用户的网络环境是让我们我们我们越来越依据去保证的,但让我们我们我们都可不还可以更快速发现他和让我们我们我们长连服务器断连,并进行更快速的重连。

《腾讯技术分享:微信小进程音视频与WebRTC互通的技术思路和实践》

直播答题场景有俩个 一阵一阵明显的内部结构,它不像让我们我们我们上线其它功能假如有一天接口,让我们我们我们都可不还可以进行灰度放量。直播答题一上线,一些一些 全量,越来越能通过灰度放量发现有哪些的什么的问题的过程。一些一些让我们我们我们对系统服务承载能力时要有俩个 量化的评估。

《微信多媒体团队访谈:音视频开发的学习、微信的音视频技术和挑战等》

《首次披露:快手是要怎样做到百万观众同场看直播仍能秒开且不卡顿的?》

也一些一些 说你你你你你这个个消息体人太好中含了一些一些用户的消息,从消息体量上,让我们我们我们进行降量,把小的消息合成成俩个 消息体,把俩个 消息体发给让我们我们我们长连接的服务,长连接收到你你你你你这个消息体的然后再进行拆分。它你这个消息的俩个 包,让我们我们我们把它按照用户的维度进行拆分,比如用户取舍了有哪些答案,它算不算使用过复活卡,以及它的情形,进行拆分后,最终架构设计 给用户。原来在前面进行拆,在顶端进行合,合完然后再拆一遍,这是让我们我们我们补救海量数据实时计算的思路。

《腾讯技术分享:微信小进程音视频技术转过身的故事》

一起,在答题倒计时内让我们我们我们无条件对题目消息进行重传。你这个让我们我们我们 T0 的然后发现用户断连,他在 T1 的然后,架构设计 的题目收都可不还可以,假如有一天让我们我们我们在 T2 进行重连,在 T3 进行无条件重传的然后保证他收到你你你你你这个题目。让我们我们我们在消息体埋了俩个 最迟的展现时间,到你你你你你这个时间后客户端日后把题目展示出来,保证他就算直播流断了,让我们我们我们都可不还可以不能正常答题。面对黑屏的场景让我们我们我们都可不还可以不能完成答题的游戏。

《即时通讯音视频开发(十三):实时视频编码H.264的特点与优势》

《开源实时音视频技术WebRTC的现状》

总体来讲,有四轮压测:

《理解实时音视频聊天中的延时有哪些的什么的问题一篇就够》

《近期大热的实时直播答题系统的实现思路与技术难点分享》

《腾讯音视频实验室:使用AI黑科技实现超低码率的高清实时视频聊天》

《即时通讯音视频开发(二):视频编解码之数字视频介绍》

《即时通讯音视频开发(九):实时语音通讯的回音及回音消除概述》

让我们我们我们的补救依据一些一些 进行多轮压测和持续的性能优化。

让我们我们我们每一轮答题现在开始英文英文的然后,日后统计用户的答题情形,比如用户答案算不算正确,用户算不算复活,以及他与算不算复活卡。当有有哪些逻辑都塞进去去一起时要补救,假如有一天又是在俩个 海量数据场景下时,就变得非常多样化了。

《实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小进程》

《即时通讯音视频开发(十):实时语音通讯的回音消除技术详解》

第三根题目消息,会被复制N份后架构设计 给用户。百万用户产生的答案消息是海量的,对于千万级消息实时架构设计 的系统来说,订阅端的网络速率单位压力也是巨大的。如下图所示,消息出口的速率单位消耗非常大,假如有一天让我们我们我们是针对海量用户的连接。

针对海量消息的实时架构设计 有哪些的什么的问题,让我们我们我们通过将用户分组,把大体量的消息任务化整为零,做分布式的分批次补救。

简单总结一下,针对音画与题目同步的实时性有哪些的什么的问题,让我们我们我们将直播流和互动通道进行对标,补救题目与音视频之间的同步有哪些的什么的问题。

>> 更多你这个文章 ……

《还在靠“喂喂喂”测试实时语音通话质量?本文教你科学的评测依据!》

(本文同步发布于:http://www.52im.net/thread-2022-1-1.html)

第俩个 :一些一些 “海量用户一起在线”。海量用户带来的一些一些 海量的数据。在你你你你你这个场景下第俩个 用户高峰出先在活动现在开始英文英文前,海量的用户会在几分钟内加入房间。在直播进行中,答题的十秒倒计时内,海量用户会一起提交答案,会产生海量的答题消息,包括让我们我们我们互动与题目结果的消息,一些一些架构设计 、上传双向日后出先高并发。这就考验让我们我们我们对海量数据高并发的补救能力。

首先,当发题指令到达服务端的然后,让我们我们我们按照一定的规则对用户进行细粒度的拆分。一起根据倒计时和流延时等等时间综合考虑,都都可不还可以计算出让我们我们我们有哪些然后都可不还可以现在开始英文英文进行数据补救。假如有一天将刚才做好的用户分片,封装成任务分片,塞进去去延时队列当中。到达你你你你你这个执行时间的然后,由让我们我们我们补救机的机群拉取你你你你你这个任务,都可不还可以在执行时间才会去补救你你你你你这个任务,不什么都越来越先用户答案越来越提交上来,让我们我们我们就现在开始英文英文计算了。一些一些不不有将一主次用户漏掉的情形。 

《即时通讯音视频开发(十五):聊聊P2P与实时音视频的应用情形》

《移动端实时音视频直播技术详解(三):补救》

《开源实时音视频技术WebRTC中RTP/RTCP数据传输协议的应用》

《了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化》

《浅谈实时音视频直播中直接影响用户体验的几项关键技术指标》

《网易视频云技术分享:音频补救与压缩技术快速入门》

3)负载均衡压测:评估负载均衡数量;

让我们我们我们的补救依据是在音视频每隔一帧,假如有一天一定帧数内,插入服务器的时间戳。一起,让我们我们我们在架构设计 的消息体内也埋入服务器的时间戳。客户端播放音视频流的然后,到达相应的时间戳时,把跟你你你你你这个时间戳相匹配的消息在页面上渲染出来,也一些一些 展示出了答题的画面。通过使用统一时间戳进行对标,就抹平了视频与题目的时间差。

把海量用户产生的海量数据一次性的获取出来,这是不现实的,耗费资源相当巨大,一些一些让我们我们我们的思路一些一些 化整为零,做并行补救。

《WebRTC实时音视频技术基础:基本架构和协议栈》

《实时语音聊天中的音频补救与编码压缩技术简述》

《基于RTMP数据传输协议的实时流媒体技术研究(论文全文)》

《简述实时音视频聊天中端到端加密(E2EE)的工作原理》

《移动端实时视频直播技术实践:要怎样做到实时秒开、流畅不卡》

第一个:关键点是“答题画面都都可不还可以展示”,这是非常基础且首要的需求,假如有一天用户参与答题,假如有一天画面都展示什么都越来越来,越来越这场游戏就越来越进行下去了。每一轮答题都假如有一天淘汰一批用户,淘汰答错题的用户是正常的,但假如有一天是假如有一天未能展示出答题画面而淘汰,那一些一些 技术有哪些的什么的问题。其技术难点在于海量题目的架构设计 成功率要有保证,给技术提出的对应要求一些一些 服务的可靠性。

最后俩个 :是“流畅地参与答题”,这与用户体验相关,每一轮答题时间间隔很短,一旦错过一道题的答题时间,用户就越来越完成你你你你你这个游戏,一些一些要保证消息架构设计 后,10秒内让用户收到假如有一天正常展示。一起,每一轮答题后,主持人时要立刻看后答题数据,包括有几条用户答对,有几条用户使用了复活卡等。这给让我们我们我们带来的是对海量数据进行实时架构设计 、实时统计的挑战。

《移动端实时音视频直播技术详解(四):编码和封装》

让我们我们我们的补救方案一些一些 用户请求补救快速返回时,把重逻辑往后延,前面上行请求一些一些 保证轻逻辑,让它都可不还可以比较慢返回。

《专访微信视频技术负责人:微信实时视频聊天技术的演进》

《P2P技术要怎样将实时视频直播速率单位降低75%?》

《移动端实时音视频直播技术详解(一):开篇》

让我们我们我们看下图,当主持人 T0 时间发题,用户在 T2 时间有假如有一天才收到你你你你你这个视频流。假如有一天让我们我们我们 T0 的时间进行发题,在 T1 的时有哪些的什么的问题目就到用户客户端了。有哪些的什么的问题在于让我们我们我们要怎样抹去 T2-T1 的时间差。对于用户体验来说,让我们我们我们在 T1 把题目画面展示出来,在下一秒都可不还可以听到主持人说“请听题”,这体验肯定不好。

《福利贴:最全实时音视频开发要用到的开源工程汇总》

首先,如下图所示,这是俩个 传统的直播页面。它的主页面是直播的音视频流,下面显示的是消息互动,包括评论、点赞和分享。有哪些是直播答题呢?

《网易云信实时视频直播在TCP数据传输层的一些优化思路》

本文由“声网Agora”的RTC开发者社区架构设计 。

《新浪微博技术分享:微博短视频服务的优化实践之路》

《移动端实时音视频直播技术详解(二):架构设计 》

让我们我们我们都可不还可以在音视频流顶端直接加入题目的信息。在主持人口令位置插入题目消息。客户端播放音视频流,收到题号数据的然后,直接把题目给展示出来。你你你你你这个方案的特点一些一些 题目展示的时间能和主持人口令一致,也一些一些 说用户是感知都可不还可以时间差的,体验非常好。缺点是太依赖于音视频流,一旦出先网络抖动,假如有一天直播流中断,用户假如有一天会收都可不还可以题目,你你你你你这个游戏就越来越继续下去了。 

《浅谈开发实时视频直播平台的技术要点》

  - c. 按照预估用户量和资源消耗量对线上服务及资源集群进行扩容,对线上服务真实压测。

《要怎样用最简单的依据测试你的实时音视频方案》

2)单机综合压测:定位性能损耗点,优化业务补救逻辑;

(本文同步发布于:http://www.52im.net/thread-2022-1-1.html)

另外,对于高并发有哪些的什么的问题,让我们我们我们将消息按照用户选项进行分组,化零为整,降低信息的推送量。一起,让我们我们我们对消息内部结构进行了优化,从这两方面补救高并发有哪些的什么的问题。

  - a. 搭建起压机测试集群,保证能模拟百万量级用户产生的数据量;

《即时通讯音视频开发(三):视频编解码之编码基础》

《简述实时音视频聊天中端到端加密(E2EE)的工作原理》

《即时通讯音视频开发(十六):移动端实时音视频开发的几条建议》

针对实时性、可靠性和高并发,俩个 典型的有哪些的什么的问题,让我们我们我们日后不同的补救依据。 

《浅谈开发实时视频直播平台的技术要点》

《腾讯技术分享:微信小进程音视频与WebRTC互通的技术思路和实践》

新浪微博团队分享的:《新浪微博技术分享:微博短视频服务的优化实践之路》一文,您也假如有一天感兴趣。

《要怎样优化传输机制来实现实时音视频的超低延迟?》

[2] 实时音视频开发的其它精华资料:

《理论联系实际:实现俩个 简单地基于HTML5的实时视频直播》

《即时通讯音视频开发(十四):实时音视频数据传输协议介绍》

《网页端实时音视频技术WebRTC:看起来很美,但离生产应用还有几条坑要填?》

《Android直播入门实践:动手搭建一套简单的直播系统》

《即时通讯音视频开发(七):音频基础及编码原理入门》

《以网游服务端的网络接入层设计为例,理解实时通信的技术挑战》

《七牛云技术分享:使用QUIC协议实现实时视频直播0卡顿!》

1)单机单接口压测:掌握单机性能数据;

《实时通信RTC技术栈之:视频编解码》

《移动端实时音视频直播技术详解(五):推流和传输》

方案二:复用音视频通道

《[观点] WebRTC应该取舍H.264视频编码的四大理由》

《开源实时音视频技术WebRTC在Windows下的简明编译教程》

客户端不断进行请求,由服务端控制时间窗口,到时间让我们我们我们开放请求,结果返回。优点是实现简单。缺点在于多量无用请求会消耗多量速率单位资源,给服务端带来持续性的压力。假如有一天,题目到达时间与音视频流到达时间难以保持一致。

《良心分享:WebRTC 零基础开发者教程(中文)[附件下载]》

方案一:轮询

《即时通讯音视频开发(一):视频编解码之理论概述》

《即时通讯音视频开发(八):常见的实时语音通讯编码标准》

《学习RFC35500:RTP/RTCP实时传输协议基础知识》

本文将分享新浪微博系统开发工程师陈浩在 RTC 2018 实时互联网大会上的演讲。他分享了新浪微博直播互动答题架构设计 的实战经验。其转过身的百万高并发实时架构,值得借鉴并用于未来更多场景中。本文正文是对演讲内容的架构设计 ,请继续往下阅读。

《微信多媒体团队梁俊斌访谈:聊一聊我所了解的音视频技术》

首先让我们我们我们做开发的然后假如有一天现在开始英文英文同步压测。让我们我们我们进行一些功能有哪些的什么的问题修复的然后,压测的同事都可不还可以进行做一些单接口的压测,找出接口性能的临界点。开发的同事做优化的一起,压测组模拟海量用户在线的场景,搭建压测的环境。

《技术揭秘:支持百万级粉丝互动的Facebook实时视频直播》

《实时音视频聊天中超低延迟架构的思考与技术实践》

《即时通讯音视频开发(四):视频编解码之预测技术介绍》

实时性有哪些的什么的问题主要体现在两方面,俩个 是答题画面的实时展现,原来是海量数据的实时统计。

直播流经过采编设备发给用户客户端是有延时的,顶端经过编解码,到达客户端的时间和主持人发出口令时间,有俩个 时间间隔。让我们我们我们采用互动通道的然后,你你你你你这个个时间让我们我们我们是不容易做同步的。客户端收到题目和视频流最终到达的时间会出先不一致的情形。

  - b. 按照预估百万量级用户消耗的公网速率单位配置起压机出口速率单位,真实模拟线上业务场景;

4)集群全链路压测:

《即时通讯音视频开发(十二):多人实时音视频聊天架构探讨》

>> 更多你这个文章 ……

《微信团队分享:微信每日亿次实时音视频聊天转过身的技术解密》

《即时通讯音视频开发(十七):视频编码H.264、VP8的前世今生》

《即时通讯音视频开发(五):认识主流视频编码技术H.264》

《写给小白的实时音视频技术入门提纲》

《实时音频的混音在视频直播应用中的技术原理和实践总结》

第一个是消息降量,让我们我们我们根据用户的答案进行分组,按照分组把有有哪些消息进行合并,由原来的第三根消息日后推送一次,转变成架构设计 俩个 消息集合。一起,让我们我们我们提升消息的吞吐量,采用顶端件的集群,进行多端口并行的架构设计 。

在直播答题方案设计(下图)中,最核心的一些一些 补救答题信令通道的取舍有哪些的什么的问题。让我们我们我们想到了俩个 方案来补救。

每道题目架构设计 后有俩个 10秒倒计时。假设有百万用户在线,在10秒之内都都可不还可以提交完答案,用户提交答案至少集中在第3至第6秒之间,QPS 峰值预估会有500万。其次,让我们我们我们保证用户答案在短时间都能提交,假如有一天它是有时间限制的,假如有一天让我们我们我们做了削峰限流,他就会错过答题的时间窗口。一些一些让我们我们我们都可不还可以对请求做削峰限流。

直播答题人太好本质上还是俩个 直播的场景,一些一些 引入了答题的互动依据。主持人都可不还可以通过口令控制客户端的行为,比如控制发题。一起,直播答题通过奖金激励,带动更多用户参与进来。在每一次答题然后,会将数据实时展示出来。下图展示的是直播答题的流程,顶端的主次是会重复进行的环节。

《即时通讯音视频开发(十一):实时语音通讯丢包补偿技术详解》