Netty 源碼(一)Netty 組件簡介

Netty 源碼(一)Netty 組件簡介

Netty 系列目錄(http://www.javashuo.com/article/p-hskusway-em.html)html

1、Netty 架構

Netty 架構

  • Core:核心部分,是底層的⽹網絡通⽤用抽象和部分實現。
    • Extensible Event Model :可拓拓展的事件模型。Netty 是基於事件模型的⽹網絡應⽤用框架。
    • Universal Communication API :通⽤用的通訊 API 層。Netty 定義了了⼀一套抽象的通⽤用通訊
      層的 API 。
    • Zero-Copy-Capable Rich Byte Buffer :⽀支持零拷⻉貝特性的 Byte Buffer 實現。
  • Transport Services:傳輸( 通訊 )服務,具體的⽹網絡傳輸的定義與實現。
    • Socket & Datagram :TCP 和 UDP 的傳輸實現。
    • HTTP Tunnel :HTTP 通道的傳輸實現。
    • In-VM Piple :JVM 內部的傳輸實現。
  • Protocol Support :協議支持。Netty 對於一些通用協議的編解碼實現。例如:HTTP、Redis、DNS 等等。

2、Netty 核心組件

Netty 有以下幾個核⼼心組件:網絡

  • Bootstrap & ServerBootstrap
  • Channel
  • ChannelFuture
  • EventLoop & EventLoopGroup
  • ChannelHandler
  • ChannelPipeline

下圖是 Channel、EventLoop、Thread、EventLoopGroup 之間的關係。架構

Channel、EventLoop、Thread、EventLoopGroup

  • 一個 EventLoopGroup 包含一個或多個 EventLoop。
  • 一個 EventLoop 在它的生命週期內只能與一個 Thread 綁定。
  • 全部有 EnventLoop 處理的 I/O 事件都將在它專有的 Thread 上被處理。
  • 一個 Channel 在它的生命週期內只能註冊與一個 EventLoop。
  • 一個EventLoop 可被分配至一個或多個 Channel 。

當一個鏈接到達時,Netty 就會註冊一個 Channel,而後從 EventLoopGroup 中分配一個 EventLoop 綁定到這個 Channel 上,在該 Channel 的整個生命週期中都是有這個綁定的 EventLoop 來服務的。框架


天天用心記錄一點點。內容也許不重要,但習慣很重要!oop

相關文章
相關標籤/搜索