站長資訊網
最全最豐富的資訊網站

Netty基本組件介紹

Netty做為一款用于搭建高性能網絡應用程序的高級框架,由以下幾個主要構件組成:

一、Channel

Channel 是java NIO的一個基本構造,可以把channel看作是傳入或者傳出的數據載體,可以被打開或者關閉,連接或者斷開連接。簡單來說其實就是我們平常網絡編程中經常使用的socket套接字對象。

 

二、EventLoop

EventLoop定義了Netty的核心對象,用于處理IO事件,多線程模型、并發。EventLoop及其相關的設計實現,我們這里不做深入了解。只需要暫時了解以下幾點:

1、一個EventLoopGroup包含一個或者多個EventLoop;

2、一個EventLoop在它的生命周期內只和一個Thread綁定;

3、所有有EventLoop處理的I/O事件都將在它專有的Thread上被處理;

4、一個Channel在它的生命周期內只注冊于一個EventLoop;

5、一個EventLoop可能會被分配給一個貨多個Channel;

其實我們可以簡單的把EventLoop及其相關的實現NioEventLoop、NioEventLoopGroup等理解為netty針對我們網絡編程時創建的多線程進行了封裝和優化,構建了自己的線程模型。

三、ChannelHandler和ChannelPipeline

ChannelHandler其實就是用于負責處理接收和發送數據的的業務邏輯,Netty中可以注冊多個handler,以鏈式的方式進行處理,根據繼承接口的不同,實現的順序也不同。

1、ChannelInboundHandler:對接收的信息進行處理。一般用來執行解碼、讀取客戶端數據、進行業務處理等。如ByteToMessageDecoder;

2、ChannelOutboundHandler:對發送的信息進行處理,一般用來進行編碼、發送報文到客戶端。如MessageToByteEncoder;

而ChannelPipeline為ChannelHandler鏈提供了容器。

四、ByteBuf

網絡數據的操作歸根到底是字節的操作,Netty的ByteBuf做為一個強大高效的字節容器,提供了更加豐富的API用于字節的操作,同時保持了卓越的功能性和靈活性;

總結:

以上四個做為Netty的基本組件,可以理解為Netty把我們之前網絡編程中使用到的各部分都進行了優化和高性能的封裝,對比到實際的通信流程中,可以簡單的用下圖直觀的表示

Netty基本組件介紹

本章參考資料:《Netty實戰》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产伦精品一区二区三区无广告| 国产成人精品日本亚洲专区6| 久久精品中文字幕有码| 日韩A无码AV一区二区三区| 精品人妻潮喷久久久又裸又黄| 98视频精品全部国产| 正在播放国产精品放孕妇| 久久综合精品国产二区无码| 久久久国产精品福利免费| 97精品国产福利一区二区三区| 国产精品成人99久久久久| 日本精品自产拍在线观看中文| 亚洲日韩一区二区一无码| 6080日韩午夜伦伦午夜伦| 国产精品蜜臂在线观看| 国产精品免费观看久久| 亚洲色偷精品一区二区三区| 狠狠色香婷婷久久亚洲精品| 久久精品人妻中文系列| 91人妻人人澡人人爽人人精品| 精品无码久久久久久尤物| 99久热re在线精品996热视频| 亚洲欧洲国产日韩精品| 久久久久久一品道精品免费看| 久久久国产精品福利免费 | 亚洲热线99精品视频| 91精品国产高清久久久久久io| 久久久久99精品成人片| 熟妇人妻VA精品中文字幕| 一本大道无码人妻精品专区 | 91精品国产综合久久精品| 精品亚洲视频在线观看 | 亚洲国产精品成人午夜在线观看| 99精品国产丝袜在线拍国语| 麻豆精品在线播放| 亚洲日韩精品无码专区加勒比☆| 蜜臀AV无码精品人妻色欲| 自拍偷自拍亚洲精品播放| 国产精品国产三级国产普通话一| 精品无码国产污污污免费| 国产主播福利精品一区二区|