久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Netty基本組件介紹

      Netty做為一款用于搭建高性能網(wǎng)絡(luò)應(yīng)用程序的高級框架,由以下幾個主要構(gòu)件組成:

      一、Channel

      Channel 是java NIO的一個基本構(gòu)造,可以把channel看作是傳入或者傳出的數(shù)據(jù)載體,可以被打開或者關(guān)閉,連接或者斷開連接。簡單來說其實就是我們平常網(wǎng)絡(luò)編程中經(jīng)常使用的socket套接字對象。

       

      二、EventLoop

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

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

      2、一個EventLoop在它的生命周期內(nèi)只和一個Thread綁定;

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

      4、一個Channel在它的生命周期內(nèi)只注冊于一個EventLoop;

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

      其實我們可以簡單的把EventLoop及其相關(guān)的實現(xiàn)NioEventLoop、NioEventLoopGroup等理解為netty針對我們網(wǎng)絡(luò)編程時創(chuàng)建的多線程進(jìn)行了封裝和優(yōu)化,構(gòu)建了自己的線程模型。

      三、ChannelHandler和ChannelPipeline

      ChannelHandler其實就是用于負(fù)責(zé)處理接收和發(fā)送數(shù)據(jù)的的業(yè)務(wù)邏輯,Netty中可以注冊多個handler,以鏈?zhǔn)降姆绞竭M(jìn)行處理,根據(jù)繼承接口的不同,實現(xiàn)的順序也不同。

      1、ChannelInboundHandler:對接收的信息進(jìn)行處理。一般用來執(zhí)行解碼、讀取客戶端數(shù)據(jù)、進(jìn)行業(yè)務(wù)處理等。如ByteToMessageDecoder;

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

      而ChannelPipeline為ChannelHandler鏈提供了容器。

      四、ByteBuf

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

      總結(jié):

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

      Netty基本組件介紹

      本章參考資料:《Netty實戰(zhàn)》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號