;
[0098]7、最終,請求消息由哪個通信進程接收,應(yīng)答結(jié)果就由哪個通信進程返回。
[0099]如圖3所示,兩個平臺都包括各自的自我診斷模塊,自我診斷模塊運行時讀取命令行指定的配置文件,獲取管理參數(shù)(如平臺關(guān)鍵字、睡眠間隔等),之后后臺常駐執(zhí)行,連接進程管理共享內(nèi)存,從中提取服務(wù)進程運行信息,周期性檢測各個進程的運行狀態(tài);
[0100]為避免自我診斷模塊重復(fù)啟動造成的混亂,程序啟動后在一個文件(通常放置在/var/run目錄下)中記錄當前進程的進程ID,并對文件本身加鎖,重復(fù)啟動的自我診斷模塊再次對同一個文件加鎖時,因失敗退出,自我診斷模塊退出(無論正常或異常退出)時,文件鎖自動釋放;
[0101]進程管理共享內(nèi)存中記錄著服務(wù)進程的進程ID,自我診斷模塊據(jù)以判斷進程存活與否,如果服務(wù)進程異常終止,則通知平臺進程對其重新啟動,確保整個平臺持續(xù)穩(wěn)定運行;
[0102]進程管理共享內(nèi)存中記錄著服務(wù)進程的單個周期運行開始時間、執(zhí)行時限信息,自我診斷模塊據(jù)以計算服務(wù)進程的單個周期運行持續(xù)時間,對于超過設(shè)定時限的進程,強行殺死,并通知平臺進程對其重新啟動,避免進程的無限期掛起,確保服務(wù)行為可控;
[0103]在異步通信平臺中,自我診斷模塊還實時監(jiān)控整個平臺的繁忙比率,達到設(shè)定閾值時向平臺進程匯報,在線增減服務(wù)進程的數(shù)目,實現(xiàn)處理能力的動態(tài)擴展。
[0104]上述雖然結(jié)合附圖對本發(fā)明的【具體實施方式】進行了描述,但并非對本發(fā)明保護范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動即可做出的各種修改或變形仍在本發(fā)明的保護范圍以內(nèi)。
【主權(quán)項】
1.異步通信模式下SOCKET通信與進程管理通用方法,其特征是,包括以下步驟: 異步通信模式場景中,完整功能的實現(xiàn)包含兩個平臺:一個異步通信平臺、一個業(yè)務(wù)處理平臺,兩者通過消息隊列與UNIX域SOCKET通信機制交換數(shù)據(jù),靈活擴展處理能力,提升交易吞吐量; 客戶端發(fā)起連接請求;通信平臺中的平臺進程接受連接請求,得到客戶端連接描述符,通過事先創(chuàng)建的描述符傳遞通道傳遞給某個空閑的通信進程,關(guān)閉與客戶端的連接; 通信平臺中的通信進程接管與客戶端的連接,讀取客戶端請求消息,綁定自己的進程序號后,放入請求隊列; 處理平臺中的分發(fā)進程從請求隊列中讀取請求,通過事先創(chuàng)建的數(shù)據(jù)傳輸通道分發(fā)給某個空閑的處理進程;處理進程處理完成之后,連接請求消息中的進程序號對應(yīng)的通信進程,并發(fā)送應(yīng)答結(jié)果; 通信進程轉(zhuǎn)發(fā)應(yīng)答結(jié)果給客戶端,從而應(yīng)答結(jié)果由接收該請求消息的通信進程返回。2.如權(quán)利要求1所述的異步通信模式下SOCKET通信與進程管理通用方法,其特征是,通信平臺中的一個通信進程搭配處理平臺中的一組處理進程,通信進程專職通信,處理進程專職業(yè)務(wù)邏輯處理,兩者通過消息隊列與UNIX域SOCKET通信機制交換數(shù)據(jù); 通信平臺以SOCKET服務(wù)模式運行,處理平臺以常駐進程管理模式運行。3.如權(quán)利要求1所述的異步通信模式下SOCKET通信與進程管理通用方法,其特征是,在通信平臺中,客戶端請求到達之后由平臺進程接受,得到客戶端連接描述符,通過描述符傳遞通道發(fā)送給空閑的通信進程,通信進程創(chuàng)建一個UNIX域的監(jiān)聽SOCKET,作為與處理平臺中的處理進程交互的通道,之后通信進程通過1多路復(fù)用技術(shù)同時兼顧客戶端描述符、UNIX 域監(jiān)聽 SOCKET。4.如權(quán)利要求1或3所述的異步通信模式下SOCKET通信與進程管理通用方法,其特征是,在處理平臺中,處理進程讀取客戶端請求消息,處理業(yè)務(wù)邏輯,根據(jù)消息綁定的通信進程序號連接通信平臺中對應(yīng)的通信進程的UNIX域監(jiān)聽SOCKET并發(fā)送應(yīng)答結(jié)果,通信進程接受處理進程連接請求,得到處理進程連接描述符,之后通信進程的1多路復(fù)用操作將兼顧這個新的處理進程連接描述符,從中讀取處理進程應(yīng)答結(jié)果并轉(zhuǎn)發(fā)給客戶端。5.如權(quán)利要求4所述的異步通信模式下SOCKET通信與進程管理通用方法,其特征是,在處理平臺內(nèi)部,采用分發(fā)邏輯,平臺啟動時創(chuàng)建一個空閑通道與一組數(shù)據(jù)傳輸通道,再采用插件程序的方式運行一個分發(fā)進程與一組處理進程,處理進程啟動時在空閑通道中登記自己的進程編號,并等待讀取自己專屬的數(shù)據(jù)傳輸通道,分發(fā)進程從請求隊列中提取客戶端請求,從空閑通道中提取第一個空閑的處理進程編號,通過進程編號對應(yīng)的數(shù)據(jù)通道發(fā)送客戶端的請求數(shù)據(jù),對應(yīng)的處理進程接收并處理請求的業(yè)務(wù)邏輯,之后向請求數(shù)據(jù)對應(yīng)的通信進程發(fā)送應(yīng)答結(jié)果,最后再次在空閑通道中登記自己的進程編號。6.異步通信模式下SOCKET通信與進程管理通用平臺,其特征是,包括: 一個異步通信平臺及一個業(yè)務(wù)處理平臺,兩者協(xié)作完成客戶端請求的處理; 異步通信平臺負責與客戶端及處理平臺交互;通信平臺中的平臺進程接受客戶端的連接請求,得到客戶端連接描述符,通過事先創(chuàng)建的描述符傳遞通道傳遞給某個空閑的通信進程,平臺進程關(guān)閉與客戶端的連接; 異步通信平臺中的通信進程接管與客戶端的連接,讀取客戶端請求消息,綁定自己的進程序號后,放入請求隊列,并等待處理平臺完成業(yè)務(wù)邏輯處理之后的應(yīng)答結(jié)果,以便轉(zhuǎn)發(fā)給請求的客戶端; 業(yè)務(wù)處理平臺負責業(yè)務(wù)邏輯的處理,與通信平臺直接交互,處理平臺中的分發(fā)進程從請求隊列中讀取請求,通過事先創(chuàng)建的數(shù)據(jù)傳輸通道分發(fā)給某個空閑的處理進程;處理進程處理完成之后,連接請求消息中的進程序號對應(yīng)的通信進程,并發(fā)送應(yīng)答結(jié)果。7.如權(quán)利要求6所述的異步通信模式下SOCKET通信與進程管理通用平臺,其特征是,異步通信平臺中的一個通信進程可以搭配業(yè)務(wù)處理平臺中的一組處理進程,通信進程專職通信,處理進程專職業(yè)務(wù)邏輯處理,兩者通過消息隊列與UNIX域SOCKET通信機制交換數(shù)據(jù); 通信平臺以SOCKET服務(wù)模式運行,處理平臺以常駐進程管理模式運行。8.如權(quán)利要求6或7所述的異步通信模式下SOCKET通信與進程管理通用平臺,其特征是,在通信平臺中,客戶端請求到達之后由平臺進程接受,得到客戶端連接描述符,通過描述符傳遞通道發(fā)送給空閑的通信進程,通信進程創(chuàng)建一個UNIX域的監(jiān)聽SOCKET,作為與處理平臺中的處理進程交互的通道,之后通信進程通過1多路復(fù)用技術(shù)同時兼顧客戶端描述符、UNIX域監(jiān)聽SOCKET。9.如權(quán)利要求8所述的異步通信模式下SOCKET通信與進程管理通用平臺,其特征是,處理平臺中的處理進程讀取客戶端請求消息,處理業(yè)務(wù)邏輯,根據(jù)消息綁定的通信進程序號連接通信平臺中對應(yīng)的通信進程的UNIX域監(jiān)聽SOCKET并發(fā)送應(yīng)答結(jié)果,通信進程接受處理進程連接請求,得到處理進程連接描述符,之后通信進程的1多路復(fù)用操作將兼顧這個新的處理進程連接描述符,從中讀取處理進程應(yīng)答結(jié)果并轉(zhuǎn)發(fā)給客戶端。10.如權(quán)利要求9所述的異步通信模式下SOCKET通信與進程管理通用平臺,其特征是,在處理平臺內(nèi)部,采用分發(fā)邏輯,平臺啟動時創(chuàng)建一個空閑通道與一組數(shù)據(jù)傳輸通道,再采用插件程序的方式運行一個分發(fā)進程與一組處理進程,處理進程啟動時在空閑通道中登記自己的進程編號,并等待讀取自己專屬的數(shù)據(jù)傳輸通道,分發(fā)進程從請求隊列中提取客戶端請求,從空閑通道中提取第一個空閑的處理進程編號,通過進程編號對應(yīng)的數(shù)據(jù)通道發(fā)送客戶端的請求數(shù)據(jù),對應(yīng)的處理進程接收并處理請求的業(yè)務(wù)邏輯,之后向請求數(shù)據(jù)對應(yīng)的通信進程發(fā)送應(yīng)答結(jié)果,最后再次在空閑通道中登記自己的進程編號。
【專利摘要】本發(fā)明公開了異步通信模式下SOCKET通信與進程管理通用平臺及方法,簡化SOCKET通信程序的開發(fā),開發(fā)人員無需關(guān)心SOCKET通信與進程管理等編程技術(shù)細節(jié),專注于業(yè)務(wù)邏輯的實現(xiàn),提高開發(fā)效率并降低開發(fā)門檻。完整功能的實現(xiàn)包含兩個平臺:一個異步通信平臺、一個業(yè)務(wù)處理平臺,兩者通過消息隊列與UNIX域SOCKET通信機制交換數(shù)據(jù),靈活擴展處理能力,提升交易吞吐量。通信平臺中的平臺進程接受連接請求,得到連接描述符,通過創(chuàng)建的描述符傳遞通道傳遞給通信進程,關(guān)閉連接;通信進程接管連接,讀取請求消息,綁定進程序號后,放入請求隊列;處理平臺中的分發(fā)進程讀取請求,通過創(chuàng)建的數(shù)據(jù)傳輸通道分發(fā)給處理進程;處理進程處理完成之后,連接通信進程,并發(fā)送應(yīng)答結(jié)果。
【IPC分類】H04L12/24, H04L29/08
【公開號】CN105357273
【申請?zhí)枴緾N201510644319
【發(fā)明人】張從國, 程棟, 王進, 車帥, 劉春 , 張輝
【申請人】山東乾云啟創(chuàng)信息科技股份有限公司
【公開日】2016年2月24日
【申請日】2015年9月30日