日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

為應(yīng)用配置熱點規(guī)則后,AHAS將分析統(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進行限制,防止惡意刷單。

AHAS利用LRU(Least Recently Used)策略統(tǒng)計最近最常訪問的熱點參數(shù),結(jié)合令牌桶算法來進行參數(shù)級別的流控。

使用說明

將應(yīng)用接入AHAS應(yīng)用防護,具體操作請參見接入應(yīng)用方式

  • 若您通過Dubbo應(yīng)用方式接入,AHAS應(yīng)用防護將在方法級別的埋點即方法簽名的接口名,自動按次序傳入調(diào)用的參數(shù),因此可以直接對調(diào)用參數(shù)配置熱點規(guī)則。詳情請參見接入Dubbo應(yīng)用
  • 若您通過注解方式接入,Sentinel會將@SentinelResource注解方式定義的資源作為參數(shù)傳入SphU.entry(res, args)。詳情請參見接入Spring應(yīng)用
    例如以下示例中,uidtype會分別作為第一個和第二個參數(shù)傳入Sentinel API,從而可以用于熱點規(guī)則判斷:
    @SentinelResource(value = "myMethod", blockHandler = "myBlockHandlerFunc")
    public Result doSomething(String uid, int type) {
      // uid參數(shù)索引為0,type參數(shù)索引為1。
      // some logic here...
    }
  • 對于其它方式接入的應(yīng)用,您需要自定義埋點傳入需要進行熱點限流的參數(shù),如IP、User ID等。請參見資源定義類SphU / SphO
    // name: 資源名稱,用于標(biāo)識該調(diào)用。
    // EntryType用于區(qū)分該資源是入口流量(inbound)還是出口流量(outbound),EntryType.IN代表入口流量,EntryType.OUT代表出口流量。
    // count表示每次調(diào)用計數(shù)為多少,通常傳1。
    // args為傳入的參數(shù),用于熱點參數(shù)限流。
    public static Entry entry(String name, EntryType entryType, int count, Object... args) throws BlockException

    args即待傳入的參數(shù),若有多個待傳入?yún)?shù),則按照次序依次傳入。例如需要傳入兩個參數(shù)paramA和paramB,傳入方式如下:

    // paramA對應(yīng)的參數(shù)索引為0,paramB對應(yīng)的參數(shù)索引為1。
    // 若需要配置例外項或者使用集群維度流控,則傳入的參數(shù)只支持基本類型。
    SphU.entry(resourceName, EntryType.IN, 1, paramA, paramB);
    若使用SphU.entry()傳入了熱點參數(shù),那么使用exit的時候也要帶上對應(yīng)的參數(shù)(exit(count, args)),否則并發(fā)線程數(shù)等指標(biāo)會有統(tǒng)計錯誤。正確使用如下:
    Entry entry = null;
    try {
        entry = SphU.entry(resourceName, EntryType.IN, 1, paramA, paramB);
        // 用戶的業(yè)務(wù)邏輯。
    } catch (BlockException ex) {
        // 觸發(fā)限流降級,在此處進行處理。
    } finally {
        if (entry != null) {
            // 務(wù)必保證entry成功后最終會exit,并且傳入了對應(yīng)的參數(shù)。
            entry.exit(1, paramA, paramB);
        }
    }

功能入口

  1. 登錄AHAS控制臺
  2. 在AHAS控制臺左上角,選擇應(yīng)用接入的地域。
  3. 在控制臺左側(cè)導(dǎo)航欄中選擇流量防護 > 應(yīng)用防護
  4. 應(yīng)用防護頁面的應(yīng)用卡片頁簽單擊目標(biāo)應(yīng)用卡片。
  5. 在左側(cè)導(dǎo)航欄單擊規(guī)則管理,然后單擊熱點規(guī)則頁簽。
  6. 熱點規(guī)則頁簽單擊新增熱點限流規(guī)則
  7. 新增熱點限流規(guī)則對話框中,配置規(guī)則信息。
  8. 單擊新增
  9. 可選:(可選)若需對某些特殊的熱點參數(shù)值單獨配置閾值,則在規(guī)則列表中單擊目標(biāo)規(guī)則操作列的添加例外項,然后在熱點規(guī)則例外項對話框中單擊添加,并填寫單獨配置的參數(shù)信息,然后單擊確定
    說明 熱點規(guī)則例外項僅支持基本類型和字符串類型。由于一條規(guī)則只對應(yīng)一個參數(shù)索引位置,因此例外項類型需要保持統(tǒng)一。例如在資源R的參數(shù)索引0處配置一條熱點規(guī)則,閾值為5QPS。若在這條規(guī)則新增兩條例外項:參數(shù)Sentinel閾值為100,參數(shù)AHAS閾值為200。則實際生效的時候,其它熱點參數(shù)會限制每秒鐘訪問不超過5次,而Sentinel和AHAS這兩個參數(shù)值作為例外項,會按照對應(yīng)的例外項閾值生效。

