jetty如何处理多个请求

2024-02-19

我已经使用 jetty/tomcat 应用服务器处理 Spring Web 应用程序大约两年了,但是我仍然困惑的是这些服务器中如何处理多个请求。我知道 spring 对于创建单例很有帮助,但我的理解仅限于此。 有人可以指出任何可以帮助我了解如何处理多个请求的好资源吗?


这个问题可以在很多层面上得到回答,我已经盯着它看了两天,试图弄清楚如何回答它......所以我会采取一个高层次的方式来解决它。

jetty 有一个监听的服务器端口和一些接受器线程,它们的工作是获取客户端和服务器端之间建立的连接对象。一旦建立连接,它就会流经 jetty 处理程序架构,执行诸如身份验证之类的操作,或者提取会话 ID 并将会话对象附加到请求。然后它进入 servlet 处理程序并找到适当的 servlet,然后您开始处理 servlet-api。此时,您在 servlet-api 中的所有时间(至少在 servlet 2.5 下)都会分配一个线程来处理您的请求。在 servlet 3.0 中,您可以使用一些异步机制,或者您可以使用 jetty-continuations 作为在 servlet 2.5 api 上获得异步支持的方法。

无论如何,服务器使用一个线程池来将线程分配给那些连接器,这些连接器最终是在 servlet-api 中花费所有时间的线程。 jetty 延续 API 和较新的 servlet 3.0 支持提供了将线程释放回主线程池的机制,以便它们可以花时间接受和处理其他请求。

显然,还有更多与 nio api 的使用以及 jetty 如何有效管理所有这些内容相关的内容,但这可能足以解决您最初的问题。如果没有,请随时仔细阅读 jetty 文档(http://www.eclipse.org/jetty/documentation/current http://www.eclipse.org/jetty/documentation/current)或查看 jetty 邮件列表。 Webtide 的博客中对 jetty-9 优化进行了一些讨论,因为它与 http、spdy 和 websocket 连接处理和处理相关(http://webtide.com/blogs http://webtide.com/blogs).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jetty如何处理多个请求 的相关文章

随机推荐