[发明专利]一种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 网关 流量 方法 | ||
1.一种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填充到分块数据结构,并发送到内部的批处理队列;
步骤四:在nginx的body_filter_by_lua阶段,将收到HTTP事件的响应体以及HTTP事件的唯一ID填充到分块数据结构,并发送到内部的批处理队列;
步骤五:在批处理队列满足发送条件时,将队列中的所有数据合并成一条或多条消息,发送到消息中间件;
步骤六:数据加工模块,从消息中间件,获取消息,将消息还原一个或多个分块数据,存储到一个全局缓存中,其中键为HTTP事件的唯一ID,值为同一ID中所有相关的分块数据内容;
步骤七:当加工模块的全局缓存中的分块数据满足组装条件时,则取出同一事件ID下的分块数据,组装成HTTP事件结构,再发送到下游处理流程,实现流量的镜像;
步骤八:从全局缓存中删除已组装或超时未能组装的事件ID对应的存储。
2.根据权利要求1所述的一种API网关流量镜像方法,其特征在于:所述约定两种格式的数据序列化格式具体为protobuf和json。
3.根据权利要求1所述的一种API网关流量镜像方法,其特征在于:所述对于访问/下载类型的HTTP事件,第一个消息块数据包含有HTTP事件请求头、HTTP事件请求体、HTTP事件响应头、HTTP事件响应体的部分内容不超过2KB。
4.根据权利要求1所述的一种API网关流量镜像方法,其特征在于:所述对于上传类型的HTTP事件,每一个消息块数据包含有HTTP事件请求头、HTTP事件请求体的部分内容不超过2KB。
5.根据权利要求1所述的一种API网关流量镜像方法,其特征在于:所述步骤一中存储在nginx会话的上下文变量所有和此事件的所有阶段都能够访问。
6.根据权利要求1所述的一种API网关流量镜像方法,其特征在于:所述步骤五中批处理队列满足发送条件为到达一定的数量或超过一定的时间。
7.根据权利要求1所述的一种API网关流量镜像方法,其特征在于:所述步骤六中的全局缓存具体为键值对结构。
8.根据权利要求1所述的一种API网关流量镜像方法,其特征在于:所述步骤八中加工模块的全局缓存中的分块数据满足组装条件为四个分块数据内容完整。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于全知科技(杭州)有限责任公司,未经全知科技(杭州)有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210710303.7/1.html,转载请声明来源钻瓜专利网。