版權(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ù)命令解析及處理對(duì)寫指令繼續(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對(duì)象,初始狀態(tài)為conn_new_cmd,命令處理完畢,準(zhǔn)備接受新指令,也會(huì)進(jìn)入conn_new_cmd處理:調(diào)用reset_cmd_handler,重置conn的cmd和substate,并在必要時(shí)對(duì)連接buffer進(jìn)行收縮狀態(tài)跳轉(zhuǎn):如果是第一次事件觸發(fā)狀態(tài)會(huì)進(jìn)入conn_waiting狀態(tài)如果讀緩存區(qū)中有數(shù)據(jù),會(huì)進(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對(duì)首行指令,繼續(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)文;對(duì)于get等指令,處理完畢后跳轉(zhuǎn)到conn_mwrite;對(duì)于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ù)存儲(chǔ)處理;數(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é)議解析指令對(duì)變更指令,需要進(jìn)一步讀取value,并進(jìn)行變更對(duì)于讀取指令,查詢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 戶外活動(dòng)的橫幅標(biāo)語(10篇)
- 圍手術(shù)期護(hù)理
- 成功演講稿(15篇)
- 居民低保申請書15篇
- 愚人節(jié)微信活動(dòng)策劃4篇
- 閉合復(fù)位聯(lián)合髓內(nèi)釘固定治療股骨干骨折的效果觀察
- 平安圣誕節(jié)主持開場白范文(10篇)
- 機(jī)場航空器故障應(yīng)急處理策略
- 二零二五個(gè)人房產(chǎn)買賣合同(含貸款服務(wù)及風(fēng)險(xiǎn)評(píng)估)3篇
- 二零二五年度酒店行業(yè)客戶滿意度售后服務(wù)合同2篇
- 2025年新能源汽車銷售傭金返點(diǎn)合同范本6篇
- 2025-2030年中國配電變壓器市場未來發(fā)展趨勢及前景調(diào)研分析報(bào)告
- GB/T 45120-2024道路車輛48 V供電電壓電氣要求及試驗(yàn)
- 2025年上海市嘉定區(qū)中考英語一模試卷
- 2025年中核財(cái)務(wù)有限責(zé)任公司招聘筆試參考題庫含答案解析
- 華中師大一附中2024-2025學(xué)年度上學(xué)期高三年級(jí)第二次考試數(shù)學(xué)試題(含解析)
- 面向人工智能的三維電路設(shè)計(jì)方法
- 長期處方藥品目錄
- 2023年全國高三數(shù)學(xué)聯(lián)賽吉林賽區(qū)預(yù)賽試題(含解析)
- 上海市歷年中考語文現(xiàn)代文閱讀真題40篇(2003-2021)
- 快遞代收點(diǎn)合作協(xié)議
評(píng)論
0/150
提交評(píng)論