簡述
前些天覺得該庫名稱太長,改了一個簡單的名稱KonsanNet。
本版本已經基本完成大部分功能,已經可以用於常見的場景,此後先暫停一段時間,最近事情比較多,難有閒暇。
源碼地址
GitHub:https://github.com/KonsanAlide/KonsanNet
更新內容
增加任務池CXTask
增加任務的池化運行,可以把耗時長的運算放入任務池中運行,比如壓縮,比如加密,比如建立和第三方的TCP連接,比如遠程數據庫訪問,等等。
增加線程池
增加線程池,用於統一管理線程,避免反覆創建銷燬。也以用於後續動態地增減各層的線程的運行數量,以在線的調整服務端的性能。
增加狀態機邏輯到RPC對象
增加狀態機邏輯到RPC對象中,用於異步的訪問遠程或者第三方的對象,以正確的異步接收遠程請求的回饋並繼續下一步。
增加RPC消息格式化輸出和統計
- 把RPC對象的消息處理後把消息格式化輸出到journal 日誌
- 統計消息處理耗時,輸出到log日誌
壓縮加密相關
使用開源庫cryptocpp和snappy進行RSA、Blowfish加密,和進行snappy、gzip、zlib等壓縮。測試下來,發現RSA耗時非常久,壓縮500KB的數據就要十幾秒,只適用用於關鍵性數據的傳輸。有時間再測試下其他的非對稱加密算法吧。
增加RPC客戶端
在服務端增加連接池,增加RPC客戶端,用於異步訪問遠程的RPC對象。鏈接池主要是用於對向遠程進程發起的TCP連接的管理和複用,特別是針對單請求非持續性的遠程對象的訪問。同時用於控制對遠程進程的連接數管理。
其它
後面剩餘一些功能要慢些增加:
- 增加服務端的各模塊參數外部配置和熱加載
- 增加像protocol buf那樣的便捷的產生包結構和測試的庫。
- 增加消息處理超時處理。
- 增加服務端的RPC客戶端的請求耗時統計和輸出。