高性能服務器程序框架

服務器主要包括如下三個主要模塊:
I/O處理單元,四種I/O模型和兩種高效事件處理方式

邏輯單元,邏輯單元的高效併發方式

存儲單元,服務器的可選模塊

服務器模型

C/S模型:所有客戶端都通過訪問服務器來獲取所需的資源

C/S模型的運行邏輯:
服務器啓動後,首先創建一個或多個監聽socket,並調用bind函數將其綁定到服務器感興趣的端口上,然後調用listen函數等待客戶連接。

服務器穩定運行後,客戶端就可以調用connect()函數向服務器發起連接了,由於客戶連接請求是隨機到達的異步事件,服務器需要使用某種I/O模型來監聽這一事件

下圖中使用的是I/O多路複用技術之一的select系統調用。當監聽到連接請求後,服務器就調用accept函數接受它,並分配一個邏輯單元爲新的連接服務(子線程或者子進程),邏輯單元讀取客戶請求並處理該請求,然後將處理結果返回給客戶端。此時客戶端可以繼續向服務器發送請求,也可以立即向服務器主動關閉連接。如果客戶端主動關閉連接,則服務器執行被動關閉連接,至此,雙方通信結束。注意,服務器在處理一個客戶請求的同時還會監聽其他客戶的請求。服務器同時監聽多個客戶請求是通過select系統調用實現的。

C/S模型適合資源相對集中的場合,但當訪問量過大時,所有客戶端都會得到很慢的相應。

P2P模式解決了這個問題,,待續,,,

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章