- rpc 畫圖全流程
- 服務端 dispatch 封裝接口
- boss group 組綁定不同的端口
- 網卡接收數據的底層優化
1. RPC 流程圖
2. 服務端綁定端口
第一種情況:一個 serverbootstrap 綁定一個端口
第二種情況:一個 serverbootstrap 綁定多個端口:
第三種情況:多個 serverbootstrap 綁定多個端口:
3. IO 密集型與計算密集型的模型
4. IO 模型程序的優化
提高 APP 從內核的 queue 搬運到程序進程內存數據的速度:
數據從客戶端發送到服務端後,服務端的數據處理流程:
- 數據會先進入服務端機器的網卡緩衝區,當數據接收特別頻繁時,內核會做一個暫時關閉中斷的優化,將 CPU 的時間片讓出來,直接干預數據的 DMA 拷貝
- 內核會把網卡的緩衝區數據傳輸到內核的 queue 緩存區中
- APP 程序通過調用系統的 epoll 多路複用器進行 IO 操作,會將內核的 queue 數據搬移到自己的 jvmqueue 中
系統層面已經做了數據接收的搬運,我們開發程序要做的優化的目標是儘快的從內核 queue 搬運數據到 jvmqueue,這裏就需要用到了 IO 線程與業務處理線程。
- IO 線程的工作只是負責讀取 IO 數據
- 業務線程的工作只是負責程序業務的邏輯
兩者線程各司其職,充分利用 CPU,儘快的搬移 IO 數據。