Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] Scalability of ProxyServlet$Transparent and Tomcat

Hi,

I have set up a basic web application to try out the Transparent servlet. The relevant block of my web.xml reads:

  <servlet>
      <servlet-name>proxy</servlet-name>
      <servlet-class>org.eclipse.jetty.servlets.ProxyServlet$Transparent</servlet-class>
      <init-param>
          <param-name>ProxyTo</param-name>
          <param-value>http://localhost:8080/</param-value>
      </init-param>
      <init-param>
          <param-name>Prefix</param-name>
          <param-value>/</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
      <async-supported>true</async-supported>
  </servlet>

I'm using version 8.1.1.v20120215 of jetty-servlet, and I'm deploying to Tomcat 7.0.21.

A server is listening on http://localhost:8080/, and it takes 5 seconds to serve each request that it receives (the response is a few characters).

In my tests I'm firing several simultaneous requests to the server, proxied through the Transparent servlet. 

Now, from what I know about the Transparent, I would expect that Tomcat's HTTP thread pool doesn't limit the number of concurrent requests; as soon as a new request comes in, it should be immediately handed over to a thread of Transparent's own pool, which in turn does the proxying job using asynchronous IO. 

Instead, what I observe is that the size of Tomcat's pool IS the limit for concurrent requests. Did I misunderstand the functioning and purpose of the Transparent? Or is this just a "feature" of the combination Tomcat + Jetty servlet?

Hoping that someone will shed some light on this.

Greetings,
  Gianluca


Back to the top