




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課時(shí)1Memcached網(wǎng)絡(luò)模型課時(shí)9互聯(lián)網(wǎng)人實(shí)戰(zhàn)大學(xué)線程狀態(tài)機(jī)狀態(tài)事件Mc命令處理01.基于Libevent的多線程網(wǎng)絡(luò)模型02.主線程接受建立連接03.工作線程讀取網(wǎng)絡(luò)IO處理并響應(yīng)網(wǎng)絡(luò)模型網(wǎng)絡(luò)模型主線程監(jiān)聽端口接受請求并調(diào)度給工作線程處理邏輯狀態(tài)機(jī)(drive_machine)連接調(diào)度機(jī)制新連接存入新連接隊(duì)列pipe通知worker線程Worker線程從隊(duì)列取一個(gè)連接并開始網(wǎng)絡(luò)IO網(wǎng)絡(luò)模型工作線程監(jiān)聽主線程pipe通知從隊(duì)列獲取新連接,創(chuàng)建conn注冊讀寫事件并監(jiān)聽讀取用戶cmd,解析處理,返回rsp處理邏輯狀態(tài)機(jī)(drive_machine)共享主線程工作線程狀態(tài)機(jī)實(shí)現(xiàn)機(jī)制:switch-cases網(wǎng)絡(luò)模型狀態(tài)機(jī)主線程狀態(tài)機(jī)處理conn_listening狀態(tài)Accept新連接調(diào)度新連接給工作線程狀態(tài)機(jī)初始o(jì)r重置狀態(tài)注冊讀事件讀取網(wǎng)絡(luò)數(shù)據(jù)命令解析及處理對寫指令繼續(xù)讀取命令處理完畢寫響應(yīng)到連接緩沖寫給client重置狀態(tài)進(jìn)入新循環(huán)工作線程狀態(tài)機(jī)狀態(tài)機(jī)conn_new_cmd進(jìn)入條件:Mainthread調(diào)用dispatch_conn_new的時(shí)候,worker線程創(chuàng)建conn對象,初始狀態(tài)為conn_new_cmd,命令處理完畢,準(zhǔn)備接受新指令,也會進(jìn)入conn_new_cmd處理:調(diào)用reset_cmd_handler,重置conn的cmd和substate,并在必要時(shí)對連接buffer進(jìn)行收縮狀態(tài)跳轉(zhuǎn):如果是第一次事件觸發(fā)狀態(tài)會進(jìn)入conn_waiting狀態(tài)如果讀緩存區(qū)中有數(shù)據(jù),會進(jìn)入conn_parse_cmd狀態(tài)。conn_waiting狀態(tài)機(jī)conn_read處理流程通過update_event注冊讀事件然后將狀態(tài)變成conn_read進(jìn)入條件監(jiān)聽到網(wǎng)絡(luò)數(shù)據(jù)進(jìn)來,進(jìn)入conn_read狀態(tài)處理通過try_read_network從socket中讀取數(shù)據(jù)狀態(tài)跳轉(zhuǎn)讀取正常進(jìn)入conn_parse_cmd狀態(tài),準(zhǔn)備解析cmd讀取失敗進(jìn)入conn_closing,關(guān)閉連接處理:通過mand讀取rbuf,通過\n來分隔數(shù)據(jù)報(bào)文的命令如果命令首行長度大于1024(key長度要小于1024),關(guān)閉連接在mand對首行指令,繼續(xù)按照空格分拆報(bào)文確定命令類型,分派給mand處理狀態(tài)機(jī)conn_parse_cmd狀態(tài)機(jī)狀態(tài)跳轉(zhuǎn):rbuf還沒讀到\n,跳轉(zhuǎn)到conn_waiting,繼續(xù)等待客戶端的命令數(shù)據(jù)報(bào)文;對于get等指令,處理完畢后跳轉(zhuǎn)到conn_mwrite;對于set/put等指令,需要繼續(xù)讀取val數(shù)據(jù),跳轉(zhuǎn)到conn_nread;處理失敗,跳轉(zhuǎn)到conn_closing關(guān)閉連接狀態(tài)機(jī)conn_parse_cmd處理:從conn繼續(xù)讀取value數(shù)據(jù);讀取完畢后,調(diào)用complete_nread,進(jìn)行數(shù)據(jù)存儲處理;數(shù)據(jù)處理完畢后,向conn的wbuf寫結(jié)果數(shù)據(jù);狀態(tài)跳轉(zhuǎn):處理完畢后,狀態(tài)設(shè)為conn_write狀態(tài)機(jī)conn_nread處理:如果conn的iovused為0或UDP,將wcurr寫入conn消息緩沖狀態(tài)跳轉(zhuǎn):直接進(jìn)入conn_mwrite狀態(tài)機(jī)conn_write處理:通過transmit來向客戶端寫數(shù)據(jù)狀態(tài)跳轉(zhuǎn)寫數(shù)據(jù)成功,跳轉(zhuǎn)到conn_new_cmd,準(zhǔn)備新指令的獲取寫數(shù)據(jù)失敗,跳轉(zhuǎn)到conn_closing,關(guān)閉連接退出狀態(tài)機(jī)狀態(tài)機(jī)conn_mwriteconn_closing處理:關(guān)閉連接,game
over命令讀取處理及響應(yīng)listen新連接進(jìn)入連接重置及內(nèi)存收縮準(zhǔn)備IO讀取讀取網(wǎng)絡(luò)數(shù)據(jù)解析指令讀取value數(shù)據(jù)key/value變更發(fā)送給響應(yīng)給client構(gòu)建響應(yīng)循環(huán)等待下次處理查詢valueread指令NY處理流程主線程監(jiān)聽并接受新連接接入Worker線程初始化連接并等待IO有數(shù)據(jù)到來時(shí),讀取網(wǎng)絡(luò)數(shù)據(jù)根據(jù)Mc協(xié)議解析指令對變更指令,需要進(jìn)一步讀取value,并進(jìn)行變更對于讀取指令,查詢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南省耒陽市2025屆初三下學(xué)期第二次月考試題數(shù)學(xué)試題試卷含解析
- 遼寧省沈陽市一三四中學(xué)2025屆初三下學(xué)期周練試卷(四)生物試題含解析
- 山西省大同市左云縣東北小學(xué)校2024-2025學(xué)年數(shù)學(xué)四下期末學(xué)業(yè)水平測試試題含解析
- 吉林城市職業(yè)技術(shù)學(xué)院《Spss統(tǒng)計(jì)軟件》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東政法學(xué)院《犯罪心理學(xué)專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 皖北衛(wèi)生職業(yè)學(xué)院《機(jī)械制圖Ⅰ》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海市復(fù)旦附中2025屆高三補(bǔ)習(xí)班下學(xué)期第四次月考數(shù)學(xué)試題含解析
- 欽州幼兒師范高等??茖W(xué)?!睹褡鍛蚯c說唱藝術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 山東省2025屆數(shù)學(xué)三下期末考試試題含解析
- 四川省棠湖中學(xué)2024-2025學(xué)年高三語文試題高考沖刺七含解析
- 2025-2030中國汽車金融行業(yè)市場深度調(diào)研及發(fā)展策略與投資前景研究報(bào)告
- 2025年鐵路車輛鉗工(高級)職業(yè)技能鑒定參考試題庫(含答案)
- 跨越高原勇敢前行 課件 2025屆高考學(xué)習(xí)的高原期主題班會
- 2024年鄭州鐵路職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫必考題
- 企業(yè)水果禮盒采購合同樣本
- 移動業(yè)務(wù)代辦協(xié)議書
- 解除租賃合同的協(xié)議
- 2025年03月國家林業(yè)和草原局直屬單位公開招聘246人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 常德煙草機(jī)械有限責(zé)任公司招聘考試真題2024
- 2025屆天津市十二區(qū)重點(diǎn)學(xué)校高三下學(xué)期畢業(yè)聯(lián)考(一)英語試題(含答案)
- DB44-T 2623-2025 道路工程高韌超薄磨耗層技術(shù)規(guī)范
評論
0/150
提交評論