常用場景1 秒殺場景

秒殺等搶購商品的時候,由于流量較大會導(dǎo)致系統(tǒng)響應(yīng)不及時,甚至系統(tǒng)崩潰。為保證系統(tǒng)的穩(wěn)定性,可配置熱點規(guī)則,超過一定量的閾值后,系統(tǒng)會讓購買熱點商品的流量排隊等待。

例如購買同一商品,1s內(nèi)調(diào)用超過100次請求后,則其余請求進行等待。在新建熱點規(guī)則對話框中配置以下規(guī)則信息。

  • 填寫接口名稱
  • 統(tǒng)計維度選擇通過請求數(shù)
  • 統(tǒng)計周期時間設(shè)置為1s,單機閾值設(shè)置為100。
  • 流控效果選擇排隊等待
  • 超時時間設(shè)置為30 ms。

1s內(nèi)調(diào)用此接口超過100次,多余的請求要進行排隊等待,等待時長超過30 ms的請求就會立即失敗。

常用場景2 調(diào)用請求頻繁,占用較多系統(tǒng)資源

例如秒殺的時候還需要修改下單地址,當(dāng)調(diào)用修改請求較多的時候,會占用了寫數(shù)據(jù)庫較多資源,則可以對其進行熱點快速失敗的處理,稍后再修改。在新建熱點規(guī)則對話框中配置以下規(guī)則信息。

  • 填寫接口名稱
  • 統(tǒng)計維度選擇并發(fā)數(shù)
  • 統(tǒng)計周期時間設(shè)置為1s,單機閾值設(shè)置為100。
  • 流控效果選擇快速失敗

表示1s內(nèi)只能最多處理100條修改請求,其余超出的請求都會快速失敗。

更多信息

新建熱點規(guī)則頁面參數(shù)說明如下:

參數(shù)描述
接口名稱適用該規(guī)則的資源名稱,與埋點傳入的資源名保持一致。
參數(shù)位置索引埋點傳入?yún)?shù)的索引位置。對應(yīng)SphU.entry(xxx,args)中的參數(shù)索引位置。例如SphU.entry(resourceName,Entry Type.IN,1,paramA,paramB)埋點中,paramA的參數(shù)索引是0,paramB的參數(shù)索引是1。
統(tǒng)計維度可選擇通過請求數(shù)或并發(fā)線程數(shù)。
  • 通過請求數(shù):限制一段時間內(nèi)的調(diào)用次數(shù)。
  • 并發(fā)數(shù):限制該資源調(diào)用的并發(fā)數(shù)。
統(tǒng)計周期時間統(tǒng)計窗口時間長度(單位為秒)。例如統(tǒng)計窗口時長為10s,QPS閾值為5代表限制10s內(nèi)每個熱點參數(shù)訪問不超過5次。
單機閾值是作用于每個熱點參數(shù)的閾值。
流控效果當(dāng)統(tǒng)計維度通過請求數(shù)時,可以選擇流控效果來處理被攔截的流量。
  • 快速失敗:達到閾值時,立即攔截請求。該模式下可以額外設(shè)置一個緩沖請求數(shù),即針對突發(fā)請求額外允許的請求數(shù)目。
  • 排隊等待:請求勻速通過,允許排隊等待,通常用于消息隊列削峰填谷等場景。需設(shè)置具體的超時時間,排隊時會計算預(yù)計的排隊時長,若超過最大超時時間則請求會直接被拒絕。例如,單機閾值配置為5,則代表請求每200 ms才能通過一個,多出的請求將排隊等待通過。超時時間配置1000 ms,則當(dāng)前排隊請求超過5個(>1000 ms)時,新到來的請求將會直接被拒絕。