技术新讯 > 电子通信装置的制造及其应用技术 > API网关的参数验证及服务熔断系统和方法与流程  >  正文

API网关的参数验证及服务熔断系统和方法与流程

  • 国知局
  • 2024-09-05 15:01:26

本发明涉及信息,更具体地说,本发明涉及api网关的参数验证及服务熔断系统和方法。

背景技术:

1、在现代软件架构中,尤其是在微服务架构的环境下,api网关作为系统的重要组成部分,承担着流量路由、服务聚合、认证授权、安全防护等多种功能。随着服务和用户的增多,api网关面临的挑战也日益增加,尤其是在参数验证和服务稳定性方面。

2、在多服务系统中,api网关常常是外部请求访问内部服务的唯一入口。这种架构模式虽然简化了客户端与各个微服务之间的直接交互,提升了系统的整体安全性,但也使得api网关成为潜在的安全风险点。无效或恶意的请求参数可能导致后端服务的异常,甚至触发安全漏洞。因此,强化api网关的参数验证机制,不仅可以防止非法数据进入系统内部,还可以提前识别和阻止潜在的攻击行为。服务熔断是一种常见的微服务保护机制,旨在防止服务故障的蔓延效应。在微服务架构中,服务间的依赖复杂,单个服务的失败可能引起连锁反应,影响整个系统的可用性。服务熔断机制通过暂时中断可能出现问题的服务,给系统提供了自我保护的能力。这不仅有助于限制问题的影响范围,还能在一定程度上提升系统的恢复速度和稳定性。

3、尽管参数验证和服务熔断各自在api网关中扮演着关键角色,但传统的实现方式通常将这两者分开处理,缺乏足够的交互和协同。

4、现有公开号为cn112187724a的中国专利公开了一种访问控制方法、装置、网关、客户端和安全令牌服务,通过客户端向网关发送api访问请求,api访问请求中包含用于请求签名验证的参数和用于权限鉴定的参数,因此,网关收到api访问请求之后,可以直接根据api访问请求中携带的用于请求签名验证的参数进行请求签名验证,根据用于权限鉴定的参数进行权限鉴定,无需访问数据库获取所需要的参数,减少了网络i/o和查询数据库的时间,请求签名验证通过并且权限鉴定通过,网关将所述api访问请求转发至对应的业务线接口,从而提高了api的访问效率。

5、现有公开号为cn114363153a的中国专利公开了一种熔断器和服务的自适应熔断方法,涉及信息技术领域。上游服务的熔断器利用马尔可夫链模型根据下游服务的响应时间预测下游服务的服务状态,根据预测的下游服务的服务状态控制上游服务与下游服务之间的通信,使得熔断器具备自治能力,熔断机制启动更及时,提升了服务系统的稳定性,避免因为超时时限设置不合理而降低系统的性能或可用性。

6、上述专利执行的是参数验证和服务熔断孤立的处理方式,这可能导致效率低下,无法充分发挥两者的潜在能力。例如,一个有效的参数验证系统能够在请求进入服务之前识别出潜在的高风险或恶意请求,若能与熔断机制紧密结合,将进一步加强服务的安全性和稳定性。

7、鉴于以上背景,开发一个集成了高效参数验证和智能服务熔断的api网关系统显得尤为重要,若系统在参数验证阶段识别到高风险请求时,不能提前触发服务的熔断机制,则可能遇到潜在的服务滥用或攻击行为,会使系统资源很快被耗尽,导致正常用户无法访问服务,严重的可能会危及系统安全,造成经济损失。

技术实现思路

1、为了解决上述背景技术中存在的问题,本发明提供api网关的参数验证及服务熔断系统和方法,方法包括:

2、收集api请求的参数样本与服务调用参数;

3、输入api请求的参数样本至预构建的参数验证模型输出参数样本的标注;

4、根据参数样本的标注判断是否给予api请求通过权限;

5、输入参数样本的标注与服务调用参数至预构建的熔断阈值模型输出安全阈值;

