从品牌网站建设到网络营销策划,从策略到执行的一站式服务
1 概述
10年积累的做网站、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有灵山免费网站建设让你可以放心的选择与我们合作。
系统中的接口通常都有限流,比如 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的限流器的实现(示例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持创新互联。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图