DDR爱好者之家 Design By 杰米
1 概述
系统中的接口通常都有限流,比如 70次/秒 ,如何保证我们的接口的调用次数在超过第三方接口限流的时候快速失败呢?这时候就需要限流器了。下面是笔者用redis实现限流器的流程图。
2 代码
/** * 获取限流权限 * @param key * @param millisecond 毫秒数 * @param limitCount 限流次数 * @return */ public static boolean getCurrentLimiting(String key, Long millisecond, Integer limitCount){ try { boolean currentLimitingLock = RedisDistributeLockUtil.lock(key); if(currentLimitingLock){ Long llen = RedisClient.llen(getCurrentLimitingRedisKey(key)); if(llen < limitCount){ RedisClient.lpush(getCurrentLimitingRedisKey(key), DateUtil.current(false) + ""); return true; }else{ Long lastTime = Long.parseLong(RedisClient.lindex(getCurrentLimitingRedisKey(key), -1)); if((DateUtil.current(false) - lastTime) >= millisecond){ RedisClient.lpush(getCurrentLimitingRedisKey(key), DateUtil.current(false) + ""); RedisClient.ltrim(getCurrentLimitingRedisKey(key), 0, limitCount); return true; } } } }finally { RedisDistributeLockUtil.unlock(key); } return false; }
以上这篇基于Redis的限流器的实现(示例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
更新日志
2024年04月29日
2024年04月29日
- 【原神】旧日之海,奇馈宝箱收集(共10个)
- 龚玥《龚玥精选珍藏》[WAV+CUE][649M]
- 群星《勃拉姆斯钢琴四重奏全集1-3》[320K/MP3][287.13MB]
- 群星《勃拉姆斯钢琴四重奏全集1-3》[FLAC/分轨][546.47MB]
- 飞跃虹镜什么时候上线 国服公测时间预测
- 七日世界阿尔法收容井在哪 位置及玩法介绍
- 原神4.6版本隐藏锚点开启攻略 从大海到大海成就
- dnf无敌药水什么名字
- 物华弥新换位置方法分享 物华弥新怎么换位置
- 物华弥新迷踪盘第15关怎么过 迷踪盘第15关通关方法
- win7怎么更换激活码,win7更改激活码
- 电脑怎么安装安卓系统不卡的,电脑怎么安装安卓系统软件
- 《天国拯救2》实体版已经在亚马逊等网站上开启预购
- Vandal爆料称 已获悉了Nintendo Switch 2的相关信息
- 打卡爱好者福音 收藏类游戏《Check in》登陆Steam