System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及数据记录,尤其涉及一种基于前缀树的http请求日志记录方法、装置和电子设备。
技术介绍
1、http和restful api:http是互联网上应用最广泛的协议之一,用于客户端和服务器之间的通信;restful是一种基于http协议的网络应用程序架构风格,它使用http的标准方法(如get、post、put、delete)来处理资源的状态。
2、restful api通常使用uri(统一资源标识符)来指定资源和资源上的操作。
3、日志记录系统:日志记录是任何软件系统的关键组成部分,用于记录关键事件,如请求的处理、系统错误、交易等。日志数据对于监控系统健康、调试问题和进行安全审计至关重要。
4、前缀树(trie):前缀树是一种用于检索键值存储的树形数据结构,其中键通常是字符串。它在计算机科学中常用于实现自动补全、拼写检查等功能。在api路由中,前缀树可以用来快速匹配uri路径。
5、分布式消息系统(如kafka):分布式消息系统用于在分布式系统中交换消息和数据流。apache kafka是一个广泛使用的分布式流处理平台,它能够处理高吞吐量的数据,并提供消息存储、传输和处理的功能。
6、现有技术中的路径匹配通常是基于线性搜索或正则表达式的匹配,同时现有的日志记录方案通常涉及中间件或代理服务器,它们在处理http请求时捕获相关信息并记录到日志文件或发送到日志服务器。
7、现有技术中的这些方案可能使用正则表达式或简单的路径匹配来识别请求,但是存在如下方面的
8、1.路径匹配机制:现有技术中的路径匹配通常是基于线性搜索或正则表达式的匹配。这些方法在处理大量动态路由时可能会遇到性能瓶颈。
9、2.日志数据的传输和存储:在现有技术中,日志数据的传输通常依赖于标准的网络协议,如tcp/ip,而存储则可能使用文件系统或数据库。在高负载情况下,这可能导致数据丢失或传输延迟。
10、3.日志处理的性能问题:现有的日志处理方法可能会在高并发请求时对性能产生负面影响,尤其是当日志记录操作与http请求处理在同一线程或进程中进行时。
11、因此面临如下技术短板和困难:
12、1.如何高效地处理动态和多样化的http请求路径:现有的日志记录系统可能无法有效处理restful风格的请求,因为这些请求具有高度的动态性和多样性。restful api设计允许使用相同的基础uri来访问资源,但通过不同的http方法(如get、post、put、delete)和路径参数来区分操作。
13、2.如何提高路径匹配的效率:传统的日志记录系统可能依赖于线性搜索或复杂的正则表达式来匹配请求路径,这在面对大量api端点时效率低下。如何在日志记录中保留有意义的接口名称:通常,日志记录系统仅记录请求的路径和方法,而不记录接口的逻辑名称,这使得日志数据的可读性和可分析性降低。
14、3.如何减少日志记录对系统性能的影响:日志记录过程可能会对系统性能产生影响,特别是在高负载环境中。
15、4.如何确保日志数据的完整性和可靠传输:在分布式系统中,确保日志数据从产生点到分析系统的完整性和可靠性是一个挑战。
16、综上所述,虽然现有技术提供了处理http请求和记录日志的基本方法,但在处理restful风格的请求、提高路径匹配效率、保留有意义的接口名称在日志中、减少对系统性能的影响以及确保日志数据完整性和可靠传输方面仍存在不足。
技术实现思路
1、为了解决上述问题,本申请提出一种基于前缀树的http请求日志记录方法、装置和电子设备。
2、本申请一方面,提出一种基于前缀树的http请求日志记录方法,包括如下步骤:
3、构建适应http请求路径前缀树,并将前缀树配置于http网关;
4、前端向http网关发起http请求;
5、http网关响应http请求,读取预先存储在db数据库的api元数据信息,并将api元数据信息与前缀树进行匹配,将api元数据信息写入前缀树;
6、http网关以前缀树的数据格式,将api元数据信息反馈至前端。
7、作为本申请的一可选实施方案,可选地,构建适应http请求路径前缀树,并将前缀树配置于http网关,包括:
8、解析http请求路径,获得http请求路径的请求数据结构;
9、根据请求数据结构,构建由通配符与叶子节点组成的前缀树,其中:
10、通配符,用于存储http请求方式、请求路径和/或api元数据;
11、叶子节点,用于存储路径以及上下节点的关联关系信息;
12、将生成的前缀树配置在http网关的前缀树模块中。
13、作为本申请的一可选实施方案,可选地,在构建适应http请求路径前缀树,并将前缀树配置于http网关之后,还包括:
14、在http网关中,分别建立路由模块和kafka传输模块与前缀树模块之间的通信连接。
15、作为本申请的一可选实施方案,可选地,http网关响应http请求,读取预先存储在db数据库的api元数据信息,并将api元数据信息与前缀树进行匹配,将api元数据信息写入前缀树,包括:
16、通过http网关的路由模块,根据http请求的内容,向db数据库加载相应的api元数据信息,并转发至前缀树模块;
17、前缀树模块接收api元数据信息,对api元数据信息基于前缀树的数据结构进行拆分处理;
18、通过前缀树遍历拆分后的api元数据信息,将拆分后的api元数据信息的数据元素,分别匹配写入对应的通配符和叶子节点中。
19、作为本申请的一可选实施方案,可选地,http网关以前缀树的数据格式,将api元数据信息反馈至前端,包括:
20、前缀树模块将写入前缀树的api元数据信息,发送至路由模块;
21、通过路由模块,将api元数据信息以前缀树的数据格式,反馈至前端。
22、作为本申请的一可选实施方案,可选地,在http网关以前缀树的数据格式,将api元数据信息反馈至前端之后,还包括:
23、同时将api元数据信息以前缀树的数据格式,发送至http网关的kafka传输模块;
24、kafka传输模块根据api元数据信息生成相应的api日志,并通过异步日志记录方式,发送至kafka中间件;
25、kafka中间件对异步发送的api日志,按照预设的异步日志记录队列发送至日志系统;
26、日志系统接收api日志,并存储在db数据库中。
27、本申请另一方面,提出一种实现所述基于前缀树的http请求日志记录方法的装置,包括:
28、db数据库,用于存储api元数据信息;
29、http网关,用于响应前端发起的htt本文档来自技高网...
【技术保护点】
1.一种基于前缀树的HTTP请求日志记录方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于前缀树的HTTP请求日志记录方法,其特征在于,构建适应HTTP请求路径前缀树,并将前缀树配置于HTTP网关,包括:
3.根据权利要求2所述的一种基于前缀树的HTTP请求日志记录方法,其特征在于,在构建适应HTTP请求路径前缀树,并将前缀树配置于HTTP网关之后,还包括:
4.根据权利要求3所述的一种基于前缀树的HTTP请求日志记录方法,其特征在于,HTTP网关响应HTTP请求,读取预先存储在DB数据库的API元数据信息,并将API元数据信息与前缀树进行匹配,将API元数据信息写入前缀树,包括:
5.根据权利要求4所述的一种基于前缀树的HTTP请求日志记录方法,其特征在于,HTTP网关以前缀树的数据格式,将API元数据信息反馈至前端,包括:
6.根据权利要求5所述的一种基于前缀树的HTTP请求日志记录方法,其特征在于,在HTTP网关以前缀树的数据格式,将API元数据信息反馈至前端之后,还包括:
7.一种实现
8.根据权利要求7所述的装置,其特征在于,HTTP网关,包括:
9.根据权利要求7所述的装置,其特征在于,装置还包括:
10.一种电子设备,其特征在于,包括:
...【技术特征摘要】
1.一种基于前缀树的http请求日志记录方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种基于前缀树的http请求日志记录方法,其特征在于,构建适应http请求路径前缀树,并将前缀树配置于http网关,包括:
3.根据权利要求2所述的一种基于前缀树的http请求日志记录方法,其特征在于,在构建适应http请求路径前缀树,并将前缀树配置于http网关之后,还包括:
4.根据权利要求3所述的一种基于前缀树的http请求日志记录方法,其特征在于,http网关响应http请求,读取预先存储在db数据库的api元数据信息,并将api元数据信息与前缀树进行匹配,将api元数据信息写入前缀树,包括:...
【专利技术属性】
技术研发人员:陈波,宋杨,许飞,周垤飞,
申请(专利权)人:杭州指令集智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。