[发明专利]一种API网关流量镜像方法有效
申请号: | 202210710303.7 | 申请日: | 2022-06-22 |
公开(公告)号: | CN115277602B | 公开(公告)日: | 2023-07-28 |
发明(设计)人: | 梁永喜 | 申请(专利权)人: | 全知科技(杭州)有限责任公司 |
主分类号: | H04L49/20 | 分类号: | H04L49/20;H04L67/01;H04L67/02;H04L67/56;H04L12/66 |
代理公司: | 杭州奇炬知识产权代理事务所(特殊普通合伙) 33393 | 代理人: | 贺心韬 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 api 网关 流量 方法 | ||
本发明实施例公开了一种API网关流量镜像方法,具体涉及API网关流量镜像方法领域,包括以下以下几部分内容:分块数据结构的定义与格式:按照HTTP事件类型,定义HTTP事件请求头、HTTP事件请求体、HTTP事件响应头、HTTP事件响应体等四个部分定义,每个部分都包含有事件唯一ID,用于数据加工时的组装关联,约定两种格式的数据序列化格式。通过尽最大可能性以减少对nginx本身的影响情况下将HTTP事件部分内容尽快尽早地镜像出来,具体是在nginx处理HTTP事件处理的各个阶段,将事件中的局部数据以批处理的转发到消息中间件,再由数据加工模块,将各阶段的数据组装原始的HTTP事件。
技术领域
本发明实施例涉及API网关流量镜像方法领域,具体涉及一种API网关流量镜像方法。
背景技术
将网关代理部署在API服务的前面,将需要观测的流量复制并转发到分析设备中,一般是基于nginx服务+Lua脚本的框架。在log_by_lua的处理阶段中,将所关注的HTTP事件完整内容进行组装(一般为json格式)并复制转发,这意味着在复制转发完成之前,nginx服务器上缓存所有的数据(包括服务器的请求与响应部分),尤其是响应部分,一般都会比较大,而且都保存在内存中,当并发会话较多的时,会占用较高的系统内存资源,进而影响处理性能。
发明内容
为此,本发明实施例提供一种API网关流量镜像方法,通过尽最大可能性以减少对nginx本身的影响情况下将HTTP事件部分内容尽快尽早地镜像出来,具体是在nginx处理HTTP事件处理的各个阶段,将事件中的局部数据以批处理的转发到消息中间件,再由数据加工模块,将各阶段的数据组装原始的HTTP事件。
为了实现上述目的,本发明实施例提供如下技术方案:一种API网关流量镜像方法,包括以下以下几部分内容:
分块数据结构的定义与格式:按照HTTP事件类型,定义HTTP事件请求头、HTTP事件请求体、HTTP事件响应头、HTTP事件响应体等四个部分定义,每个部分都包含有事件唯一ID,用于数据加工时的组装关联,约定两种格式的数据序列化格式,在序列化编码性能上,两者各有优势,可根据实的数据进行动态选择,纯文本类且数据量不太大的数据,json编码性能更好,二进制类的数据,protobuf编码性能更优;
代理核心模块:在access_by_lua阶段、header_filter_by_lua阶段或body_filter_by_lua阶段,可以根据当前HTTP事件的数据量等信息,将HTTP事件数据按照一定的策略进行分块传输;
分块与编码策略:对于访问/下载类型的HTTP事件,第一个消息块数据包含有HTTP事件请求头、HTTP事件请求体、HTTP事件响应头、HTTP事件响应体的部分内容,之后每4KB的HTTP事件响应体数据,将变成一个独立的消息块数据,进行编号后传输;
对于上传类型的HTTP事件,每一个消息块数据包含有HTTP事件请求头、HTTP事件请求体的部分内容,之后每4KB的HTTP事件请求体数据,将变成一个独立的消息块数据,进行编号后传输;
HTTP事件流量镜像还原流程如下:
步骤一:在nginx的access_by_lua阶段,开头生成一个HTTP事件的唯一ID,存储到nginx会话的上下文变量,并将唯一ID;
步骤二:在nginx的access_by_lua阶段,将收到HTTP事件的请求头、请求体数据以及HTTP事件的唯一ID填充到分块数据结构,并发送到内部的批处理队列;
步骤三:在nginx的header_filter_by_lua阶段,将收到HTTP事件的响应头以及HTTP事件的唯一ID填充到分块数据结构,并发送到内部的批处理队列;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于全知科技(杭州)有限责任公司,未经全知科技(杭州)有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210710303.7/2.html,转载请声明来源钻瓜专利网。