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

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

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

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

相關文章

  • springboot中的dockerfile使用

    springboot中的dockerfile使用

    這篇文章主要介紹了springboot中的dockerfile使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringCloud分布式鏈路跟蹤的方法

    SpringCloud分布式鏈路跟蹤的方法

    這篇文章主要介紹了SpringCloud分布式鏈路跟蹤的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • mybatis寫xml時數(shù)字類型千萬別用 !=‘‘(不為空串)進行判斷的示例詳解

    mybatis寫xml時數(shù)字類型千萬別用 !=‘‘(不為空串)進行判斷的示例詳解

    這篇文章主要介紹了mybatis寫xml時數(shù)字類型千萬別用 !=‘‘(不為空串)進行判斷的示例詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Shiro集成Spring之注解示例詳解

    Shiro集成Spring之注解示例詳解

    Shiro想必大家都知道了,是目前使用率要比spring security都要多的一個權限框架,下面這篇文章主要給大家介紹了關于Shiro集成Spring之注解的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-09-09
  • 深入理解LinkedHashSet集合的底層機制

    深入理解LinkedHashSet集合的底層機制

    這篇文章主要介紹了LinkedHashSet的底層機制詳解,LinkedHashSet根據(jù)元素的hashCode值來決定元素的存儲位置,同時使用鏈表維護元素的次序,?這使得元素看起來是以插入順序保存的,需要的朋友可以參考下
    2023-10-10
  • 如何利用Spring?Boot?監(jiān)控?SQL?運行情況

    如何利用Spring?Boot?監(jiān)控?SQL?運行情況

    這篇文章主要介紹了如何利用Spring?Boot監(jiān)控SQL運行情況,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • 例舉fastJson和jackson轉(zhuǎn)json的區(qū)別

    例舉fastJson和jackson轉(zhuǎn)json的區(qū)別

    今天小編就為大家分享一篇關于例舉fastJson和jackson轉(zhuǎn)json的區(qū)別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • java8 實現(xiàn)提取集合對象的每個屬性

    java8 實現(xiàn)提取集合對象的每個屬性

    這篇文章主要介紹了java8 實現(xiàn)提取集合對象的每個屬性方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • spring?boot?導出數(shù)據(jù)到excel的操作步驟(demo)

    spring?boot?導出數(shù)據(jù)到excel的操作步驟(demo)

    這篇文章主要介紹了spring?boot?導出數(shù)據(jù)到excel的實現(xiàn)步驟,文中通過打開一個平時練習使用的springboot的demo給大家詳細介紹,需要的朋友可以參考下
    2022-03-03
  • Java觀察者模式的深入了解

    Java觀察者模式的深入了解

    這篇文章主要為大家介紹了Java觀察者模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01

最新評論