注:本文翻譯自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可以很好的運行。