Netflix工程師表示Zuul減載系統已能夠保障服務器後端穩定
受COVID-19全球健康危機的影響,人們留在家中的閒暇時間也相對變長。除了遠程辦公和在線教育,流媒體平台的帶寬也遭到了嚴峻的考驗。顯然,網絡擁塞會對在線內容提供商帶來極大的挑戰。為了減輕服務器端的壓力,企業需要找到多種調節後端負載的方法,尤其是以Netflix為代表的流媒體服務提供商。
Netflix 開場動畫
以Netflix 為例,該公司在今年早些時候部署了一款名叫“Zuul”的負載過濾器,旨在通過實時的優先級排序來動態處理服務器請求,以便後端能夠在困難情況下實現“自我修復”。
週一的時候,Netflix 工程師在一篇博客文章中對背後的機理展開了一番詳細的解釋。由此可知,在實施基於優先級的減載方案時,Netflix 還可努力確保用戶的觀看體驗不受影響。
(圖自:Netflix Blog)
去年底的時候,Netflix 曾遭遇過負載擁塞而導致的服務中斷。但在引入基於優先級的減載過濾器之後,後端能夠更加實時地採取應對措施。
Netflix 將該過濾器簡稱為“Zuul”,其能夠根據用戶所需流量的多少、以及借助三個存儲桶對服務器請求進行分類(基於非關鍵/ 節流/ 重要體驗而對流量的優先級進行排序)。
所謂非關鍵項目,包括了日誌和後台請求。工程師解釋稱,其構成了系統吞吐量的很大一部分。即便如此,當服務器負載達到一定閾值時,通常也可以忽略這部分請求。
節流體驗主要針對非必須的內容播放(包括停止/ 暫停標記、播放器中的語言選擇、以及歷史記錄查看等),意在改善用戶體驗。
當後端遇到麻煩時,服務器可能會發出請求,但在大多數情況下,用戶幾乎都是不會注意到這些項目已丟失的(尤其在觀看主要的內容時)。
至於最關鍵的體驗,則涉及最影響用戶內容播放的相關流量。如果這些請求嘗試失敗,視頻內容可能會發生報錯。
Zuul 過濾器會對這些項目中的每一項進行1~100 的評分,若後端、甚至Zuul 本身也出現了問題,過濾器可以果斷地限制最低優先級的負載。
至於這套系統的實際表現,Netflix 坦言2019 年底和2020 年初發生的服務中斷事件對相當大比例的訂閱用戶都造成了影響。
但在Zuul 成功部署之後,系統已多次成功介入減載、直到後端保持穩定,期間並沒有再發生過服務中斷。