System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及api网关,更具体地,涉及一种基于api网关的版本控制方法和系统。
技术介绍
1、基于api网关的版本控制方案涉及使用api网关作为中心点来管理和路由到不同版本的后端服务。这允许开发者维护多个api版本,确保新功能的渐进式部署不会破坏现有客户端。通过在请求中包含版本信息,无论是通过url、头部还是参数,api网关可以根据客户端需求将请求转发到适当的服务版本。这种策略支持灵活的api演进,并有助于实现向后兼容和平滑过渡。
2、现有技术中,api网关涉及多个api,导致监控资源分布不均,不能针对不同情况的api进行适应性监控,导致api版本更新不及时,延缓性高。
3、因此,如何提高版本控制的适应性与及时性,是目前有待解决的技术问题。
技术实现思路
1、本专利技术提供一种基于api网关的版本控制方法,用以解决现有技术中api监控适应性和及时性的技术问题。所述方法包括:
2、确认api网关管理下的所有api,并将这些api加入监控列表中;
3、获取api网关对api的监控日志,且定义监控列表中每个api当前版本的贡献级别;
4、根据api当前版本的贡献级别将监控列表拆分成多个子监控列表,确定每个子监控列表的监控策略;
5、评估每个子监控列表的监控策略的有效性,并调整监控策略进行api监控;
6、若接收到版本更新的通知或监控到api需要更新,则对api进行版本更新。
7、本申请一些实施例
8、根据api的监控日志得到当前版本的api使用频率和性能数据,将性能数据分解得到多种性能指标;
9、获取整体业务流程,识别整体业务流程中的业务功能、参与者、输入和输出以及交互关系;
10、识别整体业务流程中所涉及的api,记录每个api所涉及的业务功能、输入和输出,并确定api在整体业务流程中的位置;
11、根据api所涉及的业务功能、输入和输出、交互关系和位置确定api之间的依赖关系以及api与其它业务组件的依赖关系;
12、分别将api之间的依赖关系以及api与其它业务组件的依赖关系称作api内依赖与api外依赖;
13、根据所有的api内依赖与api外依赖构建依赖关系图,图中节点代表api或业务组件,边代表依赖的强弱;
14、基于依赖关系图确定api基本贡献度,通过api基本贡献度、api使用频率和多种性能指标确定api当前版本的贡献级别。
15、本申请一些实施例中,基于依赖关系图确定api基本贡献度,包括:
16、通过依赖关系图辨别每个api的直接依赖api和直接依赖业务组件,构建直接依赖列表,表中包括该api所有的直接依赖api和直接依赖业务组件;
17、通过依赖关系图辨别每个api的间接依赖api和间接依赖业务组件,构建间接依赖列表,表中包括该api所有的间接依赖api和间接依赖业务组件;
18、分析直接依赖列表和间接依赖列表中每个api和每个业务组件,量化api和业务组件的权重因素,权重因素包括重要性、复杂性、错误率和稳定性;
19、将重要性、复杂性、错误率和稳定性进行归一化处理,基于每个api和业务组件的预设占比;
20、通过预设占比和权重因素确定每个api和业务组件的基本权重量,计算每个api和业务组件各自的基本权重量之和,从而确定出api和业务组件各自的平均基本权重;
21、根据api和业务组件各自的平均基本权重确定各自直接权重,以此确定api的直接依赖度;
22、根据间接依赖列表通过遍历依赖关系图,并计算路径上所有边的权重乘积来得到api的间接依赖度;
23、基于api的直接依赖度和间接依赖度确定api基本贡献度。
24、本申请一些实施例中,通过api基本贡献度、api使用频率和多种性能指标确定api当前版本的贡献级别,包括:
25、;
26、其中,m为某个api当前版本的贡献级别,为该api基本贡献度,n为该api性能指标的数量,为第i个性能指标对应的性能权重,为第i个性能指标对应的参数大小,为关于api基本贡献度和性能综合的贡献度函数,exp为指数函数,r为api使用频率,为第一常数,为第二常数,[]为取整符号。
27、本申请一些实施例中,根据api当前版本的贡献级别将监控列表拆分成多个子监控列表,确定每个子监控列表的监控策略,包括:
28、整合所有api当前版本的贡献级别,确定贡献级别存在范围;
29、基于贡献级别存在范围定义贡献级别近似区间,贡献级别近似区间内包含多个贡献级别;
30、将每个贡献级别近似区间内的api拆分成多个子监控列表;
31、预设两种映射关系,通过映射关系确定每个子监控列表的监控策略。
32、本申请一些实施例中,通过映射关系确定每个子监控列表的监控策略,包括:
33、两种映射关系分别为整数映射和半数映射,当子监控列表中的平均贡献级别为整数时,通过整数映射确定监控策略,当子监控列表中的平均贡献级别不为整数时,通过半数映射确定监控策略;
34、映射关系为子监控列表中平均贡献级别对应有不同等级的监控策略,监控策略为在业务需求层次、用户需求层次和功能需求层次上不同的资源分配。
35、本申请一些实施例中,评估每个子监控列表的监控策略的有效性,并调整监控策略进行api监控,包括:
36、预设资源利用率和响应时间的函数关系,并构建两者的基准图;
37、根据子监控列表的监控策略等级确定基准匹配程度区间;
38、监控子监控列表中每个api的资源利用率和响应时间进行整合,构建两者实时变化图;
39、比对基准图和实时变化图,得到匹配度;
40、若匹配度位于基准匹配程度区间之内,则不调整监控策略;
41、否则,计算匹配度偏差,通过匹配度偏差调整在业务需求层次、用户需求层次和功能需求层次上不同的资源分配比例。
42、本申请一些实施例中,监控到api需要更新,包括:
43、量化api的业务需求满足标准、性能需求满足标准、安全漏洞需求满足标准;
44、若api的业务需求满足标准、性能需求满足标准、安全漏洞需求满足标准其中一条或多条不满足预设对应阈值,则api需要更新。
45、本申请一些实施例中,对api进行版本更新,包括:
46、在api网关中配置api版本信息,根据api的变更频率、客户端的集成方式、向后兼容性需求和安全性中的一条或多条确定版本控制方式,从而进行版本更新;
47、其中,版本控制方式包括url路径控制、http头控制和请求参数控制。
...【技术保护点】
1.一种基于API网关的版本控制方法,其特征在于,包括:
2.如权利要求1所述的基于API网关的版本控制方法,其特征在于,获取API网关对API的监控日志,且定义监控列表中每个API当前版本的贡献级别,包括:
3.如权利要求2所述的基于API网关的版本控制方法,其特征在于,基于依赖关系图确定API基本贡献度,包括:
4.如权利要求3所述的基于API网关的版本控制方法,其特征在于,通过API基本贡献度、API使用频率和多种性能指标确定API当前版本的贡献级别,包括:
5.如权利要求1所述的基于API网关的版本控制方法,其特征在于,根据API当前版本的贡献级别将监控列表拆分成多个子监控列表,确定每个子监控列表的监控策略,包括:
6.如权利要求5所述的基于API网关的版本控制方法,其特征在于,通过映射关系确定每个子监控列表的监控策略,包括:
7.如权利要求6所述的基于API网关的版本控制方法,其特征在于,评估每个子监控列表的监控策略的有效性,并调整监控策略进行API监控,包括:
8.如权利要求1所述的基
9.如权利要求1所述的基于API网关的版本控制方法,其特征在于,对API进行版本更新,包括:
10.一种基于API网关的版本控制系统,其特征在于,包括:
...【技术特征摘要】
1.一种基于api网关的版本控制方法,其特征在于,包括:
2.如权利要求1所述的基于api网关的版本控制方法,其特征在于,获取api网关对api的监控日志,且定义监控列表中每个api当前版本的贡献级别,包括:
3.如权利要求2所述的基于api网关的版本控制方法,其特征在于,基于依赖关系图确定api基本贡献度,包括:
4.如权利要求3所述的基于api网关的版本控制方法,其特征在于,通过api基本贡献度、api使用频率和多种性能指标确定api当前版本的贡献级别,包括:
5.如权利要求1所述的基于api网关的版本控制方法,其特征在于,根据api当前版本的贡献级别将监控列表...
【专利技术属性】
技术研发人员:李华军,徐海涛,杜万波,李春生,赵树春,郑康乐,范振兴,王炳成,尹志伟,魏玉婷,杨平,王家兴,
申请(专利权)人:华能信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。