日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud Alibaba:Sentinel 热点参数限流

發布時間:2025/3/19 javascript 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud Alibaba:Sentinel 热点参数限流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1. 前言
  • 2. 熱點規則配置
  • 3. 參數例外項

1. 前言

Sentinel版本:1.8.0

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

  • 商品 ID 為參數,統計一段時間內最常購買的商品 ID 并進行限制
  • 用戶 ID 為參數,針對一段時間內頻繁訪問的用戶 ID 進行限制

熱點參數限流會統計傳入參數中的熱點參數,并根據配置的限流閾值與模式,對包含熱點參數的資源調用進行限流。熱點參數限流可以看做是一種特殊的流量控制,僅對包含熱點參數的資源調用生效。

Sentinel 利用 LRU 策略統計最近最常訪問的熱點參數,結合令牌桶算法來進行參數級別的流控。熱點參數限流支持集群模式。

2. 熱點規則配置

  • 參數索引:接口參數的位置,從0開始
  • 單機閾值:統計窗口時長內,相同參數最多允許的次數

寫個接口測試:

@SentinelResource(value = "order1")@GetMapping("/order1")public String order1(String name, Integer age) throws Exception {return name + "," + age;}

流控規則:order1 這個接口的name參數值,在10秒內只能傳遞一次

  • 打開瀏覽器,訪問 http://localhost:8020/order1?name=fuhb
  • 這時把name參數換個值,訪問 http://localhost:8020/order1?name=zhangsan&age=10,結果正常
  • 但是,只要在10秒內,name參數再次傳遞fuhb或者zhangsan,就會被熔斷
  • 這就是熱點參數限流的作用

3. 參數例外項

上面的例子,參數在10秒內重復傳值都會被限流。

假設現在有個需求:當name=fuhb的時候,QPS允許達到5,其他情況下QPS仍然保持1。這時就需要配置參數例外項。

如下圖,應該很一目了然:


這時,我們反復訪問 http://localhost:8020/order1?name=fuhb&age=10 接口,只要10秒內不超過5次,就不會被熔斷。

總結

以上是生活随笔為你收集整理的Spring Cloud Alibaba:Sentinel 热点参数限流的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。