Netty 這個框架,無論是國內還是國外各大互聯網公司的必備的網絡應用框架。既然是網絡應用框架,那麼它處理的一般是與網絡相關的應用。由於Netty 本身在設計上的實現方式以及對協議的實現,使得它得到大家的廣泛的應用。無論是傳統的基於網絡HTTP的、還是基於底層socket的,另外還可以支持HTML5規範中新的標準,關於長連接websocket的規範;netty都提供了非常好的支撐。

      在面試的時候,Netty可能也會是各大互聯網公司會提及的對象。大多會與併發有關,而且基礎知識較多。

      Netty的官網:https://netty.io/

1、官網定義: Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

netty本身是一個

①、異步:

        當我們執行完一個回調或執行完一個處理邏輯之後,這個邏輯到底完成沒有,是不一定的。他要通過一個相應的回調或是通過監聽器來實現後續的一些邏輯的判斷。

        例如:把一條消息已響應的方式發送給用户,那麼這個消息發送出去之後呢,流程是立刻就返回了,並且繼續往下去執行。但是這個消息是不是真正的到達了客户端,是不一定的。他是通過一個相應的監聽器作為一個回調的方式,根據不同的狀態判斷這個消息是真的發送出去了還是在處理過程中出現了異常等等,都是通過監聽器的方式在進一步做判斷的。

②、事件驅動:

        對於Netty來説,它本身實現了很多協議。那麼這些協議都是由一個一個階段來構成的。例如使用websocket這種長連接的方式,讓客户端和服務器端能在一個持續連接上進行雙向的數據通信。實際上就是雙工的網絡通信。對於這種方式來説,實際上websocket是基於HTTP的。首先,對於客户端來説,要發出一個HTTP請求,請求之後呢,會升級到一個websocket的協議上,連接建立好之後,客户端與服務器端會進行一個雙向的數據通信。

        那麼在整個過程中,實際上會發生很多事情,而這些事情本身就對應一個一個的事件。而Netty是根據協議的規範,將這些事件一個個都抽取出來形成一個個的回調方法;而開發者只需要去處理相關的回調方法即可。

      總結:事件驅動實際上就是將一個一個的事件抽取出來,然後將這些事件映射到對應的一個一個的回調方法上。那麼,當這些事件一旦發生之後,對應的回調方法就會立即得到調用,並且進行一個執行。

注:雙工通信,websocket基於TCP雙向全雙工進行消息傳遞。在同一時刻,既可以發送消息,也可以接受消息。

③、網絡框架。

2、應用的協議和特點

                                  

netty jar包國內鏡像_#簡介