作者:Ankush Gulati, David Gevorkyan
贡献:Michael Clark, Gokhan Ozer翻译:欧阳锦校对:张睿毅
本文约3700字,建议阅读10+分钟
本文简单介绍了Netflix构建的快速事件通知系统 (Rapid Event Notification System, RENO),包括该系统的基本架构和优点等。
介绍
Netflix 拥有超过 2.2 亿活跃会员,他们会使用各种功能执行大量操作,从个人资料重命名到影片标题搜索。确保最佳会员体验这件事上,这件事至关重要:接近实时的,响应大量的操作,以保持跨设备的体验一致性。但有件不容易的事,就是支持繁多的设备种类和大量的会员操作。为这件事,我们开发了一个快速事件通知系统(Rapid Event Notification System, RENO)以支持各种用例,并满足这些用例的可量变(scalable)和可延展(extensible)需求,使服务器能够与大量设备发起通话。
在这篇博文中,我们将概述Netflix的快速事件通知系统,并分享我们在此过程中获得的一些经验。
动机
随着会员群的快速增长和系统的日益复杂,Netflix 的架构已经演变成一种可以同时支持在线和离线计算的异步架构。提供无缝且一致的 Netflix 体验,在各种平台(iOS、Android、智能电视、Roku、Amazon FireStick、网络浏览器)和各种设备类型(手机、平板电脑、电视、计算机、机顶盒)上,不仅需要传统request - response 模型。随着时间的推移,我们看到:后端系统需要启动与设备的通信,以通知其他更新。
用例
查看活动
当会员开始观看节目时,其他所有设备的观看情况上,要响应更新他们的“继续观看”列表。
个性化体验刷新
Netflix推荐引擎不断为每个成员刷新推荐。为获得最佳的会员体验,更新需要及时传送到设备上。
会员计划变更
因为会员们经常改变他们的计划类型,导致必须立即反映在他们的所有设备上,当他们的体验发生变化时。
会员“我的清单”更新
当会员们更新他们的“我的列表”时,可能添加或删除了数个标题。此改动应在他们所有的设备上响应。
会员资料变更
当会员们更新自己的设置时(例如,添加/删除/重命名个人页面),或当会员们更改他们对于内容的偏好度级别时,此类更新必须同步到他们自己的所有设备上。
系统诊断信号