[發(fā)明專利]網(wǎng)絡請求的處理方法和裝置在審
| 申請?zhí)枺?/td> | 201711203593.1 | 申請日: | 2017-11-27 |
| 公開(公告)號: | CN109842646A | 公開(公告)日: | 2019-06-04 |
| 發(fā)明(設計)人: | 王鴻運;舒逸;黃坤乾;周龍亭 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿(mào)易有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 中原信達知識產(chǎn)權代理有限責任公司 11219 | 代理人: | 張一軍;楊曉偉 |
| 地址: | 100195 北京市海淀區(qū)杏石口路6*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 網(wǎng)絡請求 因果關系 方法和裝置 命令回復 一次網(wǎng)絡 服務端 計算機技術領域 合成數(shù)據(jù)包 數(shù)據(jù)包發(fā)送 系統(tǒng)性能 應用場景 批量化 耗時 發(fā)送 消耗 傳輸 優(yōu)化 分析 服務 | ||
本發(fā)明實施例提供一種網(wǎng)絡請求的處理方法和裝置,涉及計算機技術領域。本發(fā)明實施例的一種網(wǎng)絡請求的處理方法,包括:將網(wǎng)絡請求中不存在因果關系的命令按照順序整合成數(shù)據(jù)包,將所述數(shù)據(jù)包發(fā)送至服務端;接收來自所述服務端的命令回復,按照所述順序從所述命令回復中提取出與各所述命令對應的執(zhí)行結(jié)果。對于一次網(wǎng)絡請求,需要發(fā)送多個命令的應用場景,本發(fā)明通過分析網(wǎng)絡請求中的命令之間的因果關系,將不存在因果關系的命令批量化傳輸?shù)椒斩耍瑢⒁淮尉W(wǎng)絡請求的RTT消耗進行了優(yōu)化,減少了網(wǎng)絡請求的耗時,提高了系統(tǒng)性能。
技術領域
本發(fā)明涉及計算機領域,尤其涉及一種網(wǎng)絡請求的處理方法和裝置。
背景技術
Redis是一個開源的、基于內(nèi)存的鍵值對數(shù)據(jù)庫,其支持的數(shù)據(jù)類型較多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。Redis支持增刪改查的操作,Redis客戶端通過發(fā)送命令的方式讓Redis服務器執(zhí)行相應的操作。
Redis基于傳輸控制TCP協(xié)議(Transmission Control Protocol,傳輸控制協(xié)議)進行信息傳輸,是一個典型的請求/響應模式服務器。現(xiàn)有技術中,一個請求的實現(xiàn)過程為:Redis客戶端發(fā)送一個請求到Redis服務器,然后通過阻塞套接字讀取服務端的命令回復。服務端接收請求并執(zhí)行請求中包含的命令,然后返回命令回復給客戶端。以查詢用戶是否被限制登錄為例,由于用戶登錄請求并發(fā)量大,需要將限制登錄信息存儲于多個Redis數(shù)據(jù)庫中,對于每一次用戶限制登錄查詢請求,需要從多個Redis數(shù)據(jù)庫中進行查詢,且查詢時采用串行阻塞同步請求的方式依次發(fā)送多條查詢命令,比如執(zhí)行3條查詢命令,如圖2所示,Redis客戶端需要等待命令1回復后才能發(fā)送命令2。
在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題:
(1)執(zhí)行幾條命令就需要消耗幾個RTT(Round-Trip Time,網(wǎng)絡往返時延),即使是內(nèi)網(wǎng)請求,RTT不到1毫秒,時間消耗也非常嚴重。
(2)對于每一次的命令傳輸,協(xié)議棧都會加上40字節(jié)的數(shù)據(jù)包首部開銷,這些開銷浪費網(wǎng)絡資源的同時也會減少網(wǎng)絡吞吐量,嚴重的還會導致“模糊窗口綜合癥”的問題,“模糊窗口綜合癥”是一種發(fā)送請求的數(shù)據(jù)字節(jié)數(shù)遠小于數(shù)據(jù)包首部的問題。
(3)網(wǎng)絡傳輸越多,網(wǎng)絡的抖動問題對傳輸?shù)挠绊懸苍酱螅W(wǎng)絡傳輸?shù)氖÷室矔礁摺?/p>
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供一種網(wǎng)絡請求的處理方法和裝置。對于一次網(wǎng)絡請求,需要發(fā)送多個命令的應用場景,本發(fā)明通過分析網(wǎng)絡請求中的命令之間的因果關系,將不存在因果關系的命令批量化傳輸?shù)椒斩耍瑢⒁淮尉W(wǎng)絡請求的RTT消耗進行了優(yōu)化,減少了網(wǎng)絡請求的耗時,提高了系統(tǒng)性能。
為實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的一個方面,提供了一種網(wǎng)絡請求的處理方法。
本發(fā)明實施例的一種網(wǎng)絡請求的處理方法,包括:將網(wǎng)絡請求中不存在因果關系的命令按照順序整合成數(shù)據(jù)包,將所述數(shù)據(jù)包發(fā)送至服務端;接收來自所述服務端的命令回復,按照所述順序從所述命令回復中提取出與各所述命令對應的執(zhí)行結(jié)果。
可選地,所述將網(wǎng)絡請求中不存在因果關系的命令按照順序整合成數(shù)據(jù)包的步驟之前,還包括:分析網(wǎng)絡請求中各命令之間的因果關系;其中,所述因果關系的判定依據(jù)為:在網(wǎng)絡請求的各命令中,如果其中一個所述命令要以另一個所述命令的執(zhí)行結(jié)果作為依據(jù),則這兩個命令之間存在因果關系;否則,這兩個命令之間不存在因果關系。
可選地,所述將網(wǎng)絡請求中不存在因果關系的命令按照順序整合成數(shù)據(jù)包,包括:將網(wǎng)絡請求中不存在因果關系的所述命令按照順序添加到第一緩存區(qū)。
可選地,所述方法還包括:將所述命令回復存入第二緩存區(qū)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿(mào)易有限公司,未經(jīng)北京京東尚科信息技術有限公司;北京京東世紀貿(mào)易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711203593.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





