Rails Grape API 如何对访问频率做限制

xiaomage · 发布于 2017年11月08日 · 最后由 xiaomage 回复于 2017年12月17日 · 564 次阅读
20178

请问:对于某一个业务接口,单位时间内只允许提交一次,这样的限制改如何做?

共收到 7 条回复
96

把IP存起来,丢到redis?

15420

gem 'rack-attack'

原理也是用的redis

不过当访问量巨大的时候,就很考验redis的负载能力了。 一般访问量还是没什么问题的

9800

rate limit相关的gem

96
15420pathbox 回复

什么量级才算是巨大呢

E94ba8

感觉这种和限制抢票的系统差不多,都是从前向后限制,越靠前越好。越靠前后面系统的压力越小。

首先调用 API 的前端做限制,然后 API 前面加上 Nginx 并配置相应的 Nginx 限速模块。或者在系统层面使用 iptables 配置规则进行限速。这样应用本身不用做改动比较好。

20178

解决了,使用redis记住状态,完成持久化之后,释放掉。谢谢各位。

20178 xiaomage 关闭了讨论 12月17日 15:23
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册