gin rate limiter 源码

asset32893 24 0 ZIP 2021-04-21 08:04:54

杜松子酒速率限制器 要求 Dcard每天午夜都有大量使用者涌入抽卡,为了不让伺服器过载,请设计一个中间件: 限制每小时来自同一个IP的请求数量不得超过1000 在响应标头中加入剩余的请求数量(X-RateLimit-Remaining)以及速率限制归零的时间(X-RateLimit-Reset) 如果超过限制的话就回传429(请求过多) 可以使用各种资料库达成 快速开始 demo的程序将跑在localhost:8080 $ docker-compose up 比赛条件 由于来自同一个一个IP的请求有可能是非同步的,虽然redis的设计主要为单执行绪,但因为一次的请求将有数个交易要做,有可能在get和set之间有其他request的get或set我是参考补充实现锁的演算法,实现一个简单的锁。redis lock有很多实现方式,例如对多个redis做分散锁的redlock或我较不熟悉的zoo

用户评论
请输入评论内容
评分:
暂无评论