當前位置: 妍妍網 > 碼農

今日程式碼大賞 | Redisson 限流

2024-03-28碼農

作為後端開發,我們免不了要經常跟鎖打交道,

其中 Redisson 框架裏包含了強大的分布式鎖實作,

但除了分布式鎖, Redisson 還有限流的功能。

假設我們已經寫好了配置及配置類,

就可以透過下面的程式碼非常簡單的實作限流,

範例程式碼:

@Resource
private RedissonClient redissonClient;
publicvoiddoRateLimit(String key) {
if (StringUtils.isBlank(key)) {
return;
}
// 使用者限流,每 3 秒 1 次
RRateLimiterrateLimiter = redissonClient.getRateLimiter(key);
// 設定限流參數,比如每秒鐘最多處理的請求數
rateLimiter.trySetRate(RateType.OVERALL, 13, RateIntervalUnit.SECONDS);
booleanpermit = rateLimiter.tryAcquire();
if (!permit) {
thrownewRuntimeException("操作過於頻繁");
}
}

完整程式碼片段來源於程式碼小抄,歡迎點選進入小程式閱讀!

線上存取:https://www.codecopy.cn/post/tzwijz

更多優質程式碼歡迎進入小程式檢視!

往期推薦