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