夜光帶你走進Java架構師必備知識點(18)高級程序員

夜光序言:

 

生活不可能像你想象得那麼好,但也不會像你想象地那麼糟。我覺得人的脆弱和堅強都超乎自己的想象。

 

 

 

 

 

 

 

 

正文:二十七、Netty

1.什麼是Netty?

Netty是高性能事件驅動、異步非阻塞的java開源框架。

Netty基於NIO的客戶端,服務端的編程框架,具有穩定性和伸縮性。

 


2.Netty的使用場景

高性能領域

多線程併發領域

異步通信領域

 


3.IO通信

1.BIO通信

一個線程負責連接

一請求一應答

缺乏彈性伸縮能力

2.僞異步IO通信

線程池負責連接

M請求N應答

線程池阻塞

3.NIO通信

緩衝區buffer

通道channel

多路複用器selector

4.AIO通信

連接註冊讀寫事件和回調函數

讀寫方法異步

主動通知程序

 


4.原生NIO的缺陷

類庫和API繁雜

入門門檻高

工作量和難度大

JDK NIO存在BUG

 

 


5.Netty的優勢

API簡單

入門門檻低

性能高

成熟、穩定

 

 

 


6.什麼是webSocket?

H5協議規範、握手機制,解決客戶端與服務端實時通信而產生的技術

 

 


7.webSocket的優勢

節省通信開銷

服務器主動傳送數據給客戶端

實時通信

 

 


8.webSocket建立連接

1.客戶端發起握手請求

2.服務端端響應請求

3.連接建立

 

 


9.webSocket生命週期

 

1.打開事件

2.消息事件

3.錯誤事件

4.關閉事件

 


10.webSocket連接關閉

服務器關閉底層TCP連接

客戶端發起TCP close

 


11.Netty實現webSocket通信

1.Netty開發服務端

2.HTML實現客戶端

3.實現服務端與客戶端的實時交互

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章