如何在基础架构从系统故障中自我恢复时,仍能确保观众能够在Netflix上观看他们最喜欢的节目? Netflix 给出了他们的解决方案。
作者 / Manuel Correa,Arthur Gonigberg,Daniel West
译者 / Alpha
原文链接/https://netflixtechblog.com/keeping-netflix-reliable-using-prioritized-load-shedding-6cc827b02f94
对世界各地的司机来说,堵车是最令人沮丧的经历之一。每个人都缓慢得像是在爬行一样,有时是因为出现了一个小问题,有时则是毫无理由的拥堵。作为Netflix的工程师,我们一直在不断评估如何重新设计流量管理框架。如果我们知道每个人行程的紧迫性,就可以有针对性地为他们选择路线,而不是让大家做无谓的等待,这么做的结果会如何呢?
在Netflix的工程设计中,我们的动力是确保Netflix可以在您需要的时候及时出现。然而,就在去年,我们的系统还很容易受到人们所说的的“交通拥堵”的影响;我们有开关断路器,但没有循序渐进的方式来减轻负载。为了改善会员的播放体验,我们引入了基于优先级的渐进式减载法。
下面的动画展示了当后端根据优先级限制流量时,观众体验到的Netflix性能。当较低优先级的请求被限制时,整个播放体验完整流畅,观众可以尽情享受观看的内容。接下来让我们深入研究一下我们是如何做到这一点的。
触发失败的诱因有很多,比如客户端行为不当引发的重试风暴、后台服务器规模不足、部署不当、网络故障或云提供商的问题等等。任何上述原因都可能瞬即给系统造成巨大的载荷,在以前,这些例子中的每一个都会使我们的会员无法播放视频。为了防止此类突发事件的发生,我们开始着手实现以下目标,使Netflix的服务更具弹性: