解決springcloud-gateway限流遇到的問題
場景:
最近在研究spring cloud組件gateway 限流的實現(xiàn),看官網(wǎng)spring cloud操作下去,決定采用redis的方式去實現(xiàn)這個限流,因為系統(tǒng)架構(gòu)是分布式的,方便以后的迭代升級,所以就用redis了,之后就出現(xiàn)了下面的異常?。?!
異常信息: java.lang.IllegalArgumentException: Unable to find GateWayFilterFactory with name RequestRateLimiter
我的開發(fā)環(huán)境是離線的狀態(tài),maven庫只能用本地的,因為這個問題耗費了我一天時間,網(wǎng)上幾乎沒有這個異常,有個別的還是說仔細(xì)檢查一下配置文件,殊不知快把application.yml文件快瞪死了,最終決定用筆記本重新搞一把,沒想到是依賴的問題,少的是圖中畫方框的包
那么問題來了,這個包是干嘛的呢?這個其實就是redis的高級客戶端,適用于分布式并發(fā)訪問的場景調(diào)用,與springboot里面引用的jedis性質(zhì)一樣,但還是存在差別的,都是一個客戶端,就先這么理解。
解決方法:
maven-->Update Project-->offline / force update... 重新build項目即可。
注意:如果是離線環(huán)境,則需更新本地maven庫了! 按照官網(wǎng)的操作進(jìn)行限流的話,只是讓你依賴“spring-boot-starter-data-redis-reactive”,其實還得添加一個“spring-boot-starter-data-redis”依賴,spring-boot-starter-data-redis-reactive依賴spring-boot-starter-data-redis,兩者缺一不可。
如果出現(xiàn):springcloud gateway 網(wǎng)關(guān)限流配置報錯,No Configuration found for route goods or defaultFilters
springcloud整合 gateway限流,一直報錯:
解決方法
filters: - name: RequestRateLimiter #請求數(shù)限流名字不能隨便寫 args: key-resolver: "#{@ipKeyResolver}" redis‐rate‐limiter.replenishRate: 1 #令牌桶每秒填充平均速率 redis‐rate‐limiter.burstCapacity: 1 #令牌桶總?cè)萘?
最后發(fā)現(xiàn)是配置的問題,因為從pdf復(fù)制過來,redis‐rate‐limiter中的短橫線是中文的格式,導(dǎo)致參數(shù)未識別
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何將char類型的數(shù)字字符轉(zhuǎn)換成int類型問題
這篇文章主要介紹了如何將char類型的數(shù)字字符轉(zhuǎn)換成int類型問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12ES6學(xué)習(xí)筆記之新增數(shù)據(jù)類型實例解析
這篇文章主要介紹了ES6學(xué)習(xí)筆記之新增數(shù)據(jù)類型,結(jié)合實例形式分析了ES6數(shù)據(jù)解構(gòu)賦值、新增數(shù)據(jù)類型Set集合、新增數(shù)據(jù)類型Map、Symbol類型等相關(guān)原理與操作注意事項,需要的朋友可以參考下2020-01-01SpringBoot使用Apache?POI實現(xiàn)導(dǎo)入導(dǎo)出Excel文件
Apache?POI?是一個強大的?Java?庫,用于處理?Microsoft?Office?文檔,下面我們來看看SpringBoot如何使用Apache?POI導(dǎo)入導(dǎo)出Excel文件功能吧2025-01-01