jetty如何处理多个请求

Ank*_*gra 28 jetty

我使用jetty/tomcat应用程序服务器的弹簧网络应用程序已经使用了大约两年了,但是我不知道的是如何在这些服务器中处理多个请求.我知道春天有助于制作单身,但我的理解仅限于此.有人可以指向任何可以帮助我理解如何处理多个请求的好资源.

jes*_*ell 34

这可以在很多层面上得到解答,我已经盯着它看了两天试图弄清楚它是如何回答的...所以我会对它进行一次高水平的拍摄.

有一个jetty侦听的服务器端口和一些接受器线程,它们的作用是获取客户端和服务器端之间建立的连接对象.一旦你有了这个连接,它就可以通过jetty处理程序体系结构进行身份验证,或者拉出会话ID并将会话对象附加到请求中.然后它进入servlet处理程序并找到相应的servlet,然后开始处理servlet-api.此时,您在servlet-api中的所有时间都有一个线程分配给您的请求,至少在servlet 2.5下.在servlet 3.0中,您可以使用一些异步机制,或者您可以使用jetty-continuations作为在servlet 2.5 api上获得异步支持的方法.

无论如何,服务器使用一个线程池来为这些连接器分配线程,这些连接器最终是花在servlet-api上的所有时间的线程.jetty continuation api和较新的servlet 3.0支持提供了将线程释放回主线程池的机制,因此他们可以花时间接受和处理其他请求.

显然有很多更下正在进行的覆盖有关NIO API的使用情况,以及如何码头有效地管理所有的这些东西,但也许这是足以沙爹您最初的问题.如果没有,请随意浏览jetty文档(http://www.eclipse.org/jetty/documentation/current)或查看jetty邮件列表.关于jetty-9优化已有一些讨论,因为它与Webtide(http://webtide.com/blogs)博客中的http,spdy和websocket连接处理和处理有关.