jetty如何处理多个请求

jetty如何处理多个请求,jetty,Jetty,我已经使用jetty/tomcat app server使用spring web应用程序工作了大约两年,但是我仍然不知道在这些服务器中如何处理多个请求。我知道spring有助于生成单例,但我的理解仅限于此。 有人能指出什么好的资源可以帮助我理解如何处理多个请求。这可以在多个层次上得到回答,我已经盯着它看了两天,试图找出如何回答它…所以我将对它进行一次高层次的尝试 jetty监听这个服务器端口,还有一些接受线程,它们的任务是获取客户端和服务器端之间的连接对象。一旦建立了连接,它就会通过jetty处

我已经使用jetty/tomcat app server使用spring web应用程序工作了大约两年,但是我仍然不知道在这些服务器中如何处理多个请求。我知道spring有助于生成单例,但我的理解仅限于此。
有人能指出什么好的资源可以帮助我理解如何处理多个请求。

这可以在多个层次上得到回答,我已经盯着它看了两天,试图找出如何回答它…所以我将对它进行一次高层次的尝试

jetty监听这个服务器端口,还有一些接受线程,它们的任务是获取客户端和服务器端之间的连接对象。一旦建立了连接,它就会通过jetty处理程序体系结构进行验证,或者提取会话id并将会话对象附加到请求。然后它进入servlet处理程序,找到合适的servlet,然后开始处理servlet api。此时,您在ServletAPI中的所有时间都有一个线程分配给您的请求,至少在Servlet2.5中是这样。在Servlet3.0中,您可以使用一些异步机制,或者可以使用jetty continuations作为在Servlet2.5API上获得异步支持的一种方式

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


很明显,在本书中,关于NIOAPI的使用以及jetty如何有效地管理所有这些东西,还有很多事情要做,但这也许足以回答您最初的问题。如果没有,请随意阅读jetty文档()或查看jetty邮件列表。在Webtide()的博客中讨论了jetty-9优化,因为它涉及到http、spdy和websocket连接处理和处理的隐蔽性。

,同时我非常感谢您提供的见解。我仍然对一件事感到好奇。如果有一个等待执行的请求线程池,那么我在spring中编写的webapp代码中当前是否只有一个线程,或者我是否有可能拥有该代码的多个副本,并且可以服务多个请求Servlet不是线程安全的,多个线程可以通过同一个服务()或doPost()方法,“状态”由进入方法和线程本身的变量保持。虽然您可以使servlet本身具有状态,并使用synchronized和其他您通常不希望servlet是单线程的东西来管理事情,但整个想法是能够同时服务多个请求,并且您可以当你的线程阻塞像servlet这样简单的东西时,你不能这样做。@jessemcconnell在servlet 3.0中有关于切换到异步模式(以及它如何帮助减少请求数量)的文档/记录/博客吗?