完整項目:通訊框架+業務邏輯框架
【項目內容】
(1)項目是非常完整的多線程高併發服務器程序
(2)按照包頭+包體格式收,完美的解決了數據粘包的問題
(3)根據收到的數據包來執行不同的業務邏輯
(4)把業務處理產生的結果數據包正確的返回給客戶端
【用到的主要開發技術】
(1)epoll高併發通訊技術,用的是水平觸發模式【LT】,簡單提及邊緣觸發模式【ET】
(2)通過線程池技術處理業務邏輯
(3)多線程,線程之間的同步技術包括互斥量、信號量等等
(4)次要技術:信號,日誌打印,fork()創建子進程,守護進程怎麼寫
【借鑑了官方nginx哪些精華代碼】
(1)一個master進程,多個worker進程的 進程框架;
(2)epoll實現代碼,但官方epoll的觸發模式用的是ET【我們的項目用的是LT】
(3)借鑑了官方nginx的接收數據包以及發送數據包的核心代碼;
【哪些是我們沒有借鑑官方nginx而獨立實現的代碼】
(1)epoll LT模式;
(2)自己寫了一套線程池來處理業務邏輯,調用適當的業務邏輯處理函數,直至處理完畢把數據發送回客戶端;
(3)連接池中的連接的延遲迴收(精華技術);
(4)專門處理數據發送的一整套數據發送邏輯以及發送線程。