全部產品
Search
文件中心

Microservices Engine:配置熱點參數防護規則(HTTP 要求)

更新時間:Dec 27, 2024

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進行限制,防止利用虛假資訊惡意刷單。

功能入口

  1. 登入MSE治理中心控制台,並在頂部功能表列選擇地區。

  2. 在左側導覽列,選擇治理中心 > 应用治理

  3. 应用列表頁面,單擊目標應用的資源卡片。

  4. 進入應用之後,在左側導覽列,單擊接口详情。單擊热点参数防护(HTTP 请求)頁簽,然後單擊新增热点参数防护(HTTP 请求)

  5. 新增热点参数防护(HTTP 请求)對話方塊,配置規則資訊,完成配置後單擊新增

    參數說明,請參見配置項說明

  6. 在規則列表選擇對應的規則,並在状态欄下單擊開啟

  7. 温馨提示對話方塊,單擊確認,開啟已配置的防護規則。

樣本情境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的參數屬性進行流量控制:

  • Client IP:請求端的IP地址。

    說明

    若請求經過代理,會優先嘗試從X-Forwarded-For要求標頭中擷取IP資訊,如果其IP資訊存在,將會使用該IP作為實際請求端IP地址。

  • Remote Host:請求端的Host Header。

  • Header:根據指定的HTTP Header進行解析,如果填寫某個具體的Header Key,則該規則針對這個Header Key下面的熱點值分別進行限制。選擇Header後,可選擇配置請求屬性值的匹配策略,只有匹配該模式的請求屬性值會納入統計和流控。

  • URL參數:根據指定的HTTP請求參數進行解析,需要填寫對應的參數名稱。選擇URL參數後,可選擇配置請求屬性值的匹配策略,只有匹配該模式的請求屬性值會納入統計和流控。

(可選)匹配模式和匹配串

若選擇參數屬性為HeaderURL參數,可開啟屬性值匹配開關,並設定匹配模式匹配串

匹配模式

  • 精確:嚴格按照給定的匹配串來匹配值。

  • 字串:若請求屬性值包含該子串匹配成功,比如若子串設定匹配ab,則aba和cabc都可以匹配,而cba則不能匹配。

  • 正則:按給定的Regex匹配串進行匹配。

閾實值型別

預設為請求數

閾值

觸發對流控介面的統計維度對象的QPS閾值。設定時,需選擇統計時間間隔,支援秒、分鐘、小時和天四種維度。

例如,若閾值填寫為10,統計間隔選擇,則表示每分鐘對應的請求數目不超過10個。

進階選項

流控方式

  • 快速失败:當閾實值型別為QPS時,被攔截的流量將快速失敗,即達到閾值時,立即攔截請求。

    說明

    被攔截拒絕掉的請求,將返回行為管理中配置的自訂資訊,若未配置會返回預設行為,即429錯誤碼加上預設文本資訊。

  • 排队等待:當閾實值型別為QPS時,被攔截的請求將勻速通過,允許排隊等待。需設定具體的逾時時間,預計達到逾時時間的請求會立即失敗,而不會排隊。例如,QPS配置為10,則代表請求每100 ms才能通過一個,多出的請求將排隊等待通過。逾時時間代表最大排隊時間,超出最大排隊時間的請求將會直接被拒絕。

    說明

    排隊等待時,QPS不要超過1000(請求間隔1 ms)。

Burst size

流控方式選擇為快速失败時,可以額外設定一個Burst Size,即針對突發請求額外允許的請求數目。

逾時時間

流控方式選擇為排队等待時,需設定具體的逾時時間,單位為ms。例如,QPS配置為5,則代表請求每200 ms才能通過一個,多出的請求將排隊等待通過。逾時時間代表最大排隊時間,超出最大排隊時間的請求將會直接被拒絕。

是否开启

  • 開啟:熱點參數防護規則(HTTP 要求)建立後即生效。

  • 關閉:熱點參數防護規則(HTTP 要求)建立後不生效。

配置防护行为

关联行为

  • 默认行为:預設為此選項。

    說明
    • 如您無需自訂限流後處理行為,選擇預設行為即可。

    • 預設行為為返回429錯誤碼加上預設的文本資訊。

  • 新增行为:新增自訂限流後處理行為,建立完成後您可在关联行为選擇框中下拉選擇。