Netty是由JBOSS提供给的一个java开源框架。Netty提供异步的、事件驱动的网络应用框架和工具,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty在消息处理上使用责任链模式,用户可以轻松方便的对它进行扩展。官方也提供了大量的优秀的扩展。
也就是说,Netty是一个基于NIO的客户端、服务器端编程框架,使用Netty可以确保你快速和简单地开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。
“快速”和“简单”并不用产生维护性或性能上的问题。Netty是一个吸收了多种协议的实现经验,这些协议包括FTP、SMTP、HTTP、各种二进制、文本协议,并经过相当精心设计的项目,最终,Netty成功地找到了一种方式,在保证易于开发的同时还保证其应用的性能、稳定性和伸缩性。
Netty从4.x版本开始,需要使用JDK1.6及以上版本提供基础支撑。
在设计上,针对多种传输类型的统一接口,采用简单但更强大的线程模型。
在性能上,比核心Java API更好的吞吐量,较低的延时,资源消耗更少,这个得益于共享池和重用,减少内存拷贝。
在健壮性上,消除由于慢、快或重连接产生的OutOfMemoryError。
在安全上,完整的SSL/TLS和StartTLS的支持。
后续文章中使用的版本是Netty4.1。
对于一个新手,建议先将相关的API通读下,便于理解相关代码。