Netty 非同步任務模型 及 Future-Listener 機制

飞翔在天發表於2024-08-20

https://cloud.tencent.com/developer/article/2246990

  • 一、 Netty 模型
  • 二、 非同步模型
  • 三、 Future-Listener 機制
  • 四、 Future-Listener 機制程式碼示例

伺服器端為例

1 . 執行緒池 : Netty 模型核心就是兩個執行緒池 , BossGroup 執行緒池 和 WorkerGroup 執行緒池 ;

① BossGroup 執行緒池 : 負責維護客戶端連線操作 ;

② WorkerGroup 執行緒池 : 負責與客戶端進行資料互動 ;

③ 執行緒池型別 : 上述兩個執行緒池 ( BossGroup / WorkerGroup ) 都是 NioEventLoopGroup 型別的 ;

④ 執行緒池中的執行緒 : NioEventLoopGroup 執行緒池中維護了多個 NioEventLoop 執行緒 ;

2 . 執行緒池中的執行緒 : NioEventLoopGroup 執行緒池中維護了若干 NioEventLoop 執行緒 , 這相當於主從反應器 ( Reactor ) 模型中的反應器 , 每個 NioEventLoop 中都有一個 選擇器 ( Selector ) , 用於監聽 Socket IO 事件 , 如 建立連線 , 資料讀寫 等 ;

3 . NioEventLoop 工作流程 :

NioEventLoop 中可以按照一定順序進行資料處理 , 如資料到來後 , 按照下面的流程執行一系列操作 ;

讀取資料 -> 資料解碼 -> 業務邏輯處理 -> 資料編碼 -> 資料傳送

4 . NioEventLoop 中封裝內容 :

  • 選擇器 Selector
  • 任務佇列 TaskQueue
  • 排程任務佇列 ScheduleTaskQueue
  • NIO 通道 NioChannel
  • 管道 ChannelPipeline

相關文章