是否有办法防止 Postman 或任何其他客户端向spring Boot 应用程序发出多个请求?我的意思是,我可以在Ajax中运行一个for循环作为示例,并向我的控制器发送大量请求。我如何防止这种情况?
Ajax
z9gpfhce1#
实现这一点的一种方法如下所示,在Sping Boot 项目中创建一个请求过滤器或拦截器,然后将请求IP地址保存在类似Radis的缓存服务器中一段预定义的时间。然后当一个请求到来时,从请求中提取IP地址并将其与该高速缓存中的值进行比较,如果该值存在,则可以在请求到达控制器之前将其返回,如果Radis中没有该IP地址的条目,您可以将该IP地址保存在radis中,并解析发送到控制器请求https://www.baeldung.com/spring-boot-add-filter
dhxwm5r42#
通常,我会使用以下策略来最小化前端向后端发送过多请求的影响:
eqqqjvef3#
非常好的问题,你需要使用断路器来处理这个问题。它允许你在服务器关闭时限制连接,并且在几次尝试之后它将不允许任何请求。这种情况发生在使用回退方法时,该方法将立即回复客户端,因此,清除线程并使你的应用程序更快。checkout my implementation of this in GitHub欢迎随时在GitHub中添加反馈或评论
3条答案
按热度按时间z9gpfhce1#
实现这一点的一种方法如下所示,
在Sping Boot 项目中创建一个请求过滤器或拦截器,然后将请求IP地址保存在类似Radis的缓存服务器中一段预定义的时间。然后当一个请求到来时,从请求中提取IP地址并将其与该高速缓存中的值进行比较,如果该值存在,则可以在请求到达控制器之前将其返回,如果Radis中没有该IP地址的条目,您可以将该IP地址保存在radis中,并解析发送到控制器请求
https://www.baeldung.com/spring-boot-add-filter
dhxwm5r42#
通常,我会使用以下策略来最小化前端向后端发送过多请求的影响:
eqqqjvef3#
非常好的问题,你需要使用断路器来处理这个问题。它允许你在服务器关闭时限制连接,并且在几次尝试之后它将不允许任何请求。这种情况发生在使用回退方法时,该方法将立即回复客户端,因此,清除线程并使你的应用程序更快。
checkout my implementation of this in GitHub
欢迎随时在GitHub中添加反馈或评论