我的Netty开发
我的Netty开发
版权所有!
Netty和Mina都是异步网络通信库,两者的性能都很优秀,而且都是技术非常成熟的框架,所以精通其中一个库即可。
一、Netty介绍
Netty是一个异步事件驱动的网络应用程序框架,准确说是一个JavaNIO客户端/服务器框架,用于快速开发和维护高性能协议的服务器/客户端通信。Netty极大地简化和精简了网络编程的过程,尤其是TCP和UDP的Socket服务器编程。
Netty内部设计很严密,实现了FTP、SMTP、HTTP等协议,以及各种二进制的协议和基于文本的协议。
Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框架构建。
Netty基于Apache2.0许可证发布。
二、Netty特征
Netty的特点有:
1.设计方面
针对各种传输类型(阻塞和非阻塞的套接字)提供了统一的API
基于灵活和可扩展的事件模型,可专注于业务开发
高度可定制的线程模型——单线程、一到多个线程池(比如SEDA)
支持真正无连接的数据报套接字
2.易用性方面
有良好的JavaDoc、用户指南和实例(客观地说,文档太少)
除了JDK1.5以上,无其它依赖包
3.性能方面
更高的吞吐量、更低的延迟率
资源消耗低
不必要的内存复制尽可能少
4.安全方面
完整的支持SSL/TLS和StartTLS
可以运行于严格的环境,比如Applet或OSGi
三、Netty库的下载
Netty4.0.23Final稳定版与8月15日发布。下载地址为:
http://dl.bintray.com/netty/downloads/netty-4.0.23.Final.tar.bz2
除此之外,还有4.1的Beta版,以及5.0的Alpha版。
还可以从Maven中央仓库下载Netty,只需在POM中做如下配置:
<dependencies> ... <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.0.23.Final</version> <scope>compile</scope> </dependency> ... </dependencies>
要说明一点,Netty库需要JDK1.5以上版本的支持。
以上只是我在Netty道路上的第一步,在以后的日子里我会继续深入Netty通信库。