[發明專利]一種基于分布式總線的消息處理方法、服務器和系統有效
| 申請號: | 201210499433.7 | 申請日: | 2012-11-29 |
| 公開(公告)號: | CN103856440A | 公開(公告)日: | 2014-06-11 |
| 發明(設計)人: | 林愛民;張遷 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04L29/08 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 徐立 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 分布式 總線 消息 處理 方法 服務器 系統 | ||
技術領域
本發明涉及數據處理技術領域,特別涉及一種基于分布式總線的消息處理方法、服務器和系統。
背景技術
隨著網絡技術的發展,網絡應用的種類越來越多,網絡應用中客戶端通常會通過RPC(Remote?Procedure?Call?Protocol,遠程過程調用協議)向遠端服務器請求相應的服務。
RPC是一種通過網絡從遠程計算機程序上請求服務的協議。客戶端通過RPC從服務器調用服務過程大致如下:客戶端與服務器建立連接后,調用RPC接口函數向服務器發送攜帶有進程參數的調用信息,然后等待應答消息;服務器通過相應的服務器接口函數接收上述調用信息后,獲得該調用信息中的進程參數,調用進程執行操作,并將操作結果作為應答消息返回給客戶端,完成調用。
在實現本發明的過程中,發明人發現現有技術至少存在以下問題:
服務器在接收到調用信息就立即開始處理,在面對海量用戶接入的情況時,由于需要處理的數據量過大,而服務器的處理能力有限,這樣就增加了服務器的負載,降低了系統的工作能力,同時還可能造成調用信息丟失。
發明內容
為了解決現有技術的問題,本發明實施例提供了一種基于分布式總線的消息處理方法、服務器和系統。所述技術方案如下:
一方面,本發明實施例提供了一種基于分布式總線的消息處理方法,所述方法包括:
接收來自客戶端的請求數據包,并將所述請求數據包存入輸入消息隊列中;
從所述輸入消息隊列的隊首開始,選取與空閑的消息處理線程數量相等的所述請求數據包,并采用所述空閑的消息處理線程分別對選取的所述請求數據包進行處理,得到應答數據包;
將所述應答數據包發送給所述客戶端。
其中,所述接收來自客戶端的請求數據包,包括:
與所述客戶端建立連接,并將建立連接后的所述客戶端標記為連接狀態;
與處于連接狀態的所述客戶端建立會話并將建立會話后的所述客戶端標記為會話狀態,以接收處于會話狀態的所述客戶端發送的請求數據包。
進一步地,所述與處于連接狀態的所述客戶端建立會話之前,所述方法還包括:
判斷是否有會話處于空閑狀態;
若有會話處于空閑狀態,則與處于連接狀態的所述客戶端建立會話;否則,讓所述客戶端排隊等待空閑的會話,并將排隊等待的所述客戶端標記為會話排隊狀態。
進一步地,所述方法還包括:
當處于會話狀態的所述客戶端異常斷開時,將與異常斷開的所述客戶端對應的會話變為保護狀態。
進一步地,在所述判斷是否有會話處于空閑狀態之前,所述方法還包括:
判斷是否有與處于連接狀態的所述客戶端對應的處于保護狀態的會話,若有,則直接與處于連接狀態的客戶端建立會話。
進一步地,所述方法還包括:
在收到處于連接狀態的所述客戶端的嘗試會話請求時,若所述客戶端已存在進行中的會話,則斷開與所述進行中的會話對應的舊連接,并讓所述會話與新連接關聯。
其中,所述請求數據包為基于二進制通信協議的數據包。
進一步地,所述請求數據包的包頭的格式為:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210499433.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:上傳動式干碾機
- 下一篇:一種酸槽進酸防酸霧裝置





