高可用架构 微信号 ArchNotes 功能介绍 高可用架构公众号。 几个月前,我们开始推出 Facebook Mentions 的 Live 功能,该功能让认证后的公众人物可以通过 Mentions 对其 Facebook上 的粉丝进行视频直播。我们在这次部署中学到了很多,并且我们已经开始测试 Facebook 用户使用的视频直播分享功能,第一步我们先从美国使用 iPhone 的这一小部分用户开始测试。 为 Facebook 构建视频直播是一项具有挑战性的大规模工程活动。在 Facebook Mentions 的 Live 功能上,我们必须解决巨大的流量峰值问题。Facebook 上的公众人物粉丝可能多达百万,这些粉丝全都想要在同一时间观看视频;我们还有一个目标,就是创造均衡负载的新办法。为了开始向更多的人推出视频直播,我们通过允许 RTMP 进行回放,从而把直播的延迟压缩到几秒钟。我们希望这些低延迟的直播会改善用户体验,让直播者和观看者之间更高的互动性。在这篇文章中,我们将粗略地看一下我们在每次发布时解决的问题,我还将向你解释我们为负载均衡和 RTMP 实现问题所选择的解决方案。 解决"惊群效应"问题 可以说,防止过载的最好方法就是不让负载穿过大门。与其让客户端直接和直播流服务器连接,我们让边缘缓存(edge caches)的网络分布到全局。 在我们的实现中,一个视频直播被分割成了 3 秒的 HLS 段。显示直播的视频播放器会继续请求这些段。边缘数据中心的一个 HTTP 代理会处理段请求,该数据中心会检查这个段是否已经存在于一个边缘缓存中。如果在缓存中,它就会被返回。如果不在,代理就会向源缓存发出 HTTP 请求,而源缓存是另一个具有相同架构的缓存层。 如果段不在源缓存中,就需要向处理这个特定视频流的服务器请求。 这个解决方案很不错,但是当你处于我们这样的规模时就会发生一些泄露——约有1.
Read full article from 揭秘百万人围观的Facebook视频直播
No comments:
Post a Comment