注:本文翻译自Netty官方网站,地址: https://netty.io/
Netty介绍
Netty是一个异步事件驱动的网络应用框架,可以快速开发易维护的高性能协议服务器和客户端。
Netty是一个NIO的客户端服务器框架,可以快速和简单开发网络应用(比如开发协议的服务器和客户端),大大简化并提高了网络编程的效率(比如开发TCP和UDP socket 服务器)。“快和简单”并不意味着基于Netty所开发的应用会有性能和维护性的问题。Netty从实现很多的协议中获得很多的经验,比如FTP、SMTP、HTTP、许多二进制和text-based遗留(legacy)协议。因此,Netty已经成功的找到了一条道路,达到了开发的简单性、性能、稳定性和扩展性的平衡,不需要任何一方面的妥协。
特性
Netty为了提供最好的网络应用开发经验,从头开始进行了设计和编写:
设计
- 对于多样的传输类型拥有统一的API - 阻塞的和非阻塞的socket。
- 基于灵活和易于扩展的事件驱动模型
- 高度自定义的线程模型-单线程,一个或者多个线程池,例如SEDA
- 真正的无连接 datagram socket支持。(从3.1开始)
易用性
- 完善的文档支持:Javadoc、用户指南和实例。
- 除了依赖JDK1.5(或者以上)包之外,不依赖额外的包。
性能
- 低延迟、更好的吞吐率
- 更少的资源消耗
- 最小化不必要的内存拷贝
健壮性
- 不再有 由于快速、慢或者过载连接导致的OutOfMemoryError。
- 不再有高速网络下的NIO应用存在的不公平读/写比问题。
安全
- 完善的SSL/TLS和StartTLS支持。
- 在限制的环境中比如Applet可以很好的运行。