I've setup a Github rep for this. Please run following commands - git clone [email protected]:gauravphoenix/jetty91asyncIO.git cd jetty91asyncIO/jettyTest/ mvn package java -Dlog4j.configurationFile=./src/main/resources/log4j.xml -jar target/jettyTest-1.0-SNAPSHOT.jar
Now, change your browser proxy to localhost:80. As you can see, the in the code, it acts as a simple HTTP proxy. If you visit any website (not HTTPS, only HTTP site), you can see first few requests go just fine through proxy but after that nothing really happens. If you try to download a single large file (I've tested with 500+ MB file) it works just fine. So my hunch is that it is the number of requests which matter and not size of data written back to the client. Also, as you can see I'm NOT using async processing- just simple async IO. Note that if I don't use ASYNC IO and only async processing, everything works just fine. Just a little code walk through- RabbitHole.java (yea, that's what I call my main class :) setups up Jetty proxy. ProxyServlet.java is the servlet responsible for processing GET requests. Currently only GET is implemented SetupServletAsyncExecutor.java - you can discard this for now StandardDataStream.java - copy paste from blog<https://webtide.intalio.com/2013/07/servlet-3-1-async-io-and-jetty/> Let me know if you need any more information. Cheers, Gaurav On Sat, Nov 23, 2013 at 2:41 PM, Simone Bordet <[email protected]> wrote: > Hi, > > On Fri, Nov 22, 2013 at 11:24 AM, Gaurav Kumar <[email protected]> > wrote: > > I've been using servlet 3.0 async processing using Jetty 9.0.6.v20130930 > > quite nicely- able to handle 7k+ concurrent connections on commodity > > hardware. Now that Jetty 9.1 is GA, I'm trying to use async IO on top of > > async processing. > > > > Essentially, in my worker thread which processes async context, instead > of > > directly writing to output stream, I've set WriteListener which in turn > > writes to output stream. The problem is that after processing few > requests, > > Jetty is not accepting new connections- it kind of hangs. Existing client > > connections eventually time out. > > > > Is there a sample code available somewhere which shows how to use async > > processing with async IO? > > > > If we take this code as an example- > https://gist.github.com/keesun/1621658, > > I'm modifying line #42 - > > asyncContext.getResponse().getWriter().printf("ticker: %s, price: %.2f", > > ticker, price); > > > > and replacing it with > > > > ServletOutputStream out = response.getOutputStream(); > > out.setWriteListener(new StandardDataStream(content,async,out)); > > > > (as mentioned in this > > example- > https://webtide.intalio.com/2013/07/servlet-3-1-async-io-and-jetty/) > > > > but as I mentioned, after processing few requests, Jetty becomes > > unresponsive. > > > > Any pointers on how to resolve this issue? > > You have a fully reproducible test that we can look at (full code) ? > > -- > Simone Bordet > ---- > http://cometd.org > http://webtide.com > http://intalio.com > Developer advice, training, services and support > from the Jetty & CometD experts. > Intalio, the modern way to build business applications. > _______________________________________________ > jetty-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/jetty-users >
_______________________________________________ jetty-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/jetty-users
