面試題你瞭解多少?阿里的Netty到底又有多牛逼?

面試題你瞭解多少?阿里的Netty到底又有多牛逼?
前言
Netty 是一個能夠快速開發網絡應用程序的 NIO 框架,它大大簡化了 TCP 或者 UDP 服務器的網絡編程。Netty 的簡易和快速開發並不意味着由它開發的程序將失去可維護性或者存在性能問題,它的設計參考了許多協議的實現,好比 FTP,SMTP,HTTP 和各類二進制和基於文本的傳統協議,所以 Netty 成功的實現了兼顧快速開發,性能,穩定性,靈活性爲一體,不須要爲了考慮一方面緣由而妥協其餘方面。Netty 的應用仍是比較普遍的,好比阿里巴巴開源的 Dubbo 和 Sofa-Bolt 框架底層網絡通信都是基於 Netty 來實現的。面試

經過本文所說到的關於netty的學習問題和麪試問題來講說如何學習高性能netty框架及一些重要知識點!sql

Netty基礎相關問題
講講Netty的特色?編程

BIO、NIO和AIO的區別?瀏覽器

NIO的組成是什麼?服務器

如何使用 Java NIO 搭建簡單的客戶端與服務端實現網絡通信?網絡

如何使用 Netty 搭建簡單的客戶端與服務端實現網絡通信?架構

講講Netty 底層操做與 Java NIO 操做對應關係?併發

Channel 與 Socket是什麼關係,Channel 與 EventLoop是什麼關係,Channel 與 ChannelPipeline是什麼關係?框架

EventLoop與EventLoopGroup 是什麼關係?分佈式

說說Netty 中幾個重要的對象是什麼,它們之間的關係是什麼?

Netty 的線程模型是什麼?

粘包與半包和分隔符相關問題
什麼是粘包與半包問題?

粘包與半包爲什麼會出現?

如何避免粘包與半包問題?

如何使用包定長 FixedLengthFrameDecoder 解決粘包與半包問題?原理是什麼?

如何使用包分隔符 DelimiterBasedFrameDecoder 解決粘包與半包問題?原理是什麼?

Dubbo 在使用 Netty 做爲網絡通信時候是如何避免粘包與半包問題?

Netty框架自己存在粘包半包問題?

何時須要考慮粘包與半包問題?

WebSocket 協議開發相關問題
講講如何實現 WebSocket 長鏈接?

講講WebSocket 幀結構的理解?

瀏覽器、服務器對 WebSocket 的支持狀況

如何使用 WebSocket 接收和發送廣本信息?

如何使用 WebSocket 接收和發送二進制信息?

Netty源碼分析相關問題
服務端如何進行初始化?

什麼時候接受客戶端請求?

什麼時候註冊接受 Socket 並註冊到對應的 EventLoop 管理的 Selector ?

客戶端如何進行初始化?

什麼時候建立的 DefaultChannelPipeline ?

講講Netty的零拷貝?

如何正確系統的學習Netty框架
要理解框架的底層的原理,要掌握的就是最經常使用的原理。框架就是輔助咱們開發的已經完成的一部分代碼,幫助咱們實現了一部分的功能,咱們主要掌握的其實就是框架的內部原理,也就是框架給咱們規定的一些內部的規定,有了這些規定就能夠高效的開發咱們的代碼,按照規定辦事效率會有很大的提升。其實不少的時候咱們並無注意這些東西,一個功能能夠用不少的方法來實現,可是咱們按照框架給咱們規定的規則去實現的話應該是咱們比較正確的一種選擇。所以分享一份系統學習Netty框架的知識思惟導圖給有須要的朋友,但願能對大家有所幫助!

最後針對思惟導圖,小編根據多年的經驗也整理了一套視頻資料

(包括Kafka、Mysql、Tomcat、Docker、MyBatis、Nginx、Netty、Dubbo、Redis、Spring cloud、分佈式、高併發、性能調優、微服務)

資料領取方式:加QQ羣159976092,進羣既領取資料!

點擊連接加入羣聊【Java架構 專業交流學習】:https://jq.qq.com/?_wv=1027&k=544O16F

相關文章
相關標籤/搜索