gin rate limiter 源码
杜松子酒速率限制器 要求 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
文件列表
gin-rate-limiter-master.zip
(预估有个15文件)
gin-rate-limiter-master
pkg
logger
logger.go
3KB
setting
section.go
405B
setting.go
342B
config
config.yaml
147B
main_test.go
19B
暂无评论