首页 > 解决方案 > 如何限制web api中的并发请求数?

问题描述

如何通过代码限制对 Web 应用程序的并发请求数,例如 3 个请求?我是否想将每个 servlet 类放入一个线程并创建一个全局计数器(通过创建新类)?

标签: javaweb-applications

解决方案


如何通过代码限制对 Web 应用程序的并发请求数,例如 3 个请求?我是否想将每个 servlet 类放入一个线程并创建一个全局计数器(通过创建新类)?

您通常依靠 Web 容器来限制并发请求的数量;例如,通过在 Web 容器配置中设置工作线程或连接数的限制……。

显然,如果 Tomcat 服务器收到的请求超出其处理能力,它将发送通用 503 响应。了解更多信息:

但是我如何向用户显示婚礼已达到其限制(如 3 个请求)?

如果您想限制特定的请求类型并向用户显示特定的响应,那么您可能需要使用计数器等在每个 servlet 中实现这一点。

但是当服务器超载时尝试做“好”的事情的问题是,做好的事情往往会增加负载。这一点尤为重要:

  • 当您的服务器严重不足以承受(真实)用户的实际负载时,或者
  • 当有人无意或故意对您进行 DoS 攻击时。

推荐阅读