Netflix 拥有超过 2.2 亿活跃会员,他们会使用各种功能执行大量操作。近乎实时地对这些操作做出反应以保持跨设备的体验一致,这对于确保最佳会员体验至关重要。考虑到支持的设备种类繁多以及会员执行的操作数量之多,这不是一件容易的事。为此,我们开发了一个快速事件通知系统 (RENO),以支持需要服务器的可扩展性和并以可扩展的方式与设备通信。
在这篇博文中,我们将概述 Netflix 的快速事件通知系统,并分享我们在此过程中获得的一些经验。
动机
随着会员群的快速增长和系统的日益复杂,Netflix 的架构已经演变成一种异步架构,可以同时支持在线和离线计算。在各种平台(iOS、Android、智能电视、Roku、Amazon FireStick、网络浏览器)和各种设备类型(手机、平板电脑、电视、计算机、机顶盒)上提供无缝且一致的 Netflix 体验,这样需要的不仅仅是传统的request - response 模型。随着时间的推移,我们看到后端系统需要启动与设备的通信以通知其他更新。
用户用例
查看活动 当会员开始观看节目时,他们的“继续观看”列表应该更新到其他所有设备上。
个性化体验刷新 Netflix 推荐引擎不断为每个成员刷新推荐。更新需要及时传送到设备上,以获得最佳的会员体验。
会员计划变更 会员经常改变他们的计划类型,导致他们的体验发生变化,这种变化必须立即反映在他们所有设备上。
会员“我的名单”更新 当成员通过添加或删除标题来更新他们的“我的列表”时,这些更改应该反映在他们的所有设备上。
会员资料变更