奈飛Netflix如何同步數以億計的裝置?
Netflix 是一種線上視訊流媒體服務,以瘋狂的規模執行,2.2 億活躍使用者從多個裝置訪問他們的 Netflix 帳戶,因此 Netflix工程師必須確保使用者登入的所有不同客戶端都是同步的。
為所有使用者在所有這些裝置之間進行同步,需要 Netflix 的後端與所有各種客戶端(iOS、Android、智慧電視、網路瀏覽器、Roku 等)之間進行大量通訊,峰值時,每秒可以處理大約 150,000 個事件。
Netflix如何為所有 2 億使用者保持使用者裝置同步?
- Netflix 的快速事件通知系統 (RENO) 及其解決的問題
- RENO 背後的設計決策
- RENO的架構
RENO
Netflix 構建了他們的快速事件通知系統 RENO,有幾個關鍵的設計決策
- 單一事件源——RENO 必須跟蹤的所有各種事件(檢視活動、推薦等)都來自不同的內部系統。為了簡化這一點,工程師使用了一個事件管理引擎作為間接級別。這個事件管理引擎層是 RENO 的單一事件源。來自各種後端服務的所有事件都進入事件管理引擎,然後再傳遞給 RENO。
- 事件優先順序 - 如果一個使用者改變了他們的設定,與其他事件相比,該事件變化應該有非常高的優先順序。因此,RENO處理的每個事件型別都有一個分配給它的優先順序,然後RENO按該事件優先順序進行分片。這樣,Netflix可以根據事件的優先順序,對系統配置和擴充套件策略進行不同的調整。
- 混合通訊模式--RENO必須支援移動裝置、智慧電視、瀏覽器等。雖然移動裝置幾乎總是連線到網際網路並可到達,但智慧電視只有在使用時才會線上。因此,RENO必須依靠混合推送和拉動的通訊模式,伺服器試圖用推送的方式立即向所有裝置傳送所有通知。裝置將在應用生命週期的不同階段從後端拉動。單純使用拉動是行不通的,因為它使移動應用程式過於健談,而單純使用推送在裝置關閉時是行不通的。
- 有針對性的交付 - RENO支援裝置特定的通知交付。如果某個通知只需要傳送到移動應用程式,RENO可以只向這些裝置傳送。這大大限制了傳出的流量足跡。
- 管理高RPS - 在高峰期,RENO每秒提供150,000個事件。這種高負載會給下游服務帶來壓力。Netflix通過在傳送事件前增加各種閘門檢查來處理這種高負載。一些gate檢查:
- 舊裝置 - 許多事件都是時間敏感的,因此如果事件超過其陳舊閾值,RENO 將不會傳送事件
- 線上裝置 - RENO 使用Zuul跟蹤當前線上的裝置。它只會在裝置線上時將事件推送到裝置。
- 重複 - RENO 檢查任何重複的傳入事件並糾正它。
有一個事件觸發器:事件觸發來自各種後臺服務,處理諸如電影推薦、檔案變化、觀看活動等。
每當有任何變化,就會產生一個事件。這些事件被送到事件管理引擎。
事件管理引擎作為一箇中介層,是RENO的單一的事件來源。
從那裡,事件被傳遞到亞馬遜SQS佇列。這些佇列是根據事件優先順序分片的。
AWS例項叢集將訂閱各種佇列,然後處理這些佇列的事件。它們將為所有裝置生成可操作的通知。
然後,這些通知被髮送到Netflix的外發訊息系統。這個系統負責向所有各種裝置傳送。
這些通知也將被髮送到Cassandra資料庫。當裝置需要拉取通知時,他們可以使用Cassandra資料庫(記住這是一個推和拉的混合通訊模式)。
由於按事件優先順序進行分片,並可向處理叢集層新增更多的機器,它是可以橫向擴充套件的。
詳細點選標題。
相關文章
- Netflix奈飛客戶端客戶端
- Clicker for Netflix :奈飛客戶端客戶端
- 奈飛Netflix客戶端mac版 Clicker for Netflix客戶端Mac
- 奈飛Netflix兩年資料工程經驗 - XInran
- Netflix Mac(奈飛客戶端)v2.12.0Mac客戶端
- 奈飛Netflix Mac客戶端 v2.13.0啟用版Mac客戶端
- Netflix Mac(奈飛客戶端) v2.13.0啟用版Mac客戶端
- 奈飛架構Netflix從單體到微服務演變圖架構微服務
- 奈飛客戶端:Clicker for Netflix Mac v2.13.0啟用版客戶端Mac
- 中文Netflix Mac(奈飛客戶端) v2.13.0啟用版Mac客戶端
- Netflix Mac(奈飛mac客戶端) v2.13.0啟用版Mac客戶端
- 奈飛財報:2023年Q3奈飛營收85.42億美元 同比增長7.8%營收
- 奈飛:預估《魷魚遊戲》價值近9億美元遊戲
- Windows核心程式設計:第10章 同步裝置IO與非同步裝置IOWindows程式設計非同步
- 奈飛:4Q20營收66.44億美元 同比增長21.5%營收
- Netflix Mac(奈飛客戶端) v2.13.0激 活版 支援M1 M2Mac客戶端
- 奈飛Netflix如何在資料整合API領域使用六邊形架構與Clean架構切換到微服務架構? - Netflix TechBlogAPI架構微服務
- 奈飛:3Q20營收64.4億美元 同比增長22.7%營收
- 奈飛使用機器學習建立媒體機器學習
- Netflix如何在雲端使用事件溯源實現可靠的物聯網裝置管理?事件
- 奈飛的資料網格是什麼樣?
- 奈飛:2Q20營收同比增長24.9%至61.48億美元 超出預期營收
- What ‘s On Netflix:2023年下半年奈飛釋出的電視劇減少了約60部 降幅約為25%
- Gartner:預計2017年全球物聯網裝置數量達到84億
- Gartner:預計2015年Android裝置數量將達到23億Android
- Promise-在Java中以同步的方式非同步程式設計PromiseJava非同步程式設計
- 微軟:Windows月活躍裝置數量超過14億臺微軟Windows
- ITU:預計2013年全球網民數達27億 移動裝置量等同人口數
- Juniper Research:預計2017年全球活躍LTE裝置數量超10億臺
- 如何快速接入一個擁有 1.5 億裝置的智慧家居平臺?
- 非同步通知和MISC裝置驅動非同步
- 庫克:蘋果活躍裝置數超18億 同比增長約9%蘋果
- 佔有率超越iOS 安卓裝置基數已達二十億iOS安卓
- CompTIA:預計2020年全球聯網裝置數量將達501億
- Visible Alpha:預計2023年Q3奈飛廣告套餐營收1.881億美元 新增訂戶280萬。營收
- 數以億計執行PHP的網站即將面臨嚴重的安全風險PHP網站
- Hexo部落格多臺電腦裝置同步管理Hexo
- 愛立信:預計2021年全球物聯網裝置數量將達160億臺