全部產品
Search
文件中心

Microservices Engine:配置熱點參數防護規則(RPC /自訂介面 請求)

更新時間:Jul 01, 2025

為應用配置熱點規則後,MSE將分析統計參數,即資源調用過程中的調用次數較高的參數,並根據配置的熱點規則對包含熱點參數的資源調用進行限流,保護系統穩定性。本文介紹如何為應用配置熱點規則。

背景資訊

熱點即經常被訪問的資料。例如在以下情境中需要統計某個熱點資料中訪問頻次最高的Top資料,並對其訪問進行限制。

  • 針對一段時間內最頻繁購買的商品ID進行限制,防止擊穿緩衝而導致大量請求到資料庫的情形。

  • 針對一段時間內頻繁訪問的使用者ID進行限制,防止惡意刷單。

MSE利用LRU(Least Recently Used)策略統計最近最常訪問的熱點參數,結合令牌桶演算法來進行參數層級的流控。

功能入口

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

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

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

  4. 進入應用之後,選擇以下任意一種方式建立流控規則,目前支援 RPC 介面和自訂埋點介面:

    方式一:在介面詳情裡為介面添加規則
    • RPC 介面:在左側導覽列,選擇接口详情。單擊RPC服务頁簽,選擇介面。在右側單擊热点参数防护(RPC)頁簽,然後單擊新增热点参数防护(RPC)规则

    • 自訂介面:在左側導覽列,選擇接口详情。單擊自定义接口頁簽,選擇介面。在右側單擊热点参数防护頁簽,然後單擊新增热点参数防护(自定义接口)规则

    方式二:在流量防護頁簽為介面添加規則。

    在左側導覽列,選擇流量治理 > 流量防护頁簽,單擊热点参数防护(RPC/自定义接口)頁簽,然後單擊新增热点参数防护(RPC/自定义接口)規則。

  5. 新增热点参数防护(RPC/自定义接口)對話方塊中配置規則資訊。單擊新增

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

樣本情境一:秒殺情境

秒殺等搶購商品的時候,由於流量較大會導致系統響應不及時,甚至系統崩潰。為保證系統的穩定性,可配置熱點規則,超過一定量的閾值後,系統會讓購買熱點商品的流量排隊等待。

例如購買同一商品,1s內調用超過100次請求後,則其餘請求進行等待。在新增热点参数防护(RPC/自定义接口)對話方塊中配置以下規則資訊。

  • 填寫接口名称

  • 參數位置索引填寫埋點傳入參數的索引位置,從 0 開始,其對應著實際的 RPC 或者自訂埋點方法中的參數列表中的索引位置。

    例如 RPC 方法com.aliyun.demo:methodA(param0, param1, ……),參數位置 0 是 param0 這個參數;自訂埋點方法 SphU.entry("demoResource",EntryType.IN, 1, param0, param1, ……),參數位置 0 是 param0 這個參數。

  • 统计维度選擇通过请求数

  • 统计周期时间設定為1s,单机阈值設定為100。

  • 流控效果選擇排队等待

  • 超时时间設定為30ms。

1s內調用此介面超過100次,多餘的請求要進行排隊等待,等待時間長度超過30ms的請求就會立即失敗。

樣本情境二:調用請求頻繁,佔用較多系統資源

在秒殺情境下,有時候還需要修改下單地址,當調用修改請求較多時,會佔用寫資料庫較多資源,您可以對其進行熱點快速失敗的處理,稍後再修改。在新增热点参数防护(RPC/自定义接口)對話方塊中配置以下規則資訊。

  • 填寫接口名称

  • 參數位置索引填寫埋點傳入參數的索引位置,從 0 開始,其對應著實際的 RPC 或者自訂埋點方法中的參數列表中的索引位置。

    例如 RPC 方法com.aliyun.demo:methodA(param0, param1, ……),參數位置 0 是 param0 這個參數;自訂埋點方法 SphU.entry("demoResource",EntryType.IN, 1, param0, param1, ……),參數位置 0 是 param0 這個參數。

  • 统计维度選擇并发数

  • 统计周期时间設定為1s,单机阈值設定為100。

  • 流控效果選擇快速失败

表示1s內只能最多處理100個並發請求,其餘超出的請求都會快速失敗。

配置項說明

新增热点参数防护(RPC/自定义接口)對話方塊配置項說明如下。

參數

描述

接口名称

適用該規則的資源名稱,與埋點傳入的資源名保持一致。

参数位置索引

埋點傳入參數的索引位置,從 0 開始,其對應著實際的 RPC 或者自訂埋點方法中的參數列表中的索引位置。例如 RPC 方法com.aliyun.demo:methodA(param0, param1, ……),參數位置 0 是 param0 這個參數;自訂埋點方法 SphU.entry("demoResource",EntryType.IN, 1, param0, param1, ……),參數位置 0 是 param0 這個參數。

统计维度

可選擇通過請求數或並發線程數。

  • 通过请求数:限制一段時間內的調用次數。

  • 并发数:限制該資源調用的並發數。

统计周期时间

統計視窗時間長度(單位為秒)。例如統計視窗時間長度為10s,QPS閾值為5代表限制10s內每個熱點參數訪問不超過5次。

单机阈值

作用於每個熱點參數的閾值。

流控效果

统计维度通过请求数時,可以選擇流控效果來處理被攔截的流量。

  • 快速失败:達到閾值時,立即攔截請求。該模式下可以額外設定一個缓冲请求数,即針對突發請求額外允許的請求數目。

  • 排队等待:請求勻速通過,允許排隊等待,通常用於訊息佇列削峰填穀等情境。需設定具體的逾時時間,排隊時會計算預計的排隊時間長度,若超過最大逾時時間則請求會直接被拒絕。例如,单机阈值配置為5,則代表請求每200 ms才能通過一個,多出的請求將排隊等待通過。超时时间配置1000 ms,則當前排隊請求超過5個(>1000 ms)時,新到來的請求將會直接被拒絕。