【问题标题】:Queuing servlet requests from the same HTTP Client?排队来自同一个 HTTP 客户端的 servlet 请求?
【发布时间】:2012-07-28 23:36:09
【问题描述】:

我有一个常规的 servlet,(符合 Oracle/Sun 定义的 servlet API)。它有时会接收来自数百个用户的大量请求,在某些情况下,任何 HTTP 客户端都可以快速连续地启动多个请求。有时,当第二个请求被接收并开始处理时,servlet 还没有完成对来自 HTTP 客户端的第一个请求的处理。因此,我希望能够通过在请求来自同一个 HTTP 客户端时将它们排队并按顺序处理它们来管理请求的处理。仅当从同一个 HTTP 客户端收到请求时,这才是一个问题。

我听说过FilterChains,但不确定这是否适合这种情况。对来自用户的多个请求进行排队的最合适的方法是什么?

【问题讨论】:

  • 我认为您遇到了这个可伸缩性问题并试图用您的代码解决这个问题。建议大家看看jetty等NIO servlet容器。

标签: java servlets servlet-filters


【解决方案1】:

在一个 HTML 页面中创建两个框架。一个主框架和另一个辅助框架。做一些事情,每当我们发送一个请求响应时,都应该重定向到辅助框架。 我不确定它是否适用于您的情况。但我在我的项目中解决了这类问题。其中 servlet 处理很重。我无法完成一个 servlet 进程。

【讨论】:

  • 在客户端解决并不是一个有效的解决方案。固有的问题仍然存在。 servlet 引擎需要进行编码,以便无论哪个客户端发送请求,servlet 管理器都可以明智地处理它。
  • 我认为在服务器端你无法处理排队。因为它使用多线程。所以所有的执行都将同时执行。 ..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-05
  • 2015-07-22
  • 2022-08-19
  • 2019-03-31
  • 1970-01-01
相关资源
最近更新 更多