欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Sentinel熱門詞匯限流的實現(xiàn)詳解

 更新時間:2022年07月29日 10:00:59   作者:kaico2018  
這篇文章主要介紹了使用Sentinel對熱門詞匯進行限流的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

熱點參數(shù)限流

何為熱點?熱點即經(jīng)常訪問的數(shù)據(jù)。很多時候我們希望統(tǒng)計某個熱點數(shù)據(jù)中訪問頻次最高的 Top K 數(shù)據(jù),并對其訪問進行限制。比如:

  • 商品 ID 為參數(shù),統(tǒng)計一段時間內(nèi)最常購買的商品 ID 并進行限制
  • 用戶 ID 為參數(shù),針對一段時間內(nèi)頻繁訪問的用戶 ID 進行限制

熱點參數(shù)限流會統(tǒng)計傳入?yún)?shù)中的熱點參數(shù),并根據(jù)配置的限流閾值與模式,對包含熱點參數(shù)的資源調(diào)用進行限流。熱點參數(shù)限流可以看做是一種特殊的流量控制,僅對包含熱點參數(shù)的資源調(diào)用生效。

基本使用

1、引入maven依賴

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-parameter-flow-control</artifactId>
    <version>x.y.z</version>
</dependency>

2、手動編寫代碼添加限流規(guī)則

@RequestMapping("/getUserOrder")
public String getUserOrder(Long userId) {
    Entry entry = null;
    try {
        entry = SphU.entry(getUserOrder, EntryType.IN, 1, userId);
        return "根據(jù)userId獲取用戶訂單信息成功";
    } catch (Exception e) {
        return "您操作的比較頻繁,請稍后重試!";
    } finally {
        if (entry != null) {
            entry.exit();
        }
    }
}
// 定義熱點限流的規(guī)則,對第一個參數(shù)設(shè)置 qps 限流模式,閾值為1
ParamFlowRule rule = new ParamFlowRule(getUserOrder)
        .setParamIdx(0)
        .setGrade(RuleConstant.FLOW_GRADE_QPS)
        .setCount(1);
ParamFlowRuleManager.loadRules(Collections.singletonList(rule));

或者使用控制臺形式添加熱詞限流規(guī)則

正常編寫Java接口

@RequestMapping("/getUserOrder")
@SentinelResource(value = "getUserOrder")
public String getUserOrder(Long userId) {
    return "根據(jù)userId獲取用戶訂單信息成功";
}

索引名:參數(shù)下表從 0 開始

單機閾值:單機部署時在統(tǒng)計時間內(nèi)可以訪問多少次

統(tǒng)計窗口時長:統(tǒng)計熱詞的時間

可以給指定的參數(shù)額外設(shè)定閾值:例如:VIP用戶擁有特定的標識,判斷為VIP用戶時,可以請求接口的次數(shù)增加。

到此這篇關(guān)于Sentinel熱門詞匯限流的實現(xiàn)詳解的文章就介紹到這了,更多相關(guān)Sentinel熱詞限流內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring核心方法refresh的使用解析

    Spring核心方法refresh的使用解析

    這篇文章主要介紹了Spring核心方法refresh的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java協(xié)程編程之Loom項目實戰(zhàn)記錄

    Java協(xié)程編程之Loom項目實戰(zhàn)記錄

    這篇文章主要介紹了Java協(xié)程編程之Loom項目嘗鮮,如果用嘗鮮的角度去使用Loom項目,可以提前窺探JVM開發(fā)者們是如何基于協(xié)程這個重大特性進行開發(fā)的,這對于提高學習JDK內(nèi)核代碼的興趣有不少幫助,需要的朋友可以參考下
    2021-08-08
  • Java中==與equals()及hashcode()三者之間的關(guān)系詳解

    Java中==與equals()及hashcode()三者之間的關(guān)系詳解

    最近也是在讀Hollis的《深入理解Java核心技術(shù)》里面一節(jié)講到了equals()和hashcode()的關(guān)系,對于這個高頻面試點,咱們需要認真理清一下幾者之間的關(guān)系
    2022-10-10
  • 用java實現(xiàn)猜數(shù)字游戲

    用java實現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細介紹了用java實現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 詳解SpringBoot2.0的@Cacheable(Redis)緩存失效時間解決方案

    詳解SpringBoot2.0的@Cacheable(Redis)緩存失效時間解決方案

    這篇文章主要介紹了詳解SpringBoot2.0的@Cacheable(Redis)緩存失效時間解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 一文帶你真正理解Java中的內(nèi)部類

    一文帶你真正理解Java中的內(nèi)部類

    不知道大家在平時的開發(fā)過程中或者源碼里是否留意過內(nèi)部類,那有思考過為什么要有內(nèi)部類,內(nèi)部類都有哪幾種形式,本篇文章主要帶領(lǐng)大家理解下這塊內(nèi)容
    2022-08-08
  • Springboot使用jsp具體案例解析

    Springboot使用jsp具體案例解析

    這篇文章主要介紹了Springboot使用jsp具體案例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 微信小程序--Ble藍牙

    微信小程序--Ble藍牙

    本文主要介紹了微信小程序--Ble藍牙的實現(xiàn)方法。文中附上源碼下載,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Java環(huán)境變量的設(shè)置方法(圖文教程)

    Java環(huán)境變量的設(shè)置方法(圖文教程)

    想要成功配置Java的環(huán)境變量,那肯定就要安裝JDK,才能開始配置的。
    2013-05-05
  • myBatis組件教程之緩存的實現(xiàn)與使用

    myBatis組件教程之緩存的實現(xiàn)與使用

    這篇文章主要給大家介紹了關(guān)于myBatis組件教程之緩存的實現(xiàn)與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11

最新評論