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