av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:103日期:2023-08-09 14:34:53

SpringCloud Gateway 簡(jiǎn)介

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

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

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

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

SpringCloud Gateway 特征

SpringCloud官方,對(duì)SpringCloud Gateway 特征介紹如下:

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

(2)集成 Hystrix 斷路器

(3)集成 Spring Cloud DiscoveryClient

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

(5)具備一些網(wǎng)關(guān)的高級(jí)功能:動(dòng)態(tài)路由、限流、路徑重寫(xiě)

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

簡(jiǎn)單說(shuō)明一下上文中的三個(gè)術(shù)語(yǔ):

(1)Filter(過(guò)濾器):

和Zuul的過(guò)濾器在概念上類似,可以使用它攔截和修改請(qǐng)求,并且對(duì)上游的響應(yīng),進(jìn)行二次處理。過(guò)濾器為org.springframework.cloud.gateway.filter.GatewayFilter類的實(shí)例。

(2)Route(路由):

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

(3)Predicate(斷言):

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

正文

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

分析

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

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

使用方案

每秒限制請(qǐng)求1次

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

每秒限制請(qǐng)求10次

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

每分鐘限制請(qǐng)求1次

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

每分鐘限制請(qǐng)求10次

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

每小時(shí)限制請(qǐng)求1次

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

每小時(shí)限制請(qǐng)求10次

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

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

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

標(biāo)簽: Spring
主站蜘蛛池模板: www国产成人免费观看视频,深夜成人网 | 精品国产一区探花在线观看 | 成人h视频| 91亚洲国产亚洲国产 | 国产精品激情 | 综合精品久久久 | 日本不卡一区 | 国产成人福利在线观看 | 久久伊人一区 | 毛片免费观看 | 国产美女久久 | 久久久久久久久久一区二区 | 国产精品久久久久aaaa九色 | 久在线| 午夜小电影 | 精品在线一区 | 国产9 9在线 | 中文 | 欧美日韩在线免费 | 综合久久综合久久 | 亚洲色图综合网 | 无码日韩精品一区二区免费 | 精品国产精品三级精品av网址 | 亚洲婷婷六月天 | 国产亚洲精品美女久久久久久久久久 | 久久综合九色综合欧美狠狠 | 国产精品视频区 | 亚洲精品日韩综合观看成人91 | 中文字幕一区二区三区四区五区 | 国产精品爱久久久久久久 | 一级一级毛片免费看 | 成人免费在线视频 | 国产91视频一区二区 | 天天干天天插 | 亚洲区一区二区 | 午夜二区 | 免费簧片视频 | 日本久久一区二区三区 | 九九精品久久久 | 精品日韩在线观看 | 国产精品二区三区 | 日一区二区 |