【问题标题】:Servlet Asynchronous questions and errorServlet 异步问题和错误
【发布时间】:2016-01-28 15:19:12
【问题描述】:

刚开始学习 Servlets 和 JSP,我尝试按照这个指南来实现异步 Servlets:https://plumbr.eu/blog/java/how-to-use-asynchronous-servlets-to-improve-performance

我有两个关于这个主题的问题:

  1. 我不明白为什么异步 Servlet 应该更快。根据他的例子,当你被服务器线程阻塞时,你会被应用程序线程阻塞。

  2. 我尝试实现他的示例,但是当我运行异步 Servlet 时,我得到了恼人的 HTTP 状态 500 错误。 The server encountered an internal error that prevented it from fulfilling this request。 我不知道它为什么不起作用,我什至不知道如何开始调试它。

附:我认为在这里传递 URL 会更容易,因为它与我的代码几乎相同。但如果你们需要,我也会传递代码。

【问题讨论】:

    标签: multithreading servlets asynchronous


    【解决方案1】:

    Asynch Servlet (AS) 并不快。它比普通的 servlet 路由有更多的开销。它的主要目标是提高 WebContainer (WC) 的线程使用率。

    在 WC 的线程池中配置了有限数量的线程来处理请求。当请求完成时间过长(例如,等待从数据库生成数据)并且应用程序服务器负载不足时,WC 将停止处理任何新请求,直到其线程可用(即先前的请求完成,从而释放一个WC 的线程)。

    这是 AS 进来的地方。因此,AS 可以在不同的线程(工作负载管理线程......)上分拆,而不是等待。这允许完成原始 servlet,从而将 WC 的线程释放回池中,以便为下一个请求提供服务。

    【讨论】:

      猜你喜欢
      • 2021-03-28
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      相关资源
      最近更新 更多