[發明專利]一種Http請求處理方法及裝置在審
| 申請號: | 201811614132.8 | 申請日: | 2018-12-27 |
| 公開(公告)號: | CN111444449A | 公開(公告)日: | 2020-07-24 |
| 發明(設計)人: | 崔俊;張歆明 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F16/958 | 分類號: | G06F16/958 |
| 代理公司: | 深圳市世紀恒程知識產權代理事務所 44287 | 代理人: | 胡海國 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 http 請求 處理 方法 裝置 | ||
本發明提供了一種Http請求處理方法及裝置,應用于基于Netty搭建的服務端,所述方法包括:接收來自客戶端的Http請求,通過服務端的線程池為所述Http請求分配處理線程;初始化所述服務端的數據傳輸通道以及處理所述數據傳輸通道中的傳輸數據的數據管道;在所述數據通道中植入Spring MVC模塊的核心對象;通過植入所述Spring MVC模塊的核心對象的數據管道接收并處理所述處理線程中的Http請求,將處理結果通過所述數據傳輸通道回傳至所述客戶端。基于本發明提供的方法不僅可以基于Netty處理高并發Http請求,還可以基于Spring MVC模塊對Http請求進行分層處理,使得對Http請求的處理更加清晰,且有利于后期對服務端的維護和更新。
技術領域
本發明涉及互聯網技術領域,特別是涉及一種Http請求處理方法及裝置。
背景技術
傳統的web開發中,多采用php的nginx+fpm來實現第三方接口以處理Http請求。php-fpm:是一個主+多個子進程的模型,每次請求過來都要創建一個fastcgi進程,這種進程的開銷在高并發請求的情況下對系統性能消耗是非常大的。并且進程不能無限制被創建,因為受限于操作系統本身的資源分配和調度。一般來講單臺機器的QPS為100左右,非常低,無法滿足高并發需求。
圖1示出了php-fpm進程管理示意圖,圖1中所示的Application 1~Application4(應用程序1~應用程序4)就可以是php-fpm進程,這個進程可以為多請求的web服務器分發出多個work的進程。因為每一個進程都是動態創建的,在創建每一個進程時都會消耗服務器性能。
發明內容
本發明提供了一種Http請求處理方法及裝置以克服上述問題或者至少部分地解決上述問題。
根據本發明的一個方面,提供了一種Http請求處理方法,應用于基于Netty搭建的服務端,所述方法包括:
接收來自客戶端的Http請求,通過服務端的線程池為所述Http請求分配處理線程;
初始化所述服務端的數據傳輸通道以及處理所述數據傳輸通道中的傳輸數據的數據管道;
在所述數據通道中植入Spring MVC模塊的核心對象;
通過植入所述Spring MVC模塊的核心對象的數據管道接收并處理所述處理線程中的Http請求,將處理結果通過所述數據傳輸通道回傳至所述客戶端。
可選地,初始化所述服務端的數據傳輸通道以及處理所述數據傳輸通道中的傳輸數據的數據管道,包括:
創建自定義的Netty的數據通道初始化器;
基于所述初始化器初始化所述服務端的數據傳輸通道以及處理所述數據傳輸通道中的傳輸數據的數據管道,為Spring MVC模塊提供宿主容器。
可選地,所述在所述數據通道中植入SpringMVC框架的核心對象之前,還包括:
基于Servlet創建Spring MVC模塊的核心對象。
可選地,所述在所述數據通道中植入Spring MVC的核心對象,包括:
將所述Spring MVC的核心對象設置到處理所述數據傳輸通道中的傳輸數據的數據管道中。
可選地,所述通過植入所述Spring MVC模塊的核心對象的數據管道接收并處理所述處理線程中的Http請求,將處理結果通過所述數據傳輸通道回傳至所述客戶端,包括:
通過植入所述Spring MVC模塊的核心對象的數據管道接收所述處理線程中的Http請求;
調度所述數據管道中內置的鏈式處理器處理所述Http請求;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811614132.8/2.html,轉載請聲明來源鉆瓜專利網。





