最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Cloud Gateway不同頻率限流的解決方案(每分鐘,每小時,每天)

 更新時間:2020年10月10日 10:39:12   作者:lizz666  
SpringCloud Gateway 是 Spring Cloud 的一個全新項目,它旨在為微服務架構提供一種簡單有效的統(tǒng)一的 API 路由管理方式。這篇文章主要介紹了Spring Cloud Gateway不同頻率限流(每分鐘,每小時,每天),需要的朋友可以參考下

SpringCloud Gateway 簡介

SpringCloud Gateway 是 Spring Cloud 的一個全新項目,該項目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技術開發(fā)的網(wǎng)關,它旨在為微服務架構提供一種簡單有效的統(tǒng)一的 API 路由管理方式。

SpringCloud Gateway 作為 Spring Cloud 生態(tài)系統(tǒng)中的網(wǎng)關,目標是替代 Zuul,在Spring Cloud 2.0以上版本中,沒有對新版本的Zuul 2.0以上最新高性能版本進行集成,仍然還是使用的Zuul 2.0之前的非Reactor模式的老版本。而為了提升網(wǎng)關的性能,SpringCloud Gateway是基于WebFlux框架實現(xiàn)的,而WebFlux框架底層則使用了高性能的Reactor模式通信框架Netty。

Spring Cloud Gateway 的目標,不僅提供統(tǒng)一的路由方式,并且基于 Filter 鏈的方式提供了網(wǎng)關基本的功能,例如:安全,監(jiān)控/指標,和限流。

提前聲明:Spring Cloud Gateway 底層使用了高性能的通信框架Netty。

SpringCloud Gateway 特征

SpringCloud官方,對SpringCloud Gateway 特征介紹如下:

(1)基于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0

(2)集成 Hystrix 斷路器

(3)集成 Spring Cloud DiscoveryClient

(4)Predicates 和 Filters 作用于特定路由,易于編寫的 Predicates 和 Filters

(5)具備一些網(wǎng)關的高級功能:動態(tài)路由、限流、路徑重寫

從以上的特征來說,和Zuul的特征差別不大。SpringCloud Gateway和Zuul主要的區(qū)別,還是在底層的通信框架上。

簡單說明一下上文中的三個術語:

(1)Filter(過濾器):

和Zuul的過濾器在概念上類似,可以使用它攔截和修改請求,并且對上游的響應,進行二次處理。過濾器為org.springframework.cloud.gateway.filter.GatewayFilter類的實例。

(2)Route(路由):

網(wǎng)關配置的基本組成模塊,和Zuul的路由配置模塊類似。一個Route模塊由一個 ID,一個目標 URI,一組斷言和一組過濾器定義。如果斷言為真,則路由匹配,目標URI會被訪問。

(3)Predicate(斷言):

這是一個 Java 8 的 Predicate,可以使用它來匹配來自 HTTP 請求的任何內(nèi)容,例如 headers 或參數(shù)。斷言的輸入類型是一個 ServerWebExchange。

正文

在使用SCG限流功能時,默認情況下是按秒限流,即一秒允許多少個請求,現(xiàn)需要根據(jù)不同時間頻率進行限流,即限制每分鐘、每小時或者每天限流。

分析

SCG的限流使用的guava的ratelimiter工具,令牌桶模式,參數(shù)包括以下3個:

  • replenishRate: 每次補充令牌數(shù)量
  • burstCapacity: 令牌桶最大容量,突發(fā)請求數(shù)量
  • requestedTokens: 每次請求消耗令牌的數(shù)量

使用方案

每秒限制請求1次

- name: RequestRateLimiter #基于redis漏斗限流
 args:
  key-resolver: "#{@myResolver}"
  redis-rate-limiter:
   replenishRate: 1
   burstCapacity: 1
   requestedTokens: 1

每秒限制請求10次

- name: RequestRateLimiter #基于redis漏斗限流
 args:
  key-resolver: "#{@myResolver}"
  redis-rate-limiter:
   replenishRate: 10
   burstCapacity: 10
   requestedTokens: 1

每分鐘限制請求1次

- name: RequestRateLimiter #基于redis漏斗限流
 args:
  key-resolver: "#{@myResolver}"
  redis-rate-limiter:
   replenishRate: 1
   burstCapacity: 60
   requestedTokens: 60

每分鐘限制請求10次

- name: RequestRateLimiter #基于redis漏斗限流
 args:
  key-resolver: "#{@myResolver}"
  redis-rate-limiter:
   replenishRate: 1
   burstCapacity: 60
   requestedTokens: 6

