一. 資料閱讀
muduo思路及原始碼分析
reactor模型
(解釋的很詳細)
(乙個具體的例子)
個人理解:
reactor的核心是乙個事件分發器,對於需要做的工作自己不會真正去做,而是將這些工作分給事件處理器去完成,事件處理器完成自己的工作以後將做完的事情再次交給分發器。這樣做的好處:(1)當有大量請求的時候,因為分發器不負責真正做任務,因此可以很快接受請求從而避免請求不被響應;(2)事件處理器只負責做自己的工作,他並不需要關心事件下一步該做什麼(比如當乙個接受連線的處理器處理完以後只需要給分發器,然後由分發器將其分給讀資料的處理器)。當你需要自己特殊的事件處理的時候只需要自定義然後去分發器註冊一下即可(自己的理解,可能是錯的)
大致流程:
事件+對應的型別——>事件類——>放入輪詢器輪訓——>得到準備好的事件類——>放入分發器——>
分配給對應的事件處理器(做完後傳回到分發器裡)
網路伺服器併發模型 關於網路伺服器
假如我有數千萬甚至是上億的使用者資料,我想把使用者自增id和使用者名稱username放到快取裡。我的需求是,當要查詢使用者的資訊時,我想先從快取裡根據使用者名稱username獲取到使用者的id,然後再通過id在資料庫裡查詢使用者的資訊。我想當乙個使用者表達到上億的數量級別時,用自增id來查詢肯定...
網路伺服器宕機
1.伺服器程序終止 當伺服器程序終止時,伺服器傳送fin給客戶端,客戶端回以ack,客戶端進入close wait狀態,但還沒有結束連線。此時客戶端阻塞於fgets,客戶端繼續傳送buffer,伺服器傳送rst,客戶端readline返回0。而如果客戶端不理睬readline返回的rst,繼續wri...
linux網路伺服器
在本次中,學習了乙個簡單的基於tcp ip的伺服器 客戶端。在例子中,利用的是af inet域。在linux下,最常用就是af inet,af unix.af unix是linux檔案系統實現的本地要借字。後面的是可以用於包括英特網在內的tcp ip網路通訊的程式。下面來看乙個簡單的基於tcp ip...