初识Netty

刚开始接触Netty,以下是来自Netty官网的介绍。

Netty 是一个异步事件驱动的网络应用框架,为快速开发可维护的高性能协议服务器和客户端程序而生。

Netty 是一个 NIO(New I/O 的缩写吗?)客户端服务端框架,它使我们开发像协议服务器和客户端类的网络应用变得快速且容易。它极大地简化了 TCP/UDP 套接字服务器的网络编程。
“快速且容易”并不意味着会导致维护或性能问题。Netty 是在充分考虑了大量的网络协议如 FTP,SMTP,HTTP 和 大量的历史遗留的基于二进制和基于文本的协议之后被设计出来的。因此,Netty 成功地实现了易开发、高性能、高稳定性、强可伸缩性这些优点。

Netty 架构图

特性

设计

  • 对于各种各样的传输类型-阻塞型 socket 和非阻塞型 socket,都是统一的 API
  • 基于一个可伸缩和可扩展的事件模型,可以清晰的做到关注点分离
  • 高度可定制化的线程模型-单线程,或者一个或多个像 SEDA 类的线程池
  • 真正地无连接数据报 socket 支持(自从 3.1 之后)

简单易用

  • 丰富的文档,用户指南和大量的例子
  • 没有额外的依赖,JDK5(Netty 3.x)或6(Netty 4.x)足够

性能

  • 高吞吐量,低延迟
  • 资源消耗低
  • 最小化地非必要内存拷贝

安全

  • SSL/TLS 和 StartTLS 完美支持

社区

  • 早发布,常发布
  • 作者从 2003 年开始一直在写类似的框架,并且他很期待你们宝贵的反馈