JBoss 社区最近发布了 Netty 3.1.0,为用户提供了编写客户 / 服务网络应用的另一选择。Netty 自称是:
一款异步的事件驱动的网络应用框架和工具,用于快速开发可维护的高性能、高扩展性协议服务器和客户端。也就是说,Netty 是一个 NIO 客户端 / 服务器框架,支持快速、简单地开发网络应用,如协议服务器和客户端。它极大简化了网络编程,如 TCP 和 UDP 套接字服务器。
关于 Netty 的分类,它与 Apache Mina 和 Grizzly 属于同一舞台。该最新版本包含了一系列功能和性能、API 可用性的增强。其中包括:
- 更简单的大数据流(例子)
- 更多可靠的 OutOfMemoryError 预防机制
- 新的传输
- 基于 OIO 和 NIO 的 UDP 传输
- VM 内传输
- HTTP 隧道
- 与 Google Protocol Buffers 集成
- 与 JBoss Microcontainer 、OSGI、 Guice 和 Spring 集成
HTTP 隧道功能满足了用户的迫切需求,在早期发布说明中总结到:
HTTP 隧道传输(位于 org.jboss.netty.channel.socket.http)是一种套接字传输,支持任意已经存在的套接字应用在 HTTP 之上通过代理传输。这种传输在需要越过防火墙而不修改现存服务器应用时特别有用。工作原理如下: Http 隧道客户端套接字通道 --> 对 HTTP 友好的防火墙 --> Servlet 容器 (如 Tomcat、Jetty) --> Http 隧道 Servlet --> 你的服务器应用
当然在选择一个框架用于开发网络应用时,性能和可扩展性是重要因素。Netty 团队在他们的网站上提供了性能信息。你也可以在 Apache Mina 网站上找到它的性能数据。Nicholas Hagen 发布了一系列博文,记录了他如何选择 Mina、Grizzly 或者 Netty。最终他决定选用 Netty,不过指出:
总的来说,在性能、内存和功能使用方面,我倾向于 Netty,而不是 Mina 和 Grizzly。请注意你需要通过自己的分析来决定哪种框架适合你的需求。
Netty 下一版本 3.2.0,目前正在开发过程中,路线图可以在这里查看。
查看英文原文: JBoss Netty 3.1 Released
评论