一直想搞明白Netty也嘗試去看過NIO芹橡,Netty相關(guān)的書籍,都沒堅持下來比較枯燥望伦,作者用通俗易懂的方式幫助讀者如何讀懂Netty林说,我認(rèn)為是最點睛之筆
1、剛開始從操作系統(tǒng)(內(nèi)核態(tài))屯伞、應(yīng)用進(jìn)程(用戶態(tài))之間的IO讀寫腿箩,作為基礎(chǔ)理論幫助讀者認(rèn)識底層流程是怎么走的。
2愕掏、傳統(tǒng)IO讀寫有那些問題度秘,進(jìn)化到NIO優(yōu)化了那些問題,以及講了NIO的核心組件Buffer(緩沖區(qū))、 Channel(管道)剑梳、 Selector(選擇器)這章節(jié)非常重要唆貌!非常重要!非常重要垢乙!锨咙。
3、講了基于NIO設(shè)計出來的Reactor反應(yīng)堆模式 核心設(shè)計思想, 包括單線程與多線程的演進(jìn)性能方面提升了那些追逮,我感覺Reactor就是Netty的雛形酪刀,讀者這章節(jié)讀懂了,Netty的核心思想也基本也有了钮孵。也為接下來的章節(jié)打下了基礎(chǔ)骂倘,所以這段基礎(chǔ)一定要讀懂。非常重要巴席!非常重要历涝!
4、講了傳統(tǒng)異步回調(diào)有什么樣的問題漾唉,google Guava異步回調(diào)以及Netty異步回調(diào) 之間的對比與優(yōu)化荧库,這章節(jié)也非常重要Netty框架絕大多數(shù)場景使用的都是異步回調(diào)。
5赵刑、講了Netty基本使用方式分衫,比較核心的概念就是Pipeline流水線處理。這個點很像Reactor中的attach/attachment組合升級版(讀到這里你會發(fā)現(xiàn)Netty與Reactor很多共同之處般此,讀起來也簡單許多)蚪战,包括對Nio byteBuf封裝的加強(qiáng)版 也有講到,其他的讀者也可以看看官方案例 API還是講的很細(xì)的恤煞。
6屎勘、粘包、拆包這塊講的比較細(xì)居扒,包括解決方案概漱,包括底層什么原因?qū)е抡嘲⒉鸢参梗碚撝R比較值得多讀章節(jié)瓤摧。
7、Zookeeper 基礎(chǔ)理論存儲方式玉吁、核心組件大概有講到包括包括Watcher監(jiān)聽通知照弥,InterProcessMutex重入鎖實現(xiàn)分布式鎖。Cutator主流客戶端进副。
8这揣、Redis版本就講的比較基礎(chǔ)適合入門使用吧悔常。
9、這本結(jié)合所有知識點给赞,做了個開發(fā)實踐demo机打,我理解是思路版本的,作者還是很用心幫助大家去深入理解 實戰(zhàn)如何使用這些組件片迅,當(dāng)然讓我印象最深刻的残邀、學(xué)習(xí)更多的還是1~5章節(jié),讓我有了基礎(chǔ)框架柑蛇,更好的理解Netty 芥挣。
最后:要是作者能夠在講講select/poll/epoll 之間的缺優(yōu)點與演進(jìn)就更好的,因為 高路復(fù)用為什么快耻台,還是受限于底層使用什么模型空免,以及系統(tǒng)句柄數(shù),內(nèi)存粘我。如果是selelct相對于epoll就要慢鼓蜒,因為底層存儲數(shù)據(jù)結(jié)構(gòu)不一樣。
總結(jié)筆記腦圖地址:https://www.processon.com/view/5fde11f5e401fd5bc83706a4#map