Jean-Francois Arcand's Blog: Grizzly: An HTTP Listener Using Java Technology NIO: "Grizzly: An HTTP Listener Using Java Technology NIO
Posted by jfarcand on June 16, 2005 at 01:39 PM
Writing scalable server applications in Java technology has always been difficult. Before the advent of NIO, thread management issues made it impossible for an HTTP server to scale to thousands of users. I'm gonna start blogging on Grizzly, the HTTP Connector based on NIO shipped in GlassFish.
First, the truth: This is my first ever blog, I'm Quebecois and do a lot of typos (and speak with an ugly accent)..and I'm tempted to write in french...so there is still time to hit the back button of your browser!
For my first blog ever (and hopefully not the last), I will describe a new HTTP Connector based on NIO, called Grizzly on which I'm working on. Grizzly is currently the HTTP front-end for SJSAS PE 8.1 (throttled version), and included in the GlassFish project.
Grizzly has been designed to work on top of the Apache Tomcat Coyote HTTP Connector. The Coyote Connector is used in Tomcat 3/4/5 and has proven to be a highly performant HTTP Connector when it is time to measure raw throughput. But as other Java based HTTP Connector, scalability is always limited to the number of available threads, and when keep-alive is required, suffer the one thread per connection paradigm. Because of this, scalability is most of the time limited by the platform's maximum thread number. To solve this problem, people usually put Apache in front of Java, or use a cluster to distribute requests among multiple Java server."
The NIO based approach is exactly the paradigm shift that is required to solve the problems presented by creating scalable AJAX applications.
See also are-we-seeing-the-end-of-kitchen-sink-frameworks