选择 限流算法大体有两种: 1.计数式 计数算法有固定窗口算法与滑动窗口算法两种。 固定窗口临界不易处理。例如: 窗口为一分钟限流30 第一分钟,前30秒流量为0,后30秒流量为25 第二分钟,前30秒流量为25,后30秒流量为0 固定窗口对于这两分钟流量都没触发限流操作。 滑动窗口则会统计每一个窗口期内的流量。 例如: 窗口为一分钟限流30 第一分钟,前30秒流量为0,后30秒流量为25 第二分钟,前30秒流量为25,后30秒流量为0 滑动窗口会统计第一分钟后30秒与第二分钟前30秒的流量 在窗口期流量为50,则触发流量限制 所以对于滑动窗口可以很好的处理临界问题 2.桶算法 桶算法分为漏桶算法与令牌桶算法。 桶算法主动往桶里添加token,。 对于我们业务场景,通常情况下桶的数量(key)不易于确定,所以我们采用计数式滑动窗口算法。 实现 以时间区间为窗口 基于redis的ZADD实现 ZADD key score member ZCOUNT ZCOUNT key min max 主要依赖ZADD与ZCOUNT命令 ZADD中的score使用时间戳(.... 分布式限流-滑动窗口实现 限流
开客目标 分享工作心得 分享新发现的技术信息 有困扰你的技术问题需要解答 技术分享资料 技术培训资料 ... 如何注册 木有注册,请使用OA账号登录哦 登录后才可以评论哦 谁能投稿 所有同学都可投稿 投稿方式: 自由写文章和发布 呼朋唤友给你评论 投稿收益 每月评选【最佳技术大拿奖】 发送成就小礼品 置顶! Fancy最靓技术博客上线啦!!! 公告