美文网首页『闲话电影』@IT·互联网电影漫谈
Facebook工程师如何搞定全球同步的大规模现场直播

Facebook工程师如何搞定全球同步的大规模现场直播

作者: videocase | 来源:发表于2017-10-17 13:56 被阅读0次

一场数十亿人观看全球同步的现场直播,如何才能保证用户观看体验?Facebook做到了。

去年二月份,长颈鹿April在纽约市的哈布斯维尔动物奇遇公园生下了小宝宝,热情的观众能够在Facebook Live上实时观看。该直播活动共有140万人参与并发表了25万多条评论。在西雅图,Facebook工程师们在确保每个人都能看April给长颈鹿宝定喂食,并发表评论,而且能够看到最新的更新。

Facebook拥有超过20亿用户, 其中Messenger和Whatsapp用户数都超过10亿,而Instagram用户数则超过7亿。所有用户都觉得确保能够与最重要的人观看实时交互是Facebook的一个至关重要任务。如果人们聊天时看不到那些他们关心的人正在打字回复的一串小圆点状态,Facebook担心他们可能会失去兴趣。

Facebook的实时基础设施经理Shie Erlich说,关键是要确保当任何用户在社交网络上的实时功能进行某些操作时,或者使用了其中一个任意服务,用户的好友都可以立即看到。 Erlich举例说如果你的朋友Joe想要直播一下他的狗学到的新技巧,他只需要打开应用程序,点击开始直播,他就可以开始把视频通过流媒体直播出去了。我们正在尝试为用户创造观众,要不然用户会感到寂寞。

Facebook需要自动查找可能对Joe的视频感兴趣的人(如朋友,家人和粉丝)并向他们发送通知,提醒他们正在发生的事情。如果他们关心,他们会点击通知,开始观看Joe的狗的表演。很可能很快就有些人会开始发表评论或作出反应 – 点赞,发送心心等等,这是每个人都想看到的。

Erlich还提到参与到这个事件不仅是看到人们如何作出反应,Facebook的系统也旨在让你知道,当你正在观看Joe的视频时,你的另一个朋友也正在观看。这是一项很棒的功能,因为你可以直接与那个朋友沟通。他说我们的系统能够实现在线存在的这个概念,让你知道有人正在分享和你同样的经历。

次秒延迟

当Facebook谈论实时时,他们确实做到了。 Erlich说其目标是"次秒钟延迟",尽管确保成千上万甚至数百万人同时参与一个直播视频是个十分困难的挑战。 "实时是一个功能,"Erlich解释说,"而今天,它更像一个实用程序,做到实时是很困难的,其中大部分原因是如何同时为那么多人做到实时。"

他表示,令人难以置信的是,尽管数以千万计的人正在观看相同的视频,但Facebook仍然希望给每个人一个独特的体验。 他举例说如果你和我在大选之夜观看现场直播,我想看你的评论,因为你是我的朋友,而不是随机的人。

与此同时,Facebook和它的其他服务也是全球性的。虽然系统通常处理世界各地的无数事件,但有时候,每个人的注意力都被吸引到同一个事件当中。

Erlich解释说,有个例子是上个月的日食。突然间,世界的注意力集中在这件事上了,把它看作是索伦之眼,一股深厚的兴趣指向一个特定的地方。我们的系统需要处理所有想获得相同信息或经验的人。

在美国航空航天局的日食视频中,创造了一个计算机科学事件Erlich称之为"热点",有超过3100万次观看和近30万条评论。这意味着Facebook系统的流量在几分钟内增长了20多倍。

这是Erlich的团队可以预测的事件,但是不可预测的呢?他说Facebook的基础设施必须承受任何事情。例如,碧昂丝宣布在Instagram上怀孕事,获得了超过1100万个赞。

根据Erlich的说法,成功处理预期和意料之外的事关键有三要素。

首先,他说Facebook有"坏蛋工程师",他们有自由探索的权力去获得创造力,并且做出"疯狂的解决方案来解决困难问题"。其次,Facebook和其兄弟的服务旨在共同的平台上工作,这些平台是由多个产品团队构建和重复使用的。臃肿的企业"将在自己的体重下倒下"。最后,Facebook不断升级系统,确保其当前的技术架构能够扩展到当今的需求,而未来将由更先进的基础设施处理。

Erlich说:"我们的系统将遭到重创,我们知道这一点,这即将发生。"

功能降低

一种方法是确保最重要的元素可用。有时候,就像一个计算极端密集的热点一样,比如说日食和长颈鹿出生,这可能意味着个人交互将算法定位到实时内容。当有足够的带宽可用时,系统将再次返回显示所有内容。或者,也许评论将按照发送的顺序显示,而不是仅显示来自朋友的评论。

这被称为功能降低。他说:"这意味着如果事情出岔子的时候,并且不能提供用户以前使用的服务,那么您如何做才不会给用户造成烦恼。"他说。 "这是我们不断痴迷的事情。"

Erlich补充说,目标是帮助内部工程团队提前选择他们的系统如何处理重负荷。

他说随着时间的推移,这些问题可能会更加频繁,因为Facebook系统上播放的实时体验越来越多。所以公司必须做得更好,因为股价越高,失败的成本越来越大。

他说:"我们花了很多时间来了解未来六个月或一年内会发生什么,我们正在努力确保不会在裤子掉下来的时候被人抓到。"

更多精彩请点击:videocase.cn

相关文章

网友评论

    本文标题:Facebook工程师如何搞定全球同步的大规模现场直播

    本文链接:https://www.haomeiwen.com/subject/pdkduxtx.html