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

xiaomage · 发布于 2017年11月08日 · 最后由 gingerhot 回复于 2017年11月09日 · 461 次阅读
20178

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

共收到 6 条回复
96

把IP存起来,丢到redis?

15420

gem 'rack-attack'

原理也是用的redis

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

9800

rate limit相关的gem

96
15420pathbox 回复

什么量级才算是巨大呢

2945

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

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

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册