Tomcat(和Spring REST)的速率限制/限制

时间:2019-01-21 23:37:27

标签: spring tomcat server throttling

我现在读了很多线程,但是我的问题仍然无法得到充分解决:

如果运行带有Spring Rest后端的tomcat Web服务器,则应该必须有一种方法来限制每秒可能出现的请求/分钟/ ...,例如,基于请求者。 到目前为止,我的调查导致了以下可能性:

  1. 使用Guava RateLimiter或https://github.com/weddini/spring-boot-throttling并检查preHandle中的所有请求。但是,由于没有考虑到哪个IP在什么时候请求,因此像REDIS存储这样的东西可以更合理地检查(IP /上次访问时间戳)
  2. 在tomcat前面放置一个更高级的Web服务器,以提供此功能(例如apache2或nginx)

现在,我不喜欢第一个解决方案,因为请求已经到达应用程序本身,而第二个解决方案又建立了一个附加层,我真的不能相信对于这样的基本问题是必需的。

所以我的问题是,我在这里缺少什么方法和解决方案?我读了一些有关tomcat阀信号量的信息,但它似乎只是限制了总体请求率。 已经在8443端口上使用iptables或fail2ban之类的一些基本功能进行过滤,并在给定的时间内简单地丢弃相同ip的请求,这将是最高效/可行的选择吗?

0 个答案:

没有答案