配置熱點參數(shù)防護規(guī)則(RPC 請求)
為應(yīng)用配置熱點規(guī)則后,MSE將分析統(tǒng)計參數(shù),即資源調(diào)用過程中的調(diào)用次數(shù)較高的參數(shù),并根據(jù)配置的熱點規(guī)則對包含熱點參數(shù)的資源調(diào)用進行限流,保護系統(tǒng)穩(wěn)定性。本文介紹如何為應(yīng)用配置熱點規(guī)則。
背景信息
熱點即經(jīng)常被訪問的數(shù)據(jù)。例如在以下場景中需要統(tǒng)計某個熱點數(shù)據(jù)中訪問頻次最高的Top數(shù)據(jù),并對其訪問進行限制。
針對一段時間內(nèi)最頻繁購買的商品ID進行限制,防止擊穿緩存而導(dǎo)致大量請求到數(shù)據(jù)庫的情形。
針對一段時間內(nèi)頻繁訪問的用戶ID進行限制,防止惡意刷單。
MSE利用LRU(Least Recently Used)策略統(tǒng)計最近最常訪問的熱點參數(shù),結(jié)合令牌桶算法來進行參數(shù)級別的流控。
功能入口
登錄MSE治理中心控制臺,并在頂部菜單欄選擇地域。
在左側(cè)導(dǎo)航欄,選擇治理中心 > 應(yīng)用治理。
在應(yīng)用列表頁面,單擊目標(biāo)應(yīng)用的資源卡片。
進入應(yīng)用之后,選擇以下任意一種方法新建流控規(guī)則:
在左側(cè)導(dǎo)航欄,選擇接口詳情。單擊RPC服務(wù)頁簽,選擇接口。在右側(cè)單擊熱點參數(shù)防護(RPC)頁簽,然后單擊新增熱點參數(shù)防護(RPC)規(guī)則。
在左側(cè)導(dǎo)航欄,選擇流量治理。單擊流量防護頁簽,再單擊熱點參數(shù)防護(RPC)頁簽,然后單擊新增熱點參數(shù)防護(RPC)規(guī)則。
在新增熱點參數(shù)防護(RPC)規(guī)則對話框中配置規(guī)則信息。單擊新增。
參數(shù)說明,請參見更多信息。
示例場景1:秒殺場景
秒殺等搶購商品的時候,由于流量較大會導(dǎo)致系統(tǒng)響應(yīng)不及時,甚至系統(tǒng)崩潰。為保證系統(tǒng)的穩(wěn)定性,可配置熱點規(guī)則,超過一定量的閾值后,系統(tǒng)會讓購買熱點商品的流量排隊等待。
例如購買同一商品,1s內(nèi)調(diào)用超過100次請求后,則其余請求進行等待。在新增熱點參數(shù)防護(RPC)規(guī)則對話框中配置以下規(guī)則信息。
填寫接口名稱。
參數(shù)位置索引填寫埋點傳入?yún)?shù)的索引位置,對應(yīng)實際的 RPC 方法
com.aliyun.demo:methodA(param0, param1, ……)
中的參數(shù)索引位置,從0開始。統(tǒng)計維度選擇通過請求數(shù)。
統(tǒng)計周期時間設(shè)置為1s,單機閾值設(shè)置為100。
流控效果選擇排隊等待。
超時時間設(shè)置為30ms。
1s內(nèi)調(diào)用此接口超過100次,多余的請求要進行排隊等待,等待時長超過30ms的請求就會立即失敗。
示例場景2:調(diào)用請求頻繁,占用較多系統(tǒng)資源
在秒殺場景下,有時候還需要修改下單地址,當(dāng)調(diào)用修改請求較多時,會占用寫數(shù)據(jù)庫較多資源,您可以對其進行熱點快速失敗的處理,稍后再修改。在新增熱點參數(shù)防護(RPC)規(guī)則對話框中配置以下規(guī)則信息。
填寫接口名稱。
參數(shù)位置索引填寫埋點傳入?yún)?shù)的索引位置,對應(yīng)實際的 RPC 方法
com.aliyun.demo:methodA(param0, param1, ……)
中的參數(shù)索引位置,從0開始。統(tǒng)計維度選擇并發(fā)數(shù)。
統(tǒng)計周期時間設(shè)置為1s,單機閾值設(shè)置為100。
流控效果選擇快速失敗。
表示1s內(nèi)只能最多處理100個并發(fā)請求,其余超出的請求都會快速失敗。
配置項說明
新增熱點參數(shù)防護(RPC)規(guī)則對話框配置項說明如下。
參數(shù) | 描述 |
接口名稱 | 適用該規(guī)則的資源名稱,與埋點傳入的資源名保持一致。 |
參數(shù)位置索引 | 埋點傳入?yún)?shù)的索引位置。對應(yīng)實際的 RPC 方法 |
統(tǒng)計維度 | 可選擇通過請求數(shù)或并發(fā)線程數(shù)。
|
統(tǒng)計周期時間 | 統(tǒng)計窗口時間長度(單位為秒)。例如統(tǒng)計窗口時長為10s,QPS閾值為5代表限制10s內(nèi)每個熱點參數(shù)訪問不超過5次。 |
單機閾值 | 作用于每個熱點參數(shù)的閾值。 |
流控效果 | 當(dāng)統(tǒng)計維度為通過請求數(shù)時,可以選擇流控效果來處理被攔截的流量。
|