Java Servlet过滤器:非常简单的速率限制过滤器,允许突发
我想添加一个非常简单的过滤器,对每个IP速率进行限制,但仍然允许突发,有点像iptables允许的那样 我不想安装整个厨房水槽:我只需要一个实现该功能的过滤器类 哪种好的数据结构/算法可以实现简单的“速率限制,但允许短突发” 例如,如果用户每分钟尝试执行的GET/POST超过'x',我希望提供一个HTTP错误代码,但我仍然希望允许同一用户“突发”到'y'(其中y>x),直到他达到突发上限 为了进行比较,这里介绍了如何使用iptables配置类似的带突发的速率限制(这只是一个示例,以说明我在说什么,尽管在我的例子中,并不是对TCP SYN数据包设置速率限制+突发):Java Servlet过滤器:非常简单的速率限制过滤器,允许突发,java,tomcat,servlet-filters,rate-limiting,Java,Tomcat,Servlet Filters,Rate Limiting,我想添加一个非常简单的过滤器,对每个IP速率进行限制,但仍然允许突发,有点像iptables允许的那样 我不想安装整个厨房水槽:我只需要一个实现该功能的过滤器类 哪种好的数据结构/算法可以实现简单的“速率限制,但允许短突发” 例如,如果用户每分钟尝试执行的GET/POST超过'x',我希望提供一个HTTP错误代码,但我仍然希望允许同一用户“突发”到'y'(其中y>x),直到他达到突发上限 为了进行比较,这里介绍了如何使用iptables配置类似的带突发的速率限制(这只是一个示例,以说明我在说什么
在Java级别:
- 找到了一个速率限制器,该限制器基于您构建自己的查询的位置,以匹配突发请求
- Jetty有一个内置的servlet
- 内置的Java库,用于创建自己的机制
- 有一个节流机构
- 找到了一个速率限制器,该限制器基于您构建自己的查询的位置,以匹配突发请求
- Jetty有一个内置的servlet
- 内置的Java库,用于创建自己的机制
- 有一个节流机构
- 在Java级别:
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 5