大家都用 Netty,為什么不用Java NIO?

Java 1.4起,jdk支持了NIO(NEW IO),因NIO(os nonblocking)的非阻塞式工作方式,讓應(yīng)用服務(wù)器可以極大的優(yōu)化線程模型,相比傳統(tǒng)的阻塞式IO線程和鏈路一對一的模式,NIO只需少量的線程即可處理所有的鏈路,這對廣大的java開發(fā)者來說是一大福音,基于NIO能開發(fā)出更高效的網(wǎng)絡(luò)應(yīng)用。
然而使用JDK原生的api開發(fā)NIO,編程模型是非常復(fù)雜的,開發(fā)者需要理解Selector、Channel、ByteBuffer三大組件,此外JDK原生NIO實現(xiàn)上還存在一些穩(wěn)定性問題。netty把三大組件交互代碼封裝在框架內(nèi)部有效的簡化了編程模型讓使用者能夠更高效的開發(fā)出NIO網(wǎng)絡(luò)應(yīng)用,保障了系統(tǒng)的穩(wěn)定性。
但是伴隨新的問題到來,對于開發(fā)者,框架是易于使用的,屏蔽了底層細節(jié),換來的是對原理的深入理解不夠,對性能調(diào)優(yōu)和理論的淡化,在很多優(yōu)秀的線上產(chǎn)品dubbo、spark、zookeeper、elasticSearch等等,使用了netty作為底層通信IO框架支持后,對于netty的原理,底層原理的關(guān)注越發(fā)急迫,這在面試環(huán)節(jié)尤為突出。


圖不清楚,沒關(guān)系掃下方二維碼,領(lǐng)取高清圖片
? ? ? ?
不慌,劃重點:
最近棧長得知【馬士兵教育】要開一期關(guān)于【Netty底層】的訓(xùn)練營!
馬士兵是誰?
馬士兵

馬士兵老師,清華大學(xué),推動Java生根中國,推動大數(shù)據(jù)生根中國,推動AI生根中國,視頻課程下載次數(shù)累計數(shù)27000萬次。
訓(xùn)練營時間:
6月10日-6月11日,20:00訓(xùn)練營全程直播,本號粉絲只需2分錢,學(xué)前必看預(yù)習(xí)資料。
開營前:發(fā)放預(yù)習(xí)的基礎(chǔ)資料《TCP/IP網(wǎng)絡(luò)通信原理》長按掃碼,領(lǐng)預(yù)習(xí)資料,入群參與僅限前200人第一天:
操作系統(tǒng)中的BIO/NIO/SELECT/POLL/EPOLL實現(xiàn)
JDK中的NIO是什么
什么是selector、bytebuffer、channel
netty的reactor模型原理
netty中使用了那些"NIO"
Eventloopgroup、pipeline、handler是啥
netty如何解決粘包拆包
訓(xùn)練營時間:6月10日-6月11日,20:00訓(xùn)練營全程線上直播,只需2分錢,提前預(yù)習(xí)資料吸收更快!
掃碼領(lǐng)預(yù)習(xí)資料,僅限前200名
(內(nèi)容的價值取決于您的行動,千萬莫做收藏家)
參加直播課,還有機會領(lǐng)取大獎,獎品有:

再強調(diào)一遍,掃碼:(1)免費領(lǐng)預(yù)習(xí)資料;(2)參與小游戲,得《多線程與高并發(fā)》書籍;(3)參與直播課程,免費抽大獎;
掃碼領(lǐng)預(yù)習(xí)資料,僅限前200名遇到掃碼頻繁,請在識別一次
(內(nèi)容的價值取決于您的行動,千萬莫做收藏家)
掃上方“二維碼”,0.02元購課,4個小時,值得?。。?/span>
