Netty概述
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框架构建。
Netty 利用 Java 高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 构建一个客户端/服务端,其具有高并发、传输快、封装好等特点。
高并发
Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,对比于BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高 。
传输快
Netty的传输快其实也是依赖了NIO的一个特性——零拷贝。
封装好
Netty封装了NIO操作的很多细节,提供易于使用的API,还有心跳、重连机制、拆包粘包方案等特性,使开发者能能够快速高效的构建一个稳健的高并发应用。
Netty框架
Netty项目致力于提供一个异步的、事件驱动的网络应用框架和工具,用于快速开发可维护的、高性能的、高扩展性的服务器和客户端之间的协议。换句话说,Netty式一个NIO客户端服务器框架,能够快速、轻松地开发网络应用例如服务器和客户端间的协议。它简化了网络编程如TCP/IP socket服务器。
JBOSSes Netty的设计吸取了大量的协议如FTP、SMTP、HTTP和各种二进制、基于文本的继承协议等协议的设计经验,成功地找到了一种方法实现易于开发、性能、稳定、灵活的协议开发。
标题特征:
Netty为用户提供了很多创新和更好的网络开发体验。
1)设计Design
为各种传输类型(块和非块socket)提供了统一的API;
建立在灵活和可扩展的事件模型;
高度可定制的线程模式——单线程,一个或多个线程池(如SEDA);
可信的五连接数据报socket支持。
2)易于使用
良好文档化的Javadoc、用户向导和例子;
结构并不臃肿;
无其它的依赖,只需JDK1.5或以上。
3)性能
高吞吐量、低延迟时间;
很小的资源消耗;
最小化不必要的内存复制。
4)健壮性
不会因为快速连接、慢速连接或超载连接引起OutOfMemoryError错误;
高速网络下不会引起NIO程序的读写异常。
5)安全
完全支持SSL/TLS和StartTLS;
在Java Applet环境下运行正常。
6)社区
至少每两周一个版本发布。
项目主页: http://www.jboss.org/netty/
文档地址: http://www.jboss.org/netty/documentation.html
下载地址: http://www.jboss.org/netty/downloads.html