MSE的熱點參數防護規則(HTTP 要求)面向提供Web服務的應用,針對訪問請求中的一些參數項進行精細化的流量控制。對於使用了主流Web架構(Servlet容器、Spring Web、Spring Boot)的應用,MSE實現了API粒度的請求參數解析,通過配置熱點參數防護規則(HTTP 要求),可以對請求中IP、Host、Header、URL Param等參數維度資源調用進行流量控制,保護業務與系統的穩定性。本文介紹如何為應用配置熱點參數防護規則(HTTP 要求)。
熱點參數防護規則(HTTP 要求)為原Web防護規則。
背景資訊
在提供Web服務的情境下,除了API維度限流降級防護,針對訪問請求來源IP、訪問請求Param參數等資源調用的限流防護是各種業務情境下能更好保證業務應用正常啟動並執行手段。例如,在一些大流量的Web業務情境下,不僅需要對當前介面進行限制,而且需要針對當前訪問頻次最高的來源IP或訪問頻次最高的商品ID,有針對性地對其訪問進行限制,本樣本如下:
對一段時間內最頻繁購買的商品ID進行限制,以防擊穿緩衝而導致大量請求到資料庫的情況。
對一段時間內頻繁大量訪問的來源IP進行限制,防止利用虛假資訊惡意刷單。
功能入口
登入MSE治理中心控制台,並在頂部功能表列選擇地區。
在左側導覽列,選擇治理中心 > 应用治理。
在应用列表頁面,單擊目標應用的資源卡片。
進入應用之後,在左側導覽列,單擊接口详情。單擊热点参数防护(HTTP 请求)頁簽,然後單擊新增热点参数防护(HTTP 请求)。
在新增热点参数防护(HTTP 请求)對話方塊,配置規則資訊,完成配置後單擊新增。
參數說明,請參見配置項說明。
在規則列表選擇對應的規則,並在状态欄下單擊開啟。
在温馨提示對話方塊,單擊確認,開啟已配置的防護規則。
樣本情境1:熱點商品秒殺
在秒殺等搶購商品的情境下,由於流量較大,可能會導致系統響應不及時甚至崩潰。為保證系統穩定,可配置熱點參數防護規則,超過一定閾值後,系統會拒絕多餘的熱點商品流量。
例如購買同一商品,希望1秒內同個商品超過100次請求後,對多餘的請求進行拒絕,可在新增热点参数防护(HTTP 请求)對話方塊中配置以下規則資訊,表示1秒內,針對熱點商品ID進行下單的請求,每個單獨商品ID每秒最多隻能允許100個請求,其餘超出的當前商品下單請求都會被拒絕,返回自訂的資訊。
参数属性選擇URL參數。
說明在參數屬性中,選擇當前熱點商品ID所對應的參數欄位,例如,假設URL參數中存在一個stockId欄位對應請求的商品ID,那麼參數屬性可以選擇URL參數,並在參數名稱中填寫屬性在請求中對應的欄位名稱。
URL參數名稱輸入stockId。
閾值輸入100個請求/每秒。
流控方式選擇快速失败。
樣本情境2:防止惡意刷單
例如在促銷活動中,某些惡意刷單請求較多的時候,會佔用較多商品庫存或伺服器資源。這種情況下可以針對其IP來源進行排隊等待的處理,使訪問請求勻速通過,防止過量的請求對服務穩定性產生影響。
在新增热点参数防护(HTTP 请求)對話方塊中配置以下規則資訊,表示每個不同來源IP調用此介面的請求會以每10 ms一個的速度勻速通過(1s/100=10 ms),後續多餘的請求要進行排隊等待。排隊中的請求如果等待時間長度超過30 ms就會立即失敗。
参数属性選擇Client IP。
閾實值型別預設選擇請求數。
閾值輸入100個請求/每秒。
流控方式選擇排队等待。
逾時時間輸入30。
是否开启選擇開啟。
配置項說明
新增热点参数防护(HTTP 请求)對話方塊配置項說明如下。
參數 | 說明 | |
配置防护规则 | ||
参数属性 | 針對所選API的參數屬性進行流量控制:
| |
(可選)匹配模式和匹配串 | 若選擇參數屬性為Header或URL參數,可開啟屬性值匹配開關,並設定匹配模式和匹配串。 匹配模式:
| |
閾實值型別 | 預設為請求數。 | |
閾值 | 觸發對流控介面的統計維度對象的QPS閾值。設定時,需選擇統計時間間隔,支援秒、分鐘、小時和天四種維度。 例如,若閾值填寫為10,統計間隔選擇分,則表示每分鐘對應的請求數目不超過10個。 | |
進階選項 | 流控方式 |
|
Burst size | 當流控方式選擇為快速失败時,可以額外設定一個Burst Size,即針對突發請求額外允許的請求數目。 | |
逾時時間 | 當流控方式選擇為排队等待時,需設定具體的逾時時間,單位為ms。例如,QPS配置為5,則代表請求每200 ms才能通過一個,多出的請求將排隊等待通過。逾時時間代表最大排隊時間,超出最大排隊時間的請求將會直接被拒絕。 | |
是否开启 |
| |
配置防护行为 | ||
关联行为 |
| |