6、将api请求的参数样本输入至预构建的服务分级模型输出服务评级;

7、将服务评级与安全阈值输入至预构建的熔断启动模型输出启动码。

8、进一步地,参数样本包括参数类型、参数名称、参数值范围、参数格式与参数必填性;参数样本的标注包括正常、类型失配、注入攻击、值越界、畸形数据与缺失必填字段;服务调用参数包括错误率与响应时间。

9、进一步地,所述参数验证模型的结构为cnn+lstm+dnn的混合搭建,cnn+lstm+dnn混合搭建的参数验证模型结构包括cnn模块、lstm模块与dnn模块;

10、其中,cnn模块包括第一输入层、两个卷积层、两个池化层与第一输出层;第一输入层的输入形式为一维序列;两个卷积层包括第一卷积层与第二卷积层,两个卷积层的卷积核大小均为1×3,激活函数均为relu,第一卷积层的深度为32,第二卷积层深度为64;两个池化层包括第一池化层与第二池化层,两个池化层的窗口大小均为2,步长均为2;第一输出层的输出为一维向量序列,一维向量序列的通道数为64;

11、lstm模块包括第二输入层、lstm层与第二输出层,第二输入层的输入为cnn模块输出的一维向量序列;lstm层的隐藏状态维度设置为64,lstm包括lstm单元,lstm单元包括输入门、候选单元状态、循环单元、遗忘门与输出门;输入门、遗忘门和输出门激活函数均为sigmoid,候选单元状态的激活函数为tanh;第二输出层的隐藏状态维度为64,输出为最后一个时序步的隐状态向量;

12、dnn模块包括第三输入层,第一隐藏层、第二隐藏层与第三输出层;第三输入层将对cnn模块输出的一维向量序列与lstm模块输出的隐状态向量进行拼接,即输入第三输入层的输入节点数为128;第一隐藏层的节点数为256,激活函数为relu;第二隐藏层的节点数256,激活函数为relu,添加dropout,dropout丢弃率为0.5;第三输出层的的节点数为6,激活函数为softmax。

13、进一步地,所述参数验证模型的训练方法包括:

14、从后台的日志中选出n组参数样本与参数样本相对应的标注组成训练集合;初始化参数验证模型的权重,参数验证模型的权重为预设值,正向传播计算损失函数loos,反向传播计算梯度,设置优化器adam更新网络权重参数验证模型的权重,重复训练直至损失函数收敛,则参数验证模型训练完成;

15、其中,损失函数loos的计算公式包括:

16、

17、式中,yi为第i组参数样本相对应的标注的真实概率;pi为第i组参数样本相对应的标注的预测概率;ε为预设值;i≤n。

18、进一步地,所述根据参数样本的标注判断是否给予api请求通过权限的判断方法包括:

19、当参数样本的标注为正常时,给予api请求通过权限;

20、当参数样本的标注不为正常时,拒绝给予api请求通过权限并向后台发送错误报告。

21、进一步地,所述熔断阈值模型的构建方法包括:

22、将每组参数样本的标注与服务调用参数转换为第一特征向量的形式,第一特征向量中的元素包括正常、类型失配、注入攻击、值越界、畸形数据、缺失必填字段、错误率与响应时间;

23、将所有第一特征向量的集合作为熔断阈值模型的输入,所述熔断阈值模型以对每组第一特征向量预测的安全阈值作为输出,以每组第一特征向量对应的实际安全阈值作为预测目标,以最小化所有预测的安全阈值的第一预测准确度之和作为训练目标;

24、其中,第一预测准确度的计算公式为:kd=(zd-qd)2,其中,kd为第一预测准确度,zd为第d组参数样本的标注与服务调用参数对应的预测的安全阈值,qd为第d组参数样本的标注与服务调用参数对应的实际安全阈值;对熔断阈值模型进行训练,直至第一预测准确度之和达到收敛时停止训练;d为第一特征向量的组号;所述熔断阈值模型为决策树和随机森林中的任一种;

