影片點播業務過載保護方案的測試實踐

优测云服务平台發表於2025-02-06

前些日子,大批美國網友 “湧入” 小紅書,小紅書幾乎一瞬間就登頂了美區 App Store 免費榜。網際網路面向使用者的業務流量往往無法提前準確判斷,總會面臨突發流量,造成服務承受平時數倍的壓力,無法及時處理請求。過載保護的目標是服務過載情況下,仍能盡其所能對外服務,不至於系統癱瘓,從而保障使用者體驗和服務質量。

今天,我們就以社交平臺核心的影片點播業務場景為例,為大家分享如何使用壓力測試工具,對服務中過載保護方案針對性地進行測試,從而實現方案的選型和日常服務的效能最佳化測試。希望藉此幫助近期類似需求的同學,隨時隨地發起測試,節省大家的時間!

影片點播業務的過載保護特點

短影片業務的服務採用微服務架構,在微服務中由於服務間相互依賴很容易出現連鎖故障導致雪崩。因此,在接入過載保護時需要考慮到微服務的複雜性,即組合過載問題。

基於這一的特點,影片點播在過載保護上需要達到 2 個目標:
1.是過載保護的能力具有通用性,能適應大多數業務場景;
2.是除了點對點的過載保護能力外,還能解決微服務鏈式場景和服務多扇出場景下的過載保護。

過載保護方案的測試實踐

這裡以 tRPC-Go overload control 和 tRPC-Robust 2 款業界常見的過載保護為例,來分享如何開展針對性壓力測試,從而確定最適合自身業務場景的方案,其中主要測試物件和引數對比如下:
●接入外掛/未接入外掛
●服務過載/服務未過載
●單個服務過載/組合過載
●壓測時間 3 分鐘/10 分鐘

1.壓測方案設計

  • 單個服務過載測試
  • 組合過載測試(僅開 server 端)
  • 壓測時間統一分為 3 分鐘和 10 分鐘
  • 測試需覆蓋的要點:
    1. 服務原效能:沒有接入外掛,服務過載,成功率
    2. 接入外掛:在沒有過載情況下,對服務效能影響;服務過載,成功率
    3. 服務過載可以配置(1.5 倍,3 倍,5 倍等,極限下看服務成功率到 0)

2.實施步驟和提效技巧 ( 這裡使用的是優測壓力測試工具)

STEP 1:測試資料準備與協議同步

在實施壓測之前,需要準備大量的測試資料模擬使用者場景,優測後臺一體化工具支援協議檔案自動與 rick 平臺同步,省去反覆手動上傳協議檔案的煩惱。
[產品經理是否可以提供圖片]
Tips:在新建服務的時候只需勾選 rick 平臺同步,每次協議檔案更新,會自動推送到優測平臺非常方便。

STEP 2:測試場景構造與任務配置

建立的測試場景可自動關聯協議檔案,並支援引數化配置,新增業務斷言非常方便,同時測試場景不僅可用於壓力測試,也可複用於介面測試、介面監控等,極大的提高測試效率。

a. 測試場景:自動生成的場景用例,可在全域性變數中找到資料檔案,包含流量資料的詳細請求資訊。同時透過出參定義和請求結果斷言快速新增自定義斷言。

b. 壓測任務:基於同一測試場景,配置不同的測試任務,主要在 QPS 的配置上,節點請求(向哪個容器節點/叢集發起請求)等定製化部分做修改即可。
c. 手動調壓:為提高壓測效率,我們選擇了手動調壓模式,即在壓測過程中可以根據服務效能資料隨時調整閾值,即刻生效。

STEP 3:報告分析對比與持久化儲存

優測後臺一體化工具提供非常友好的視覺化報告。壓測任務完成後,可以方便地看到該場景下的所有歷史報表和資料;報告對比功能,可以同時檢視多次壓測結果資料,能夠方便直觀地進行各種方案的資料分析和對比;與其他平臺相比,後臺一體化最大優勢是將報告結果資料持久化儲存,為下次壓測做為參考。

透過測試結果,可以對比分析哪款方案整體表現更優:

  1. 固定 QPS 壓測,對比方案的更穩定一點、成功率,以及耗時;判斷時延是否在業務可接受範圍內
  2. 不斷變化 QPS 壓測,可以測試出哪款方案最大化服務效能,更為及時探測到過載並啟動保護,當過載結束,服務也能比較快恢復。

以上是本次的分享,希望能夠對大家有所幫助!

本文未註明其它來源的內容,其版權優測雲服務平臺所有,未經原作者允許不得轉載本文內容。

相關文章