最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

前言:

這些內容是我從收集的Java核心知識點的PDF裏面,分享了一小部分給大家,這知識一個很小的知識點,最近看很多朋友都在備戰春招,我也希望這份PDF可以幫助到大家,查漏補缺,鞏固自己瞭解的知識點,學習自己還不會的知識點,文末有該PDF的領取方式哦,此文檔共283頁包含30個核心知識點,帶詳細的解析,今天給大家分享的是Netty與RPC

 

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

 

1.Netty 原理

Netty 是一個高性能、異步事件驅動的 NIO 框架,基於 JAVA NIO 提供的 API 實現。它提供了TCP、UDP 和文件傳輸的支持,作爲一個異步 NIO 框架,Netty 的所有 IO 操作都是異步非阻塞的,通過 Future-Listener 機制,用戶可以方便的主動獲取或者通過通知機制獲得 IO 操作結果。

 

2.Netty 高性能

 

在 IO 編程過程中,當需要同時處理多個客戶端接入請求時,可以利用多線程或者 IO 多路複用技術進行處理。IO 多路複用技術通過把多個 IO 的阻塞複用到同一個 select 的阻塞上,從而使得系統在單線程的情況下可以同時處理多個客戶端請求。與傳統的多線程/多進程模型比,I/O 多路複用的最大優勢是系統開銷小,系統不需要創建新的額外進程或者線程,也不需要維護這些進程和線程的運行,降低了系統的維護工作量,節省了系統資源。與 Socket 類和 ServerSocket 類相對應,NIO 也提供了 SocketChannel 和 ServerSocketChannel兩種不同的套接字通道實現。

2.1多路複用通訊方式

 

Netty 架構按照 Reactor 模式設計和實現,它的服務端通信序列圖如下:

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

客戶端通信序列圖如下:

 

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

Netty 的 IO 線程 NioEventLoop 由於聚合了多路複用器 Selector,可以同時併發處理成百上千個客戶端 Channel,由於讀寫操作都是非阻塞的,這就可以充分提升 IO 線程的運行效率,避免由於頻繁 IO 阻塞導致的線程掛起。

2.2異步通訊 NIO

由於 Netty 採用了異步通信模式,一個 IO 線程可以併發處理 N 個客戶端連接和讀寫操作,這從根本上解決了傳統同步阻塞 IO 一連接一線程模型,架構的性能、彈性伸縮能力和可靠性都得到了極大的提升。

 

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

 

Netty RPC 實現

概念

RPC,即 Remote Procedure Call(遠程過程調用),調用遠程計算機上的服務,就像調用本地服務一樣。RPC 可以很好的解耦系統,如 WebService 就是一種基於 Http 協議的 RPC。這個 RPC 整體框架

如下:

 

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

關鍵技術

1.服務發佈與訂閱:服務端使用 Zookeeper 註冊服務地址,客戶端從 Zookeeper 獲取可用的服務地址。

2. 通信:使用 Netty 作爲通信框架。

3. Spring:使用 Spring 配置服務,加載 Bean,掃描註解。

4. 動態代理:客戶端使用代理模式透明化服務調用。

5. 消息編解碼:使用 Protostuff 序列化和反序列化消息。

 

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

 

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

 

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

 

讀者福利:

這些內容是我從收集的Java核心知識點的PDF裏面,分享了一小部分給大家,想了解更多的朋友可以找我領取這份詳細的Java核心知識點

領取方式:關注我的供種號(Java周某人)即可領取

 

最詳細的知識解析,看完這篇你就懂了Netty與RPC(附PDF學習資料)

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