今天,我們使用通用的應用程序或者類庫來實現互相通訊,比如,我們經常使用一個 HTTP 客戶端庫來從 web 服務器上獲取信息,或者通過 web 服務來執(zhí)行一個遠程的調用。
然而,有時候一個通用的協(xié)議或他的實現并沒有很好的滿足需求。比如我們無法使用一個通用的 HTTP 服務器來處理大文件、電子郵件以及近實時消息,比如金融信息和多人游戲數據。我們需要一個高度優(yōu)化的協(xié)議來處理一些特殊的場景。例如你可能想實現一個優(yōu)化了的 Ajax 的聊天應用、媒體流傳輸或者是大文件傳輸器,你甚至可以自己設計和實現一個全新的協(xié)議來準確地實現你的需求。
另一個不可避免的情況是當你不得不處理遺留的專有協(xié)議來確保與舊系統(tǒng)的互操作性。在這種情況下,重要的是我們如何才能快速實現協(xié)議而不犧牲應用的穩(wěn)定性和性能。
Netty 是一個提供 asynchronous event-driven
(異步事件驅動)的網絡應用框架,是一個用以快速開發(fā)高性能、高可靠性協(xié)議的服務器和客戶端。
換句話說,Netty
是一個 NIO
客戶端服務器框架,使用它可以快速簡單地開發(fā)網絡應用程序,比如服務器和客戶端的協(xié)議。Netty
大大簡化了網絡程序的開發(fā)過程比如 TCP
和 UDP
的 socket
服務的開發(fā)。
“快速和簡單”并不意味著應用程序會有難維護和性能低的問題,Netty
是一個精心設計的框架,它從許多協(xié)議的實現中吸收了很多的經驗比如 FTP
、SMTP
、HTTP
、許多二進制和基于文本的傳統(tǒng)協(xié)議.因此,Netty
已經成功地找到一個方式,在不失靈活性的前提下來實現開發(fā)的簡易性,高性能,穩(wěn)定性。
有一些用戶可能已經發(fā)現其他的一些網絡框架也聲稱自己有同樣的優(yōu)勢,所以你可能會問是 Netty
和它們的不同之處。答案就是 Netty
的哲學設計理念。Netty
從開始就為用戶提供了用戶體驗最好的 API
以及實現設計。正是因為 Netty
的哲學設計理念,才讓您得以輕松地閱讀本指南并使用 Netty
。
更多建議: