本篇內容主要講解“如何解決springcloud-gateway限流遇到的問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何解決springcloud-gateway限流遇到的問題”吧!
最近在研究spring cloud組件gateway 限流的實現,看官網spring cloud操作下去,決定采用redis的方式去實現這個限流,因為系統架構是分布式的,方便以后的迭代升級,所以就用redis了,之后就出現了下面的異常?。?!
異常信息: java.lang.IllegalArgumentException: Unable to find GateWayFilterFactory with name RequestRateLimiter
我的開發環境是離線的狀態,maven庫只能用本地的,因為這個問題耗費了我一天時間,網上幾乎沒有這個異常,有個別的還是說仔細檢查一下配置文件,殊不知快把application.yml文件快瞪死了,最終決定用筆記本重新搞一把,沒想到是依賴的問題,少的是圖中畫方框的包

那么問題來了,這個包是干嘛的呢?這個其實就是redis的高級客戶端,適用于分布式并發訪問的場景調用,與springboot里面引用的jedis性質一樣,但還是存在差別的,都是一個客戶端,就先這么理解。
maven-->Update Project-->offline / force update... 重新build項目即可。
注意:如果是離線環境,則需更新本地maven庫了! 按照官網的操作進行限流的話,只是讓你依賴“spring-boot-starter-data-redis-reactive”,其實還得添加一個“spring-boot-starter-data-redis”依賴,spring-boot-starter-data-redis-reactive依賴spring-boot-starter-data-redis,兩者缺一不可。
如果出現:springcloud gateway 網關限流配置報錯,No Configuration found for route goods or defaultFilters

filters:
- name: RequestRateLimiter #請求數限流名字不能隨便寫
args:
key-resolver: "#{@ipKeyResolver}"
redis‐rate‐limiter.replenishRate: 1 #令牌桶每秒填充平均速率
redis‐rate‐limiter.burstCapacity: 1 #令牌桶總容量最后發現是配置的問題,因為從pdf復制過來,redis‐rate‐limiter中的短橫線是中文的格式,導致參數未識別
到此,相信大家對“如何解決springcloud-gateway限流遇到的問題”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。