[发明专利]一种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.vipzhuanli.com/pat/books/201811614132.8/2.html,转载请声明来源钻瓜专利网。





