解決springcloud-gateway限流遇到的問(wèn)題
場(chǎng)景:
最近在研究spring cloud組件gateway 限流的實(shí)現(xiàn),看官網(wǎng)spring cloud操作下去,決定采用redis的方式去實(shí)現(xiàn)這個(gè)限流,因?yàn)橄到y(tǒng)架構(gòu)是分布式的,方便以后的迭代升級(jí),所以就用redis了,之后就出現(xiàn)了下面的異常?。?!
異常信息: java.lang.IllegalArgumentException: Unable to find GateWayFilterFactory with name RequestRateLimiter
我的開(kāi)發(fā)環(huán)境是離線(xiàn)的狀態(tài),maven庫(kù)只能用本地的,因?yàn)檫@個(gè)問(wèn)題耗費(fèi)了我一天時(shí)間,網(wǎng)上幾乎沒(méi)有這個(gè)異常,有個(gè)別的還是說(shuō)仔細(xì)檢查一下配置文件,殊不知快把a(bǔ)pplication.yml文件快瞪死了,最終決定用筆記本重新搞一把,沒(méi)想到是依賴(lài)的問(wèn)題,少的是圖中畫(huà)方框的包

那么問(wèn)題來(lái)了,這個(gè)包是干嘛的呢?這個(gè)其實(shí)就是redis的高級(jí)客戶(hù)端,適用于分布式并發(fā)訪(fǎng)問(wèn)的場(chǎng)景調(diào)用,與springboot里面引用的jedis性質(zhì)一樣,但還是存在差別的,都是一個(gè)客戶(hù)端,就先這么理解。
解決方法:
maven-->Update Project-->offline / force update... 重新build項(xiàng)目即可。
注意:如果是離線(xiàn)環(huán)境,則需更新本地maven庫(kù)了! 按照官網(wǎng)的操作進(jìn)行限流的話(huà),只是讓你依賴(lài)“spring-boot-starter-data-redis-reactive”,其實(shí)還得添加一個(gè)“spring-boot-starter-data-redis”依賴(lài),spring-boot-starter-data-redis-reactive依賴(lài)spring-boot-starter-data-redis,兩者缺一不可。
如果出現(xiàn):springcloud gateway 網(wǎng)關(guān)限流配置報(bào)錯(cuò),No Configuration found for route goods or defaultFilters
springcloud整合 gateway限流,一直報(bào)錯(cuò):

解決方法
filters:
- name: RequestRateLimiter #請(qǐng)求數(shù)限流名字不能隨便寫(xiě)
args:
key-resolver: "#{@ipKeyResolver}"
redis‐rate‐limiter.replenishRate: 1 #令牌桶每秒填充平均速率
redis‐rate‐limiter.burstCapacity: 1 #令牌桶總?cè)萘?
最后發(fā)現(xiàn)是配置的問(wèn)題,因?yàn)閺膒df復(fù)制過(guò)來(lái),redis‐rate‐limiter中的短橫線(xiàn)是中文的格式,導(dǎo)致參數(shù)未識(shí)別
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Boot?根據(jù)配置決定服務(wù)(集群、單機(jī))是否使用某些主件的操作代碼
這篇文章主要介紹了Spring?Boot根據(jù)配置決定服務(wù)(集群、單機(jī))是否使用某些主件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-04-04
SpringBoot中接收POST參數(shù)的幾種方式詳解
這篇文章主要介紹了SpringBoot中接收POST參數(shù)的幾種方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
SpringBoot異步實(shí)現(xiàn) 的8種方式
在同步操作中,執(zhí)行到?發(fā)送短信?的時(shí)候,我們必須等待這個(gè)方法徹底執(zhí)行完才能執(zhí)行?贈(zèng)送積分?這個(gè)操作,如果?贈(zèng)送積分?這個(gè)動(dòng)作執(zhí)行時(shí)間較長(zhǎng),發(fā)送短信需要等待,這就是典型的同步場(chǎng)景,這篇文章主要介紹了SpringBoot異步實(shí)現(xiàn) 的8種方式,需要的朋友可以參考下2023-11-11
關(guān)于SpringCloud的微服務(wù)以及組件詳解
這篇文章主要介紹了關(guān)于SpringCloud的微服務(wù)以及組件詳解,是一個(gè)更高層次的、 架構(gòu)視角的綜合性大型項(xiàng)目, 他的目標(biāo)是構(gòu)建一套標(biāo)準(zhǔn)化的微服務(wù)解決方案,需要的朋友可以參考下2023-05-05
Java實(shí)現(xiàn)的求解經(jīng)典羅馬數(shù)字和阿拉伯?dāng)?shù)字相互轉(zhuǎn)換問(wèn)題示例
這篇文章主要介紹了Java實(shí)現(xiàn)的求解經(jīng)典羅馬數(shù)字和阿拉伯?dāng)?shù)字相互轉(zhuǎn)換問(wèn)題,涉及java輸入輸出及字符串、數(shù)組的遍歷與轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
Java線(xiàn)程池大小的設(shè)置方法實(shí)例
線(xiàn)程池的設(shè)置是有方法的,不是憑借簡(jiǎn)單的估算來(lái)決定的,這篇文章主要給大家介紹了關(guān)于Java線(xiàn)程池大小的設(shè)置方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08
淺談Servlet 實(shí)現(xiàn)網(wǎng)頁(yè)重定向的方法
本篇文章主要介紹了Servlet 實(shí)現(xiàn)重定向幾種方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08

