Netty核心之Buffer(緩沖)

2018-08-03 10:57 更新

通過之前的章節(jié)我們知道byte(字節(jié))一直都是網(wǎng)絡數(shù)據(jù)的基本單位。然而Java NIO提供的字節(jié)容器ByteBuffer的作用受到限制,也沒有經(jīng)過優(yōu)化,所以使用ByteBuffer會讓事情變得繁瑣和復雜。

幸運的是,在Netty中提供了一個強大的緩沖實現(xiàn)類用來表示字節(jié)序列以及幫助你操作字節(jié)和自定義的POJO。這個新的緩沖類,ByteBuf,它的效率與JDK的ByteBuffer相當。設計ByteBuf是為了在Netty的pipeline中傳輸數(shù)據(jù)。它是為了解決ByteBuffer存在的一些問題以及滿足網(wǎng)絡程序開發(fā)者的需求,以提高他們的生產(chǎn)效率而被設計出來的。

請注意,在本書剩下的章節(jié)中,為了幫助區(qū)分,我將使用數(shù)據(jù)容器指代Netty的緩沖接口及實現(xiàn),同時仍然使用Java的緩沖API指代JDK的緩沖實現(xiàn)。

在本章中,你將會學習Netty的緩沖API,為什么它能夠超過JDK的實現(xiàn),它是如何做到這一點,以及為什么它會比JDK的實現(xiàn)更加靈活。你將會深入了解到如何在Netty框架中訪問被交換數(shù)據(jù)以及你能對它做些什么。這一章是之后章節(jié)的基礎,因為幾乎Netty框架的每一個地方都用到了緩沖。

因為數(shù)據(jù)需要經(jīng)過ChannelPipeline和ChannelHandler進行傳輸,而這又離不開緩沖,所以緩沖在Netty應用程序中是十分普遍的。我們將在第6章學習ChannelHandler和ChannelPipeline。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號