Mapmap = new HashMap<>(); for (int i = 0; i < 100; i++) { map.put("account",IdUtils.genRandomNum(8)); map.put("password",IdUtils.genRandomNum(5)); HttpUtils.sendPost("http://localhost:8087/user/login", map); System.out.println(i); }
于是加一個簡單的請求限流 順便學習相關技能
先引用相關jar包
io.github.forezp distributed-limit-core 1.0.2
本地限流在配置文件 application.properties 中添加配置
limit.type: local
需要限流的Controller方法上添加注解
@Limit(identifier = "forezp", limtNum = 1, seconds = 5)
完事... 能達到需求了就ok
這里限流針對的是單個請求的簡單限流,最好還是針對ip做限流
其他限流方式
令牌桶算法:
說實話沒理解...
public class RateLimiterDemo { private static RateLimiter limiter = RateLimiter.create(5); public static void exec() { limiter.acquire(1); try { // 處理核心邏輯 TimeUnit.SECONDS.sleep(1); System.out.println("--" + System.currentTimeMillis() / 1000); } catch (InterruptedException e) { e.printStackTrace(); } } }
漏桶算法示例:
public class CountRateLimiterDemo1 { private static AtomicInteger count = new AtomicInteger(0); public static void exec() { if (count.get() >= 5) { System.out.println("請求過多!"+System.currentTimeMillis()/1000); } else { count.incrementAndGet(); try { //處理核心邏輯 TimeUnit.SECONDS.sleep(1); System.out.println("--"+System.currentTimeMillis()/1000); } catch (InterruptedException e) { e.printStackTrace(); } finally { count.decrementAndGet(); } } } }
記錄下代碼,方面下次使用。
詳情請閱讀原作者:點我
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76856.html
摘要:常見的限流方式,比如適用線程池隔離,超過線程池的負載,走熔斷的邏輯。在令牌桶算法中,存在一個桶,用來存放固定數量的令牌。,令牌桶每秒填充平均速率。 轉載請標明出處: https://www.fangzhipeng.com本文出自方志朋的博客 在高并發的系統中,往往需要在系統中做限流,一方面是為了防止大量的請求使服務器過載,導致服務不可用,另一方面是為了防止網絡攻擊。 常見的限流方式,...
摘要:計數限流算法無論固定窗口還是滑動窗口核心均是對請求進行計數,區別僅僅在于對于計數時間區間的處理。令牌桶限流實現原理令牌桶限流的實現原理在有詳細說明。因此由此為入口進行分析。目前可返回的實現子類包括及兩種,具體不同下文詳細分析。 限流 限流一詞常用于計算機網絡之中,定義如下: In computer networks, rate limiting is used to control t...
摘要:限流算法最簡單粗暴的限流算法就是計數器法了,而比較常用的有漏桶算法和令牌桶算法計數器計數器法是限流算法里最簡單也是最容易實現的一種算法。 運營研發團隊 李樂 高并發系統有三把利器:緩存、降級和限流; 限流的目的是通過對并發訪問/請求進行限速來保護系統,一旦達到限制速率則可以拒絕服務(定向到錯誤頁)、排隊等待(秒殺)、降級(返回兜底數據或默認數據); 高并發系統常見的限流有:限制總并發...
摘要:對請求的目標進行限流例如某個每分鐘只允許調用多少次對客戶端的訪問進行限流例如某個每分鐘只允許請求多少次對某些特定用戶或者用戶組進行限流例如非用戶限制每分鐘只允許調用次某個等多維度混合的限流。 對請求的目標URL進行限流(例如:某個URL每分鐘只允許調用多少次) 對客戶端的訪問IP進行限流(例如:某個IP每分鐘只允許請求多少次) 對某些特定用戶或者用戶組進行限流(例如:非VIP用戶限制...
摘要:之前有了解到哥的一部分讀者們沒有充分搞清楚限流和熔斷的關系。后者表示系統在同一時刻能處理的最大請求數量,比如次的并發。后續限流策略需要設定的具體標準數值就是從這些指標中來的。限流閾值不繼續處理請求。 如果這是第二次看到我的文章,歡迎掃描文末二維碼訂閱我喲~本文長度為2869字,建議閱讀8分鐘。 可能你在網上看過不少「限流」相關的文章,但是z哥的這篇可能是最全面,最深入淺出的一篇了(容我...
閱讀 1458·2021-11-24 09:39
閱讀 1775·2021-11-22 15:25
閱讀 3728·2021-11-19 09:40
閱讀 3283·2021-09-22 15:31
閱讀 1288·2021-07-29 13:49
閱讀 1192·2019-08-26 11:59
閱讀 1308·2019-08-26 11:39
閱讀 919·2019-08-26 11:00