Netty 2 provides an easy event-based API (like Swing) to develop high-performance, maintainable TCP/IP server/client application. Netty provides many essential features such as readiness selection, thread pooling, write buffer DoS prevention, and buffer reuse which are required to build high- performance and capacity network applications.
In this release, users can catch internal or uncaught exceptions setting his or her custom ExceptionMonitor implementation and can set timeout for Session.write() to avoid deadlocks when maxQueuedWriteCount is set.
Netty 2's interesting features are: (Please request me if there should be more)
* Event-based API: Netty handles all low level I/O call
* Separation of message format and workflow
* Protocol messages are represented as classes: Protocol implementation in object-oriented way!
o Polymorphism enables 'pluggable protocol'.
o Inheritance enables 'message part hierarchy'.
* Java NIO: Better scalability
* Built-in thread pool:
o I/O and event processing threads are separated.
o All thread priorities are configurable.
* Direct byte buffer pooling: No direct buffer allocation overhead
* Customizable event dispatcher: Flexible thread scheduling
* 'Write buffer full' prevention:
o Detects too slow clients
o Throttles outgoing messages to avoid resource shortage
* JMX-compliant: Thread pools and common configuration are MBean.
* Supports Apache Jakarta Commons Logging.
Netty 2 is good for: (Please report me if there are more)
* implementing both legacy and non-legacy protocols fast but in high-quality
* implementing pluggable protocols (different message formats with one workflow)
* creating test cases both for message formats and protocol workflow