配置熱點參數(shù)防護規(guī)則(HTTP 請求)
MSE的熱點參數(shù)防護規(guī)則(HTTP 請求)面向提供Web服務(wù)的應用,針對訪問請求中的一些參數(shù)項進行精細化的流量控制。對于使用了主流Web框架(Servlet容器、Spring Web、Spring Boot)的應用,MSE實現(xiàn)了API粒度的請求參數(shù)解析,通過配置熱點參數(shù)防護規(guī)則(HTTP 請求),可以對請求中IP、Host、Header、URL Param等參數(shù)維度的資源調(diào)用進行流量控制,保護業(yè)務(wù)與系統(tǒng)的穩(wěn)定性。本文介紹如何為應用配置熱點參數(shù)防護規(guī)則(HTTP 請求)。
熱點參數(shù)防護規(guī)則(HTTP 請求)為原Web防護規(guī)則。
背景信息
在提供Web服務(wù)的場景下,除了API維度的限流降級防護,針對訪問請求來源IP、訪問請求Param參數(shù)等資源調(diào)用的限流防護是各種業(yè)務(wù)場景下能更好保證業(yè)務(wù)應用正常運行的手段。例如,在一些大流量的Web業(yè)務(wù)場景下,不僅需要對當前接口進行限制,而且需要針對當前訪問頻次最高的來源IP或訪問頻次最高的商品ID,有針對性地對其訪問進行限制,本示例如下:
對一段時間內(nèi)最頻繁購買的商品ID進行限制,以防擊穿緩存而導致大量請求到數(shù)據(jù)庫的情況。
對一段時間內(nèi)頻繁大量訪問的來源IP進行限制,防止利用虛假信息惡意刷單。
功能入口
登錄MSE治理中心控制臺,并在頂部菜單欄選擇地域。
在左側(cè)導航欄,選擇治理中心 > 應用治理。
在應用列表頁面,單擊目標應用的資源卡片。
進入應用之后,在左側(cè)導航欄,單擊接口詳情。單擊熱點參數(shù)防護(HTTP 請求)頁簽,然后單擊新增熱點參數(shù)防護(HTTP 請求)。
在新增熱點參數(shù)防護(HTTP 請求)對話框,配置規(guī)則信息,完成配置后單擊新增。
參數(shù)說明,請參見配置項說明。
在規(guī)則列表選擇對應的規(guī)則,并在狀態(tài)欄下單擊開啟。
在溫馨提示對話框,單擊確認,開啟已配置的防護規(guī)則。
示例場景1:熱點商品秒殺
在秒殺等搶購商品的場景下,由于流量較大,可能會導致系統(tǒng)響應不及時甚至崩潰。為保證系統(tǒng)穩(wěn)定,可配置熱點參數(shù)防護規(guī)則,超過一定閾值后,系統(tǒng)會拒絕多余的熱點商品流量。
例如購買同一商品,希望1秒內(nèi)同個商品超過100次請求后,對多余的請求進行拒絕,可在新增熱點參數(shù)防護(HTTP 請求)對話框中配置以下規(guī)則信息,表示1秒內(nèi),針對熱點商品ID進行下單的請求,每個單獨商品ID每秒最多只能允許100個請求,其余超出的當前商品下單請求都會被拒絕,返回自定義的信息。
參數(shù)屬性選擇URL參數(shù)。
說明在參數(shù)屬性中,選擇當前熱點商品ID所對應的參數(shù)字段,例如,假設(shè)URL參數(shù)中存在一個stockId字段對應請求的商品ID,那么參數(shù)屬性可以選擇URL參數(shù),并在參數(shù)名稱中填寫屬性在請求中對應的字段名稱。
URL參數(shù)名稱輸入stockId。
閾值輸入100個請求/每秒。
流控方式選擇快速失敗。
示例場景2:防止惡意刷單
例如在促銷活動中,某些惡意刷單請求較多的時候,會占用較多商品庫存或服務(wù)器資源。這種情況下可以針對其IP來源進行排隊等待的處理,使訪問請求勻速通過,防止過量的請求對服務(wù)穩(wěn)定性產(chǎn)生影響。
在新增熱點參數(shù)防護(HTTP 請求)對話框中配置以下規(guī)則信息,表示每個不同來源IP調(diào)用此接口的請求會以每10 ms一個的速度勻速通過(1s/100=10 ms),后續(xù)多余的請求要進行排隊等待。排隊中的請求如果等待時長超過30 ms就會立即失敗。
參數(shù)屬性選擇Client IP。
閾值類型默認選擇請求數(shù)。
閾值輸入100個請求/每秒。
流控方式選擇排隊等待。
超時時間輸入30。
是否開啟選擇開啟。
配置項說明
新增熱點參數(shù)防護(HTTP 請求)對話框配置項說明如下。
參數(shù) | 說明 | |
配置防護規(guī)則 | ||
參數(shù)屬性 | 針對所選API的參數(shù)屬性進行流量控制:
| |
(可選)匹配模式和匹配串 | 若選擇參數(shù)屬性為Header或URL參數(shù),可打開屬性值匹配開關(guān),并設(shè)置匹配模式和匹配串。 匹配模式:
| |
閾值類型 | 默認為請求數(shù)。 | |
閾值 | 觸發(fā)對流控接口的統(tǒng)計維度對象的QPS閾值。設(shè)置時,需選擇統(tǒng)計時間間隔,支持秒、分鐘、小時和天四種維度。 例如,若閾值填寫為10,統(tǒng)計間隔選擇分,則表示每分鐘對應的請求數(shù)目不超過10個。 | |
高級選項 | 流控方式 |
|
Burst size | 當流控方式選擇為快速失敗時,可以額外設(shè)置一個Burst Size,即針對突發(fā)請求額外允許的請求數(shù)目。 | |
超時時間 | 當流控方式選擇為排隊等待時,需設(shè)置具體的超時時間,單位為ms。例如,QPS配置為5,則代表請求每200 ms才能通過一個,多出的請求將排隊等待通過。超時時間代表最大排隊時間,超出最大排隊時間的請求將會直接被拒絕。 | |
是否開啟 |
| |
配置防護行為 | ||
關(guān)聯(lián)行為 |
|