25、进一步地,服务评级包括11、12、13;启动码为0或1,0为不启动熔断机制,1为启动熔断机制;13为核心服务,12为一般服务,11为非核心服务。

26、进一步地,所述服务分级模型的构建方法包括:

27、将每组api请求的参数样本转换为第二特征向量的形式,第二特征向量中的元素包括参数类型、参数名称、参数值范围、参数格式与参数必填性;

28、将所有第二特征向量的集合作为服务分级模型的输入,所述服务分级模型以对每组第二特征向量预测的服务评级作为输出,以每组第二特征向量对应的实际服务评级作为预测目标,以最小化所有预测的服务评级的第二预测准确度之和作为训练目标;

29、其中,第二预测准确度的计算公式为:tr=(sr-vr)2,其中,tr为第二预测准确度,sr为第r组api请求的参数样本对应的预测的服务评级,vr为第r组ap i请求的参数样本对应的实际服务评级;对服务分级模型进行训练,直至第二预测准确度之和达到收敛时停止训练;所述服务分级模型为回归模型和决策树中的任一种。

30、进一步地,所述熔断启动模型的构建方法包括:

31、预先收集c组服务评级与安全阈值对应的启动码,将服务评级与安全阈值与对应的启动码转换为对应的一组特征向量;

32、将每组特征向量作为熔断启动模型的输入,所述熔断启动模型以每组服务评级与安全阈值对应的一组启动码作为输出,以每组服务评级与安全阈值对应的实际启动码作为预测目标,实际启动码即为预先收集的与服务评级与安全阈值对应的启动码;以最小化所有服务评级与安全阈值的预测误差之和作为训练目标;其中,预测误差的计算公式为dfrh=(drh-dxh)2,其中dfrh为预测误差,h为服务评级与安全阈值对应特征向量的组号,drh为第h组服务评级与安全阈值对应的启动码,dxh为第h组服务评级与安全阈值对应的实际启动码;对熔断启动模型进行训练,直至预测误差之和达到收敛时停止训练。

33、api网关的参数验证及服务熔断系统,系统包括:

34、收集模块:收集api请求的参数样本与服务调用参数;

35、参数验证模块:输入api请求的参数样本至预构建的参数验证模型输出参数样本的标注;

36、api请求授权模块:根据参数样本的标注判断是否给予api请求通过权限;

37、熔断阈值生成模块:输入参数样本的标注与服务调用参数至预构建的熔断阈值模型输出安全阈值;

38、服务分级模块:将api请求的参数样本输入至预构建的服务分级模型输出服务评级;

39、执行模块:将服务评级与安全阈值输入至预构建的熔断启动模型输出启动码。

40、本发明提供的利用深度强化学习优化的api网关的参数验证及服务熔断系统和方法的技术效果和优点:

41、技术效果:

42、利用cnn+lstm+dnn建构的参数验证模型,可以捕捉参数的时序和结构依赖关系,有效识别异常参数;服务分级模型和熔断阈值模型采用回归和决策树等算法,可以学习隐含关系自动完成分类和预测任务;将各个模型连接起来形成一个完整的管控链,实现从参数到服务再到熔断策略的全流程智能控制;将参数验证和服务熔断相结合,可以提前触发服务的熔断机制,防止潜在的服务滥用或攻击。

43、优点:

44、自动学习能力强,不需要人工额外给出规则,从大量数据中自动提取依赖关系;识别和响应能力强,多模型协作可以覆盖参数到服务多个环节;扩展性好,模型可以根据业务需要增删调整,系统设计松耦合;成本低,利用现有埋点和监控数据驱动,不需要额外投入;优化持续,模型在线训练可以不断学习新变化和优化策略;参数验证能与熔断机制紧密结合,进一步加强服务的安全性和稳定性,使得服务更可靠、更安全与更高效。

本文地址:https://www.jishuxx.com/zhuanli/20240905/289045.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。