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的限流器的实现(示例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
标签:
Redis,限流器
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“基于Redis的限流器的实现(示例讲解)”评论...
更新日志
2024年05月13日
2024年05月13日
- 大张伟《大张伟歌曲合集》[320K/MP3][89MB]
- 郭金发.2002-台湾红歌100年·台语精选辑CD13【乡城】【WAV+CUE】
- 殷正洋.1994-等一个人【巨石】【WAV+CUE】
- 王馨平.2014-Truly【秘密花园】【WAV+CUE】
- 邓涛-精选十五首HIFI最爱天碟《试音邓涛》[WAV分轨]
- 绚香《ayakasHistory2006-2009》24bit-96kHz【Hi-Res】【flac】
- 群星-重力加速度·蓝白经华连串曲蓝与白-1991-WAV+CUE
- 孙楠《孙楠歌曲合集》[320K/MP3][252.2MB]
- 刀郎《刀郎歌曲合集》[320K/MP3][362.6MB]
- 杨培安《杨培安歌曲合集》[320K/MP3][257.1MB]
- [In-AkustikINAK7803]VA-ThePinnacleOfCheskyVoiceChesky非凡女声2017[SACD-ISO]
- 王之炅薛颖佳-中国小提琴名曲(2.8MHzDSD)DSF
- 群星-重力加速度·蓝白经华连串曲蓝与白-1991-WAV+CUE
- 群星-将爱情进行到底电视剧原声音乐中唱-1999-WAV+CUE
- [ABC唱片]徐刚-独步外滩WalkingOntheBundPerryShi(SACD).iso