如何理解Netflix的信息處理架構-創(chuàng)新互聯(lián)

本篇內容介紹了“如何理解Netflix的信息處理架構”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

成都創(chuàng)新互聯(lián)主營陸川網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,App定制開發(fā),陸川h5小程序制作搭建,陸川網(wǎng)站營銷推廣歡迎陸川等地區(qū)企業(yè)咨詢

Netflix是一家在線影片租賃提供商,該公司連續(xù)五次被評為顧客最滿意的網(wǎng)站,在過去的7年中,Netflix流媒體服務從偶爾有數(shù)千用戶在線觀看發(fā)展到了數(shù)百萬用戶平均每月觀看超過20億個小時的規(guī)模。Netflix之所以能夠如此成功,離不開對用戶行為數(shù)據(jù)的收集與分析,那么Netflix會收集哪些數(shù)據(jù),這些數(shù)據(jù)會用來做什么,其處理架構又是什么呢?

事實上,當用戶開始在Netflix的網(wǎng)站上觀看電影或者電視節(jié)目的時候,Netflix的數(shù)據(jù)系統(tǒng)會創(chuàng)建一個“觀看會話(view)”,描述該會話的所有事件信息都會被收集起來。該觀看會話數(shù)據(jù)架構能夠應對從用戶體驗到數(shù)據(jù)分析的諸多場景,其中最主要的場景有三個:

用戶看了哪些視頻?系統(tǒng)需要知道每一個用戶的所有觀看歷史,以便于為用戶推薦相關的視頻內容,同時在頁面上的“最近觀看”一欄中顯示觀看歷史。用戶所看的內容對于用戶興趣的衡量,產品和內容的決定非常重要。
用戶從哪里離開了視頻?對于每一個電影或者電視節(jié)目,Netflix會記錄每一個用戶都看到了哪里,從哪個時間點離開的。這使得Netflix的用戶能夠在同一個或者另一個設備上繼續(xù)觀看視頻。
當前帳戶現(xiàn)在還在觀看哪些視頻?家庭成員間的帳戶共享使得任何人可以在任何時候觀看自己喜歡的視頻,但是這也意味著當帳戶同時在線數(shù)超限的時候,必須要有人放棄觀看。針對這種場景,Netflix的觀看會話數(shù)據(jù)系統(tǒng)會收集每一個會話的周期性信號以便于決定某個成員是否還在觀看相關視頻。
這些場景的實現(xiàn)離不開強大而穩(wěn)定的數(shù)據(jù)處理系統(tǒng),Netflix目前的系統(tǒng)架構由早期的單數(shù)據(jù)庫應用程序演變而來,當時的主要需求是能夠低延遲地為用戶提供視頻服務,同時還能夠處理來自于數(shù)百萬Netflix流設備的快速增長的數(shù)據(jù)集。在過去3年多的時間里,Netflix一直在不斷地改進該架構,現(xiàn)在這套系統(tǒng)每天能夠處理千億左右的事件。

當前的架構圖如下:
如何理解Netflix的信息處理架構

整個架構最主要的接口是觀看會話服務,它分為有狀態(tài)層和無狀態(tài)層兩部分。有狀態(tài)層在內存中存有所有活動視圖的新數(shù)據(jù)。通過對用戶帳戶ID進行mod N的模運算,數(shù)據(jù)被簡單地劃分為N個有狀態(tài)的節(jié)點。當有狀態(tài)的節(jié)點上線的時候,系統(tǒng)會通過一個位置選擇流程決定哪部分數(shù)據(jù)屬于它們。所有的持久化數(shù)據(jù)都存儲在Cassandra中,在Cassandra之上有一個Memcached用來保證低延遲的讀取路徑,但是采用這種方式會話數(shù)據(jù)有可能會過時,同時如果一個有狀態(tài)的節(jié)點出現(xiàn)了錯誤,那么1/n的瀏覽數(shù)據(jù)將不能讀寫。無狀態(tài)層的引入正是為了解決這一問題,它提升了系統(tǒng)的可用性,當有狀態(tài)的節(jié)點無法訪問的時候,該層會將過時的數(shù)據(jù)反饋給用戶。

但是即使是做了諸多改進,以上架構依然存在一些缺陷:

雖然有狀態(tài)層使用一個簡單的、服從熱點分布的分片技術,但是Cassandra層并不服從這些熱點;同時,如果將其從一個AWS Region移動到多個AWS Region上運行,那么必須定制一種機制來實現(xiàn)分布在不同Region上的狀態(tài)層之間的狀態(tài)通信,極大地增加了系統(tǒng)的復雜性。
對于觀看會話服務,它封裝了會話數(shù)據(jù)的收集、處理和提供功能,隨著系統(tǒng)的演變,功能的增多,該服務的責任也越來越多,增加了運維的難度。
雖然Memcached提供了非常好的吞吐量和延遲特性,但是使用一種能夠為一等數(shù)據(jù)類型和操作(例如append)提供原生支持的技術能夠更好地滿足相關需求。
為了擴展系統(tǒng)滿足下一個數(shù)量級的需要,Netflix正在重新思考自己的基礎架構,新系統(tǒng)在設計時考慮的主要設計原則包括:

可用性比一致性更重要。
微服務。對于有狀態(tài)架構中柔和在一起的組件,根據(jù)它們的主要目的分離成單獨的服務——或收集、處理或提供數(shù)據(jù)。將狀態(tài)管理功能托管到持久化層,讓應用程序層無狀態(tài),同時組件之間通過事件隊列解耦。
混合持久化。使用多種持久化技術,利用每一種方案的優(yōu)勢。使用Cassandra實現(xiàn)高容量、低延遲的寫。使用Redis實現(xiàn)高容量、低延遲的讀。
遵循以上原則的新架構實現(xiàn)如下:
如何理解Netflix的信息處理架構

當然,這個架構圖也僅僅是Netflix目前的設計圖,至于實現(xiàn)到何種程度了,我們還未可知。Netflix表示對關鍵系統(tǒng)進行重新架構以使其能夠擴展到下一個數(shù)量級是一項非常困難的工作,需要長時間的開發(fā)、測試和驗證,同時遷移也不是那么容易。但是以這些架構原則為指導,Netflix相信他們正在構建的下一代系統(tǒng)能夠滿足自己大規(guī)模、快速增長的需要。


“如何理解Netflix的信息處理架構”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質量的實用文章!

網(wǎng)站欄目:如何理解Netflix的信息處理架構-創(chuàng)新互聯(lián)
瀏覽地址:http://muchs.cn/article38/phspp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站排名、商城網(wǎng)站、全網(wǎng)營銷推廣、外貿網(wǎng)站建設用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管