问答 ✅如何设计一个流量网关(根据 IP 限制 QPS)

在路上 · 2021年10月13日 · 最后由 在路上 回复于 2021年10月14日 · 3608 次阅读

大家有什么好的设计思路吗?

关键词:

  • 根据请求的 IP 信息
  • 限制单 IP 的 QPS
  • 考虑到高性能和高可用

最终答案:应该就是考察是否熟悉 Nginx 的配置,Nginx 完全可以通过配置满足这个需求。

详见:Nginx 单个 IP 访问频次限制

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 11 条回复 时间 点赞

求大佬指导

如果是使用 nginx 的话,可以利用 lua 做。这个限制策略就看需求了。基本上都是统计单位时间段内,该 ip 的访问次数,到达限制策略,将该 ip 加入黑名单,后续收到黑名单的 ip 请求就做限制处理。限制时间到后,黑名单删除该 ip。然后循环这种逻辑。

如果是要这个功能,那基本上网关产品都有这个功能。
如果是面试题,高性能、高可用这要求不低呀。

重来看雨 回复

要求限制 QPS,比如第 1 秒超过 QPS 频次了,拉黑。 第二秒还要放开。

要求自己设计开发,不能使用 Nginx 这种现成的

rihkddd 回复

是的,把我问方了

换个方向想,是不是在考 nginx 的原理

现在我也在担心这个问题,哈哈

这是开发还是测试?

在路上 回复

nginx 也没有这个功能,只是添加了模块。也属于自己开发。哈哈哈。整个网关是独立设计的话,限制逻辑不是难点,正如楼上所说,高性能高可用才是难点。

徐汪成 回复

测试开发

重来看雨 回复

是的,限制流量的逻辑简单,但是高性能比较考验网络这块的积累

在路上 关闭了讨论 12月23日 10:16
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册