每小時限制請求1次

- name: RequestRateLimiter #基于redis漏斗限流
 args:
  key-resolver: "#{@myResolver}"
  redis-rate-limiter:
   replenishRate: 1
   burstCapacity: 3600
   requestedTokens: 3600

每小時限制請求10次

- name: RequestRateLimiter #基于redis漏斗限流
 args:
  key-resolver: "#{@myResolver}"
  redis-rate-limiter:
   replenishRate: 1
   burstCapacity: 3600
   requestedTokens: 360

其他頻率以此類推,調整三個參數(shù)即可。

到此這篇關于Spring Cloud Gateway不同頻率限流的解決方案(每分鐘,每小時,每天)的文章就介紹到這了,更多相關Spring Cloud Gateway限流內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JAVA spark創(chuàng)建DataFrame的方法

    JAVA spark創(chuàng)建DataFrame的方法

    這篇文章主要介紹了JAVA spark創(chuàng)建DataFrame的方法,幫助大家更好的理解和學習spark,感興趣的朋友可以了解下
    2020-08-08
  • 利用Java手寫一個簡易的lombok的示例代碼

    利用Java手寫一個簡易的lombok的示例代碼

    Lombok是一款Java開發(fā)插件,使得Java開發(fā)者可以通過其定義的一系列注解來消除業(yè)務工程中冗長和繁瑣的代碼,尤其對于簡單的Java模型對象。本文就來手寫一個簡易的lombok,需要的可以參考一下
    2022-10-10
  • MyBatisPlus報錯:Failed to process,please exclude the tableName or statementId問題

    MyBatisPlus報錯:Failed to process,please exclud

    這篇文章主要介紹了MyBatisPlus報錯:Failed to process,please exclude the tableName or statementId問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java實現(xiàn)二分查找BinarySearch算法

    Java實現(xiàn)二分查找BinarySearch算法

    這篇文章主要介紹了Java實現(xiàn)二分查找BinarySearch算法,二分查找針對的是一個有序的數(shù)據(jù)集合,每次都通過跟區(qū)間的中間元素對比,將待查找的區(qū)間縮小為之前的一半,直到找到要查找的元素,或者區(qū)間被縮小為 0,需要的朋友可以參考下
    2023-12-12
  • 關于IDEA配置Hibernate中遇到的問題解決

    關于IDEA配置Hibernate中遇到的問題解決

    這篇文章主要給大家介紹了關于IDEA配置Hibernate中遇到的問題,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Java將本地項目部署到Linux服務器的實踐

    Java將本地項目部署到Linux服務器的實踐

    本文主要介紹了Java將本地項目部署到Linux服務器的實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧<BR>
    2022-06-06
  • 關于MyBatis10種超好用的寫法(收藏)

    關于MyBatis10種超好用的寫法(收藏)

    這篇文章主要介紹了關于MyBatis10種超好用的寫法(收藏),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • idea使用Vim的技巧大全分享

    idea使用Vim的技巧大全分享

    vim是一個高度可配置的文本編輯器,非常穩(wěn)定,可以高效的創(chuàng)建任何文本、持久的、多級撤銷樹、支持數(shù)百種變成語言和格式、與許多工具集成,本文給大家分享了idea使用Vim的技巧大全,需要的朋友可以參考下
    2024-05-05
  • 使用maven基本命令,打包包名問題

    使用maven基本命令,打包包名問題

    這篇文章主要介紹了使用maven基本命令,打包包名問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • SpringBoot @RequestParam、@PathVaribale、@RequestBody實戰(zhàn)案例

    SpringBoot @RequestParam、@PathVaribale、@RequestBody實戰(zhàn)案例

    這篇文章主要介紹了SpringBoot @RequestParam、@PathVaribale、@RequestBody實戰(zhàn)案例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11

最新評論

通州市| 太保市| 洛川县| 宁陵县| 崇义县| 澜沧| 县级市| 成安县| 贺州市| 乳源| 乐平市| 旬邑县| 和林格尔县| 乌拉特后旗| 道孚县| 苏州市| 深圳市| 山阳县| 互助| 临湘市| 弥勒县| 库尔勒市| 邛崃市| 曲麻莱县| 卢龙县| 勃利县| 定襄县| 库尔勒市| 河西区| 北辰区| 察雅县| 台南县| 日照市| 阳信县| 阿拉善盟| 塔城市| 西盟| 沾益县| 仁化县| 巴马| 梅州市|