全部產品
Search
文件中心

PolarDB:過載保護

更新時間:Jul 06, 2024

本文介紹了過載保護功能的原理和使用方法。

背景

當使用者做促銷活動時,資料庫主庫的CPU資源容易負載過高,這時就需要對資料庫進行變更配置(升級),但變更配置的過程中整個叢集的請求可能都會路由到主節點,導致主節點CPU資源超負載甚至雪崩,從而影響使用者業務的連續性。為了緩解此種情況的發生,PolarDB MySQL版在代理層提供過載保護功能。

使用限制

  • 該功能要求資料庫代理的版本為2.8.1或以上,支援PolarDB MySQL版 5.6,5.7,8.0。

  • 該功能當前只支援可讀可寫類型的Endpoint。

  • 當前只有在所有隻讀節點異常(宕機或者與主庫的複製中斷)的情況下,才會觸發過載保護,其它情境暫時未支援。

使用說明

在控制台基本資料的叢集地址地區,單擊編輯配置,開啟編輯地址配置頁面,可開啟過載保護。

基於漏桶原理,當代理端檢測到叢集中的所有RO節點均異常時,開始主動對叢集的並發請求進行限制以達到保護主庫的目的。當RO節點正常或者超出限制時間後(預設60s),取消限制。

對於限流的上限,PolarDB MySQL版叢集是通過歷史資料來選取合適的區間。在叢集正常服務期間,代理會記錄該執行個體主節點最近24小時的採樣並發請求數。

當觸發過載保護後,目前代理會使用歷史資料的中位元作為上限對使用者的活躍串連數進行限流。

樣本

測試過程中所有隻讀節點複製中斷,進入過載保護。在這期間流量還可以持續進來,但是不會進一步飆升。

在唯讀節點恢複後,過載保護結束,流量可以正常進行轉寄。

456789