首頁>技術>

熱愛技術、樂於分享的技術人,目前主要從事資料庫相關技術的研究。

前言

在前兩篇文章中,主要講了網路 IO 的基礎知識,以及 DBLE 網路模組的原始碼分析,本篇作為 DBLE 網路模組原始碼解析的第三篇,也是最後一篇,主要對 DBLE 網路模組知識作個簡單概括及總結。

DBLE 網路模組主要涉及類圖

我們先來看下網路模組涉及到的主要類圖:

DBLE 網路模組涉及到的主要類圖如上圖所示,它們的主要功能總結如下:

NIOAcceptor:負責接受客戶端連線請求;NIOReactorPool:負責建立及獲取 NIOReactor 物件;NIOReactor:主要透過內部類 RW 來處理連線的讀寫事件,內部類 RW 中使用 Selector 實現 IO 多路複用,即能夠處理多個連線的讀寫事件;FrontendConnectionFactory:負責建立前端連線;FrontendConnection:前端連線類;SocketWR:負責單個連線的讀寫操作。

簡單來講,就是 NIOAcceptor 負責接收客戶端連線請求,然後建立前端連線 FrontendConnection,NIOReactor 則負責監聽前端連線的讀寫事件,如果有讀寫事件發生,則交給 SocketWR 進行實際網路 IO 資料的讀取,讀取到資料後續自然就是進行處理了。整個網路 IO 讀寫流程大概如此。

DBLE 網路模組概括及總結

對於中介軟體來講,網路 IO 處理既是關鍵點,同時也是難點,高效能網路 IO 處理遠比想象中的難。

DBLE 的網路 IO 模組是透過原生 JDK 純手寫的,拋開使用網路 IO 框架,更能夠讓我們看到網路 IO 處理的真實的、底層的過程。當然並不是說網路 IO 框架不好,瞭解了網路 IO 的底層原理,再看任何網路 IO 框架,你都能知其所以然,這比你單純的會用框架,肯定是不一樣的。

本系列文章總共有三篇,一篇原理介紹,一篇原始碼解析,最後一篇概括總結,透過本系列文章,希望不光光幫助大家瞭解到 DBLE 的網路處理邏輯,更能夠幫助大家瞭解更一般的網路 IO 知識,後者對大家的工作幫助肯定更大,最後希望大家能夠有所收穫。

相關推薦:

4
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 大資料開發基礎之CSS基礎知識