blob: e7f5d0a2c022357f3fd7db51023a6207b890c049 [file] [log] [blame]
<html>
<head>
<style type='text/css'>
iframe {border: 0px}
table, tr, td {border: 0px}
</style>
</head>
<body>
<h1>Blocking vs Asynchronous REST</h1>
<p>
This demo calls the EBay WS API both synchronously and asynchronously,
to obtain items matching each of the keywords passed on the query
string. The time the request thread is held by the servlet is displayed in red for both.
</p>
<table width='100%'>
<tr>
<td>
<iframe id="f1" width='100%' height='175px' src="testSerial?items=kayak"></iframe>
</td>
<td>
<iframe id="f3" width='100%' height='175px' src="testSerial?items=mouse,beer,gnome"></iframe>
</td>
</tr>
<tr>
<td>
<iframe id="f2" width='100%' height='175px' src="testAsync?items=kayak"/></iframe>
</td>
<td>
<iframe id="f4" width='100%' height='175px' src="testAsync?items=mouse,beer,gnome"/></iframe>
</td>
</tr>
</table>
By the use of Asynchronous Servlets and the Jetty Asychronous client, the server is able to release the thread (green) while
waiting for the response from Ebay. This thread goes back into the thread pool and can service many other requests during the wait.
This greatly reduces the number of threads needed, which in turn greatly reduces the memory requirements of the server.
<p>
Press reload to see even better results after JIT and TCP/IP warmup!
</body>
</html>