一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于人工智能的接口优化方法、装置、设备和存储介质与流程

2022-02-19 12:53:36 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种基于人工智能的接口优化方法、装置、设备和存储介质。


背景技术:

2.随着互联网技术的发展和业务的拓展,为了适应互联网系统的业务需求,开发出了大量的接口供内部和外部使用,系统的接口状况进一步增多和复杂化。这些接口在生产运营当中面临着安全和吞吐量的挑战,例如接口未使用https协议或未使用url签名导致接口参数被篡改,未设置防重放和非授权登录引起的其他安全问题;接口吞吐量过大且系统配置的硬件资源不足导致延时过高或不稳定等各种各样的情况出现。为了不影响业务的正常运行,保证接口的正常调用十分关键。


技术实现要素:

3.为了解决现有技术中接口增多和复杂化导致不能保证接口正常调用的技术问题。本技术提供了一种基于人工智能的接口优化方法、装置、设备和存储介质,其主要目的在于优化接口,保证接口的正常调用。
4.为实现上述目的,本技术提供了一种接口优化方法,该方法包括:
5.获取上线前的目标接口的接口配置数据,接口配置数据包括:接口的唯一标识、接口参数属性、接口所属系统的系统配置数据;
6.将目标接口的接口配置数据输入至已训练的接口调用预测模型,以得到目标接口的预测调用效果,预测调用效果包括正常和不正常;
7.若目标接口的预测调用效果为不正常,则根据预设规则调节目标接口所属系统的系统配置数据和接口参数属性,将调节后的接口配置数据输入至已训练的接口调用预测模型,以重新预测目标接口的预测调用效果,直至目标接口的预测调用效果为正常。
8.此外,为实现上述目的,本技术还提供了一种接口优化装置,该装置包括:
9.第一配置数据获取模块,用于获取上线前的目标接口的接口配置数据,接口配置数据包括:接口的唯一标识、接口参数属性、接口所属系统的系统配置数据;
10.预测模块,用于将目标接口的接口配置数据输入至已训练的接口调用预测模型,以得到目标接口的预测调用效果,预测调用效果包括正常和不正常;
11.第一优化模块,用于若目标接口的预测调用效果为不正常,则根据预设规则调节目标接口所属系统的系统配置数据和接口参数属性,将调节后的接口配置数据输入至已训练的接口调用预测模型,以重新预测目标接口的预测调用效果,直至目标接口的预测调用效果为正常。
12.为实现上述目的,本技术还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时执行如前面任一项的接口优化方法的步骤。
13.为实现上述目的,本技术还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如前面任一项的接口优化方法的步骤。
14.本技术提出的基于人工智能的接口优化方法、装置、设备和存储介质,本技术通过神经网络模型来预估目标接口的调用使用情况,以此来不断调节目标接口的接口配置数据和接口参数,达到优化接口,降低硬件成本的目的。
附图说明
15.图1为本技术一实施例中接口优化方法的应用场景图;
16.图2为本技术一实施例中接口优化方法的流程示意图;
17.图3为本技术一实施例中接口优化装置的结构框图;
18.图4为本技术一实施例中计算机设备的内部结构框图。
19.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
20.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
21.本技术提供的接口优化方法,可应用在如图1的接口优化系统中。该接口优化系统包括多个终端设备110和服务器120。终端设备110和服务器120通过网络连接。终端设备110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑和便携式可穿戴设备等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
22.每个终端设备110都可以调用服务器120的各种接口,以访问服务器120。服务器120获取上线前的目标接口的接口配置数据,接口配置数据包括:接口的唯一标识、接口参数属性、接口所属系统的系统配置数据;将目标接口的接口配置数据输入至已训练的接口调用预测模型,以得到目标接口的预测调用效果,预测调用效果包括正常和不正常;若目标接口的预测调用效果为不正常,则根据预设规则调节目标接口所属系统的系统配置数据和接口参数属性,将调节后的接口配置数据输入至已训练的接口调用预测模型,以重新预测目标接口的预测调用效果,直至目标接口的预测调用效果为正常。
23.图2为本技术一实施例中接口优化方法的流程示意图。参考图2,以该方法应用在图1中的服务器为例进行说明。该接口优化方法包括以下步骤s100

s300。
24.s100:获取上线前的目标接口的接口配置数据,接口配置数据包括:接口的唯一标识、接口参数属性、接口所属系统的系统配置数据。
25.具体地,目标接口为待优化的新接口,本实施例是在目标接口上线前的优化。接口的唯一标识可以为接口名称或接口id。接口参数属性包括接口参数的类型和接口参数的数量。接口所属系统的系统配置数据包括系统集群的参数、主机数、主机cpu总和、内存总量、
机房带宽、负载均衡的数量、系统的软件参数(例如:nginx配置参数)等系统的硬件资源和软件资源配置。其中,接口参数的类型和系统配置数据在接口上线前可调节。
26.s200:将目标接口的接口配置数据输入至已训练的接口调用预测模型,以得到目标接口的预测调用效果,预测调用效果包括正常和不正常。
27.具体地,将目标接口的接口配置数据输入到训练好的接口调用预测模型中,得到该目标接口在当前接口配置数据下的预测调用效果。若预测调用效果为正常,该接口暂时不需要优化。若预测调用效果为不正常,则该目标接口需要优化。
28.接口调用预测模型的训练过程为:获取训练样本集,训练样本集包括多个标签为调用效果为正常或不正常的训练样本,每个训练样本包括样本接口的唯一标识、样本接口的接口参数属性、样本接口所属样本系统的样本系统配置数据;利用训练样本集对待训练接口调用预测模型进行迭代训练直到满足训练停止条件,得到已训练的接口调用预测模型。
29.s300:若目标接口的预测调用效果为不正常,则根据预设规则调节目标接口所属系统的系统配置数据和接口参数属性,将调节后的接口配置数据输入至已训练的接口调用预测模型,以重新预测目标接口的预测调用效果,直至目标接口的预测调用效果为正常。
30.具体地,如果目标接口的预测调用效果为不正常,则自动调节系统配置数据和接口参数属性中的至少一种子配置数据,以更改目标接口的接口配置数据,将更改的接口配置数据输入到已训练的接口调用预测模型中,以重新对目标接口进行预测,得到新的预测调用效果。如果新的预测调用效果为正常,则不再调节目标接口的接口配置数据;如果新的预测调用效果为不正常,则循环前面的步骤:根据预设规则自动调节系统配置数据和接口参数属性中的至少一种子配置数据,以更改目标接口的接口配置数据,将更改的接口配置数据输入到已训练的接口调用预测模型中,以重新对目标接口进行预测,得到新的预测调用效果,直到目标接口的预测调用效果为正常。预设规则为对系统配置数据和接口参数属性中可调节的子配置数据进行随机组合,得到多种调节组合,依次根据每种调节组合对目标接口的接口配置数据进行调节,通过已训练的接口调用预测模型对调节后的目标接口的调用效果进行预测,直至找到使目标接口的预测调用效果为正常的调节组合。
31.本实施例在目标接口上线前,通过已训练的接口调用预测模型来预测在不同的接口配置数据下的目标接口的调用效果,以挑选出能让目标接口正常调用的目标接口配置数据。实现了对上线前的目标接口的初步优化。提高了接口优化效率,节省人力,降低了硬件成本。
32.本实施例基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
33.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
34.在一个实施例中,在步骤s300之后,该方法还包括:
35.获取目标接口经过调节后的接口配置数据和历史接口的接口配置数据;
36.获取历史接口的接口监控数据,以及目标接口上线后的接口监控数据;
37.从接口配置数据和接口监控数据中提取出每个历史接口和目标接口的关键数据集合,以组成关联挖掘数据集,其中,关键数据集合包括接口的唯一标识、接口功能、接口参数属性、接口所属系统的系统配置数据、接口调用时刻、响应时长、接口返回数据、请求方式、请求头、请求方ip和端口、接口所在网络节点的机房位置和响应码;
38.扫描关联挖掘数据集中每条关键数据集合,通过增长项集数据字段数目获得最终频繁项集;
39.利用支持度和最小可信度原则,根据频繁项集获得关联规则;
40.根据关联规则获取各个历史接口的优化项,优化项为关键数据集合中的关键数据;
41.选取与目标接口相似度最高的历史接口作为目标历史接口;
42.根据预设的处理规则和目标历史接口的优化项,对目标接口进行优化。
43.具体地,调节后的接口配置数据即目标接口配置数据,是经过步骤s100

s300调节后得到的。调节后的接口配置数据也是目标接口上线后的接口配置数据。目标接口上线后,终端设备可以通过调用目标接口来访问服务器。历史接口为已上线且被调用过的老接口。历史接口和目标接口上线后其调用不互斥也不冲突。
44.本实施例目的在于优化上线后的接口。接口监控数据为上线的接口被调用的监控数据。接口监控数据包括:接口的唯一标识、接口功能、接口调用时刻、响应时长、接口返回数据、请求方式、请求头、请求方ip和端口、接口所在网络节点的机房位置和响应码,不局限于此。响应时长为接口调用的耗时。响应码为在接口调用时服务器对接口调用的状态的一种反馈信息。请求方式为终端设备调用接口所采用的请求方式,请求方式包括get、post、delete、head、options、put、trac。接口返回数据为服务器响应终端设备发送的接口请求而向终端设备返回的目标数据。请求方ip和端口为终端设备对应的ip和端口。接口所在网络节点的机房位置即接口所在服务器的地理位置。响应码为100代表客户端必须继续发出请求;响应码为200代表表明该请求被成功地完成,所请求的资源发送到客户端;响应码为502代表网关错误。请求头包含host、user

agent、accept、accept

language、referer、cookie、cache

control、x

forwarded

for等参数。
45.所有关键数据集合组成关联挖掘数据集。每个关键数据集合为该关联挖掘数据集中的一个数据集。
46.本实施例基于apriori算法计算频繁项集和关联规则。频繁项集(frequent item sets):是经常出现在一块的物品的集合,关联规则(association rules):暗示两种物品之间可能存在很强的关系,通常表示物品之间的“如果

那么”关系。
47.从大规模数据集中寻找物品间的隐含关系被称作关联分析(association analysis)或者关联规则学习(association rule learning)。根据基于apriori算法,如果某个项集是频繁的,那么它的所有子集也是频繁的,如果某个项集是非频繁的,那么它的所有超集也是非频繁的。项集指项的集合。采用apriori原理,以减少关联规则学习时所需的计算量。
48.通过项集数据字段数目不断增长来逐步完成获得频繁项集。首先扫描关联挖掘数
据集,生成包含多个第一候选项的1

项集c1,每个第一候选项包含一个元素。分别统计关联挖掘数据集中包含某个第一候选项的关键数据集合的数量,计算该第一候选项的第一支持度,其中,第一支持度为包含该第一候选项的关键数据集合的数量与关联挖掘数据集中关键数据集合的总数量的比值,该比值即为该第一候选项出现的频率或占比,将该第一支持度与最小支持度进行比较,若该第一支持度小于最小支持度,则代表该第一候选项出现的频率不高。保留第一候选项中其第一支持度大于等于最小支持度的第一候选项组成项集过滤后的1

频繁项集l1。
49.扫描关联挖掘数据集,根据1

频繁项集l1生成包含多个第二候选项的2

项集c2,每个第二候选项包含两个元素。分别统计关联挖掘数据集中包含某个第二候选项的关键数据集合的数量,计算该第二候选项的第二支持度,其中,第二支持度为包含该第二候选项的关键数据集合的数量与关联挖掘数据集中关键数据集合的总数量的比值,该比值即为该第二候选项出现的频率或占比,将该第二支持度与最小支持度进行比较,若该第二支持度小于最小支持度,则代表该第二候选项出现的频率不高。保留2

项集c2中其第二支持度大于等于最小支持度的第二候选项组成项集过滤后的2

频繁项集l2。
50.扫描关联挖掘数据集,根据2

频繁项集l2生成多个3

项集c3,根据上述相同方法过滤得到3

频繁项集l3。
51.中间生成的n

频繁项集ln均为候选频繁项集。
52.如此类推,过滤不满足最小支持度的候选项,通过满足最小支持度的候选项生成新的k

项集ck,然后再计算新的k

项集ck中各个候选项对应的支持度,过滤不满足最小支持度的候选项,通过满足最小支持度的候选项生成新的k 1

项集ck 1,如此循环直到没有新的项集可生成为止。将最后得到的n

频繁项集ln作为该关联挖掘数据集的频繁项集。
53.该算法首先会生成包含多个第一候选项的项集,第一候选项包含单个元素。接着关联挖掘数据集来查看哪些第一候选项满足最小支持度要求,那些不满足最小支持度的第一候选项会被去掉。然后,对剩下来的第一候选项进行组合以生成包含多个第二候选项的项集,第二候选项包含两个元素。接下来,再重新扫描关联挖掘数据集,去掉不满足最小支持度的第二候选项。该过程重复进行直到所有项集都被去掉,得到最终的频繁项集。得到的频繁项集可能不止一个。
54.支持度:数据集中包含该候选项的记录所占的比例,也就是该候选项在数据集中的出现频率,用以衡量候选项的频繁程度。最小支持度要求是频繁项集的量化定义。
55.例如:1

频繁项集l1生成:生成候选集并通过扫描数据集得到它们的支持度。例如:1

项集c1={c11=(接口名称1),c12=(请求方式1),c13=(接口返回数据1),c14=(响应时长1),c15=(请求方ip1)...c1n}。其中,c11、c12、c13、c14、c15、c1n均为第一候选项,每个第一候选项包含一个元素,例如,c11包含“接口名称1”这个元素,c12包含“请求方式1”这个元素。统计关联挖掘数据集中分别包含第一候选项c11、c12、c13、c14、c15的关键数据集合的数量分别为n1、n2、n3、n4、n5。统计关联挖掘数据集中关键数据集合的总数量为n,则c11

c15的第一支持度分别为n1/n、n2/n、n3/n、n4/n、n5/n。
56.选择第一支持度大于等于最小支持度的第一候选项组成1

频繁项集l1,假设c11

c15以及其他部分第一候选项的第一支持度大于等于最小支持度,则l1={接口名称1,请求方式1,接口返回数据1,响应时长1,请求方ip1...}。
[0057]2‑
频繁项集l2生成:由l1生成2

候选集并通过扫描数据集得到它们的支持度,c2={c21=(接口名称1&请求方式1),c22=(请求方式1&接口返回数据1),c23=(接口名称1&接口返回数据1),c24=(接口名称1&响应时长1),c25=(请求方式1&请求方ip1)...c2m}。其中,c21、c22、c23、c24、c25、c2m均为第二候选项,每个第二候选项包含两个元素,例如,c21包含“接口名称1”和“请求方式1”这两个元素,c22包含“请求方式1”和“接口返回数据1”这两个元素。统计关联挖掘数据集中分别包含第二候选项c21、c22、c23、c24、c25的关键数据集合的数量分别为m1、m2、m3、m4、m5。统计关联挖掘数据集中关键数据集合的总数量为n,则c21

c25的第二支持度分别为m1/n、m2/n、m3/n、m4/n、m5/n。
[0058]
选择第二支持度大于等于最小支持度的第二候选项组成2

频繁项集l2,假设c21

c24以及其他部分第二候选项的第二支持度大于等于最小支持端,c25的第二支持度小于最小支持度,则l2={接口名称1&请求方式1,请求方式1&接口返回数据1,接口名称1&接口返回数据1,接口名称1&响应时长1...}。
[0059]
以此类推生成l3、l4、l5、lk等,直到频繁项集的数据字段数目不能增加为止。
[0060]
频繁项集中的元素是不重复的,如果某条规则并不满足最小可信度要求,那么该规则的所有子集也不会满足最小可信度要求。
[0061]
对每一个频繁项集l,列出其所有非空子集s;2.对每个l的非空子集s,若support_count(l)/support_count(s)>=min_conf,则获得关联规则“s=>(l

s)”,其中min_conf为最小可信度阈值。
[0062]
可信度计算公式:
[0063][0064]
其中,support_count(a∪b)是包含元素a∪b的关键数据集合的数量,support_count(a)是包含元素a的关键数据集合的数量。
[0065]
举例来说:若频繁项集l={接口名称1,响应码1,请求方ip1},l的非空子集有s1={接口名称1&响应码1}、s2={接口名称1&请求方ip1}、s3={响应码1&请求方ip1}、s4={接口名称1}、s5={响应码1}和s6={请求方ip1},统计关联挖掘数据集中分别包含非空子集s1、s2、s3、s4、s5、s6的关键数据集合的数量分别为5、3、3、7、8、3。
[0066]
候选关联规则如下:
[0067]
规则1:{接口名称1,响应码1}=>{请求方ip1},confidence=3/5=60%
[0068]
规则2:{接口名称1,请求方ip1}=>{响应码1},confidence=3/3=100%
[0069]
规则3:{响应码1&请求方ip1}=>{接口名称1},confidence=3/3=100%
[0070]
规则4:{接口名称1}=>{响应码1&请求方ip1},confidence=3/7=43%
[0071]
规则5:{响应码1}=>{接口名称1,请求方ip1},confidence=3/8=38%
[0072]
规则6:{请求方ip1}=>{接口名称1,响应码1},confidence=3/3=100%
[0073]
如果最小可信度为85%,则规则2、3、6为输出的关联规则。
[0074]
其中,可信度:又称置信度,是针对关联规则来定义的,表示某项集在指定条件下的出现概率,用以衡量物品之间的关系。
[0075]
上述仅仅是示例性举例来说明如何获得最终频繁项集,实际的关联挖掘数据集中包含较多数据字段或元素,因此,每个中间频繁项集n

频繁项集ln不局限于上述举例。
[0076]
根据上述可以挖掘出各个历史接口对应的关联规则,根据历史接口的关联规则,可以获得历史接口的优化项,其中,优化项为与历史接口相关联的可调节的配置数据。
[0077]
例如,根据规则2、3、6可以得出请求方ip1调用接口名称1对应的接口时,服务器返回响应码1。因此,接口名称1对应的接口的优化项为请求方ip和响应码1。
[0078]
根据目标接口的接口配置数据计算目标接口与各个历史接口的相似度,选取相似度最高的历史接口作为目标历史接口。将目标历史接口的优化项作为目标接口的优化项对目标接口进行优化。
[0079]
例如,历史接口的优化项中包含响应码,如果响应码为502,表示网关错误,则需要修正网关以优化目标接口的网络运行环境。
[0080]
另外,根据上述关联规则的挖掘,也可以挖掘出目标接口的关联规则,根据目标接口的关联规则找到目标接口对应的优化项,以对目标接口进行优化。
[0081]
本实施例通过关联规则挖掘出各个历史接口的优化项,根据相似度找出目标接口的相似接口,根据相似接口的优化项对目标接口进行二次优化,实现了对上线后的接口的再次优化。
[0082]
在一个实施例中,获取历史接口的接口监控数据,以及目标接口上线后的接口监控数据,包括:
[0083]
根据预设采样频率对历史接口和目标接口的接口监控数据进行采样,接口监控数据包括:接口的唯一标识、接口功能、接口调用时刻、响应时长、接口返回数据、请求方式、请求头、请求方ip和端口、接口所在网络节点的机房位置和响应码;
[0084]
对采样到的同一个历史接口或目标接口的接口监控数据进行异常数据剔除处理。
[0085]
具体地,接口监控系统会对上线后的目标接口和历史接口的调用情况进行实时监控。每个接口会被不同的终端设备或客户端在不同时刻调用,因此,每个接口会产生较多的接口监控数据。本实施例根据预设采样频率对各个接口的接口调用数据进行采样,以有规律的收集数据样本,减少数据的计算量。
[0086]
采样频率可以为例如1分钟、30s等不局限于此。例如,对于一个接口,每1分钟采样一条接口监控数据。由于每种应用都有使用高峰期和低峰期,因此,在一个采样周期的不同采样时刻接口的调用情况可能存在差异,因此,采样周期可以设置为24h。
[0087]
每条接口调用数据中都包含该次接口调用的响应时长,根据响应时长可以初步判断哪些接口调用数据是突发事件引起的异常数据,以将突发事件引起的异常的接口调用数据排除,降低突发事件对关联规则挖掘的影响。
[0088]
在一个实施例中,对采样到的同一个历史接口或目标接口的接口监控数据进行异常数据剔除处理,包括:
[0089]
根据采样时刻和预设时间间隔对采样到的同一个历史接口或目标接口的接口监控数据进行划分,得到至少一组监控数据子集合,其中,每组监控数据子集合包括至少一条连续的接口监控数据;
[0090]
对监控数据子集合按照采样时刻的先后顺序进行排序;
[0091]
分别计算各个监控数据子集合对应的响应时长的第一均值;
[0092]
循环执行以下步骤以判断各个监控数据子集合是否为异常数据:
[0093]
计算从排序中第一组监控数据子集合到当前监控数据子集合之间所有正常监控
数据子集合对应的响应时长的第二均值,其中,当前监控数据子集合为排序中任意一组监控数据子集合,
[0094]
若当前监控数据子集合的第一均值与第二均值的差值的绝对值大于等于第一预设差值,则判定当前监控数据子集合中的接口监控数据均为异常数据,
[0095]
若当前监控数据子集合的第一均值与第二均值的差值的绝对值小于第一预设差值,则判定当前监控数据子集合中的接口监控数据均为正常数据,
[0096]
剔除判定为异常数据的接口监控数据。
[0097]
具体地,对接口监控数据进行划分是为了以时间段为单位对接口监控数据进行异常判断。预设时间间隔例如可以是1小时,如果采样周期为24小时,则同一个接口的接口监控数据被划分为24组监控数据子集合,每组监控数据子集合包括1个小时内采样的所有接口监控数据。
[0098]
根据采样时刻对这24组监控数据子集合按照时间先后顺序排序。例如,0:00

1:00之间1个小时采样的接口监控数据组成第一组监控数据子集合,1:00

2:00之间1个小时采样的接口监控数据组成第二组监控数据子集合...23:00

24:00之间1个小时采样的接口监控数据组成第24组监控数据子集合。
[0099]
每组监控数据子集合包括多条接口监控数据,且每条接口监控数据对应有响应时长,因此,通过求平均值可以计算得到每组监控数据子集合对应的响应时长的第一均值。
[0100]
从第一组监控数据子集合开始,分别计算从第一组监控数据子集合到当前监控数据子集合之间所有正常监控数据子集合对应的响应时长的第二均值,当前监控数据子集合为排序中任意一组监控数据子集合。例如:如果当前监控数据子集合为第一组监控数据子集合,则第二均值等于其第一均值。如果当前监控数据子集合为第二组监控数据子集合,则第二均值为第一组监控数据子集合和第二监控数据子集合中所有接口监控数据对应的响应时长的平均值。如果当前监控数据子集合为第三组监控数据子集合,且第二组监控数据子集合中的接口监控数据为正常数据,则第二均值为第一组监控数据子集合、第二监控数据子集合和第三监控数据子集合中所有接口监控数据对应的响应时长的平均值。以此类推,可以计算每组监控数据子集合对应的第二均值。
[0101]
如果当前监控数据子集合为第二组监控数据子集合,则将第二组监控数据子集合对应的第一均值与第二均值的差值的绝对值与第一预设差值进行比较。如果差值的绝对值大于等于第一预设差值,则判定该组监控数据子集合中的响应时长过长,可能是突发事件引起接口调用的响应时长延长,因此,判定该组监控数据子集合中的接口监控数据为异常数据。如果差值的绝对值小于第一预设差值,则判定该组监控数据子集合中的接口监控数据为正常数据。以此类推,按照排序的先后顺序,对每组监控数据子集合进行异常判断。
[0102]
在一个实施例中,剔除判定为异常数据的接口监控数据,包括:
[0103]
获取异常的接口监控数据的第一历史接口监控数据和第二历史接口监控数据,其中,第一历史接口监控数据与异常的接口监控数据相距第一预设时长且位于不同采样周期的相同采样时刻,第二历史接口监控数据与异常的接口监控数据相距第二预设时长且位于不同采样周期的相同采样时刻,其中,第一预设时长与第二预设时长不等;
[0104]
计算由第一历史接口监控数据组成的第一历史监控数据子集合对应的响应时长的第三均值;
[0105]
计算由第二历史接口监控数据组成的第二历史监控数据子集合对应的响应时长的第四均值;
[0106]
若异常的接口监控数据所对应的异常监控数据子集合的第一均值与第三均值的差值的绝对值大于等于第二预设差值,且,异常的接口监控数据所对应的异常监控数据子集合的第一均值与第四均值的差值的绝对值大于等于第三预设差值,则剔除判定为异常数据的接口监控数据。
[0107]
具体地,应用的使用具有高峰期和低峰期。例如,一天24小时内有一个时间段是高峰期,有一个时间段是低峰期。再例如一周内有几天是高峰期,有几天是低峰期。优选地,设置第一预设时长为1天,第二预设时长为7天。第一历史接口监控数据为前一天的相同采样时刻采样的接口监控数据。第二历史接口监控数据为前7天的相同采样时刻采样的接口监控数据。
[0108]
第一历史监控数据子集合包含多个第一历史接口监控数据,对所包含的所有第一历史接口监控数据的响应时长求均值,得到第三均值。
[0109]
第二历史监控数据子集合包含多个第二历史接口监控数据,对所包含的所有第二历史接口监控数据的响应时长求均值,得到第四均值。
[0110]
将异常的监控数据子集合的第一均值与对应的第三均值的差值的绝对值与第二预设差值比较,将异常的监控数据子集合所的第一均值与对应的第四均值的差值的绝对值与第三预设差值比较,如果第一均值与第三均值的差值的绝对值大于等于第二预设差值,且,第一均值与第四均值的差值的绝对值大于等于第三预设差值,则该剔除该异常的接口监控数据。如果第一均值与第三均值的差值的绝对值小于第二预设差值,或,第一均值与第四均值的差值的绝对值小于第三预设差值,则将该异常的接口监控数据重新判定为正常数据。
[0111]
本实施例将异常的接口监控数据的响应时长均值与其1天前和7天前在不同采样周期的相同采样时刻的响应时长均值进行比较,以再次判断异常的接口监控数据是否为突发事件引起的。如果异常的接口监控数据的响应时长均值与1天前或7天前的响应时长均值差距不大,说明非偶然的突发事件引起,该异常的接口监控数据实质是正常数据。如果异常的接口监控数据的响应时长均值与1天前和7天前的响应时长均值差距都很大,则可以确定异常的接口监控数据是突发事件引起的响应时长延长,需要剔除。
[0112]
在一个实施例中,扫描关联挖掘数据集中每条关键数据集合,通过增长项集数据字段数目获得最终频繁项集之前,包括:
[0113]
将关键数据集合中均出现的关键数据从各个关键数据集合中剔除;
[0114]
扫描剔除后的每条关键数据集合,并将接口的唯一标识作为项集的必选数据字段,通过增长项集数据字段数目获得最终频繁项集。
[0115]
具体地,关键数据集合中均出现的关键数据为100%出现的元素。如果一个关键数据在每一条关键数据集合中都出现,则将其删除,以减少项集组合的计算量。选择接口的唯一标识作为必选元素,可以对各个接口分别计算关联规则,挖掘出各个接口的关联规则。
[0116]
在一个实施例中,根据预设的处理规则和目标历史接口的优化项,对目标接口进行优化,包括:
[0117]
若目标历史接口的优化项均为接口端不可处理的优化项,则暂停根据目标历史接
口的优化项,对目标接口进行优化处理;
[0118]
若目标历史接口的优化项为支撑业务的关键优化项,则选择低峰时间段根据目标历史接口的优化项,对目标接口进行优化;
[0119]
若目标历史接口的优化项为接口端可处理的优化项且不属于支持业务的关键优化项,则采取实时调整的方式根据目标历史接口的优化项,对目标接口进行优化。
[0120]
具体地,若接口调用缓慢,因不可处理的因素导致,则不做处理。例如,通过关联规则获知,导致接口调用慢的因素为请求方ip所致,而请求方为客户端。则说明客户网络存在问题,这种情况下不做处理。为了避免对业务造成大面积影响,部分比较重要的调整,需要在业务低峰期处理。例如:通过关联规则获知,导致接口调用慢的因素为其中一个接口入参。调节入参可能会导致接口访问中断,因此,需要选择低峰期调整。对于不影响业务的因素调整,则采取实时调整的方式。例如:通过关联规则获知,导致接口调用慢的因素为网络带宽,则直接调节带宽。
[0121]
在一个实施例中,该方法还包括:监测目标接口的优化效果;若优化效果为接口调用发生恶化,则对优化项进行回撤操作。
[0122]
具体地,如果优化后,接口调用发生恶化,则立即调回原值。将所有的优化行为记录下来的,供工程师学习。本技术可以自动处理大量的优化工作,只有少部分特殊情况,送达给工程人员查看,由工程人员手动优化。
[0123]
本技术通过神经网络模型来预测目标接口的调用使用情况,并根据apriori算法来确定导致接口调用出现状态的关键因素,根据该关键因素来优化接口。接口的性能预测和优化工作由计算机自动完成,节约了人力,提高的工作效率;接口优化质量可以保障;接口优化也降低了硬件成本。
[0124]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0125]
图3为本技术一实施例中接口优化装置的结构框图。参考图3,该装置包括:
[0126]
第一配置数据获取模块100,用于获取上线前的目标接口的接口配置数据,接口配置数据包括:接口的唯一标识、接口参数属性、接口所属系统的系统配置数据;
[0127]
预测模块200,用于将目标接口的接口配置数据输入至已训练的接口调用预测模型,以得到目标接口的预测调用效果,预测调用效果包括正常和不正常;
[0128]
第一优化模块300,用于若目标接口的预测调用效果为不正常,则根据预设规则调节目标接口所属系统的系统配置数据和接口参数属性,将调节后的接口配置数据输入至已训练的接口调用预测模型,以重新预测目标接口的预测调用效果,直至目标接口的预测调用效果为正常。
[0129]
在一个实施例中,该装置还包括:
[0130]
第二配置数据获取模块,用于获取目标接口经过调节后的接口配置数据和历史接口的接口配置数据;
[0131]
监控数据获取模块,用于获取历史接口的接口监控数据,以及目标接口上线后的接口监控数据;
[0132]
关键数据提取模块,用于从接口配置数据和接口监控数据中提取出每个历史接口
和目标接口的关键数据集合,以组成关联挖掘数据集,其中,关键数据集合包括接口的唯一标识、接口功能、接口参数属性、接口所属系统的系统配置数据、接口调用时刻、响应时长、接口返回数据、请求方式、请求头、请求方ip和端口、接口所在网络节点的机房位置和响应码;
[0133]
频繁项集生成模块,用于扫描关联挖掘数据集中每条关键数据集合,通过增长项集数据字段数目获得最终频繁项集;
[0134]
关联规则生成模块,用于利用支持度和最小可信度原则,根据频繁项集获得关联规则;
[0135]
优化项获取模块,用于根据关联规则获取各个历史接口的优化项,优化项为关键数据集合中的关键数据;
[0136]
相似接口选取模块,用于选取与目标接口相似度最高的历史接口作为目标历史接口;
[0137]
第二优化模块,用于根据预设的处理规则和目标历史接口的优化项,对目标接口进行优化。
[0138]
在一个实施例中,监控数据获取模块包括:
[0139]
采样模块,用于根据预设采样频率对历史接口和目标接口的接口监控数据进行采样,接口监控数据包括:接口的唯一标识、接口功能、接口调用时刻、响应时长、接口返回数据、请求方式、请求头、请求方ip和端口、接口所在网络节点的机房位置和响应码;
[0140]
异常数据剔除模块,用于对采样到的同一个历史接口或目标接口的接口监控数据进行异常数据剔除处理。
[0141]
在一个实施例中,异常数据剔除模块包括:
[0142]
划分单元,用于根据采样时刻和预设时间间隔对采样到的同一个历史接口或目标接口的接口监控数据进行划分,得到至少一组监控数据子集合,其中,每组监控数据子集合包括至少一条连续的接口监控数据;
[0143]
排序单元,用于对监控数据子集合按照采样时刻的先后顺序进行排序;
[0144]
第一计算单元,用于分别计算各个监控数据子集合对应的响应时长的第一均值;
[0145]
循环单元,用于根据以下单元以判断各个监控数据子集合是否为异常数据:
[0146]
第二计算单元,用于计算从排序中第一组监控数据子集合到当前监控数据子集合之间所有正常监控数据子集合对应的响应时长的第二均值,其中,当前监控数据子集合为排序中任意一组监控数据子集合,
[0147]
异常判定单元,用于若当前监控数据子集合的第一均值与第二均值的差值的绝对值大于等于第一预设差值,则判定当前监控数据子集合中的接口监控数据均为异常数据,若当前监控数据子集合的第一均值与第二均值的差值的绝对值小于第一预设差值,则判定当前监控数据子集合中的接口监控数据均为正常数据,
[0148]
异常数据剔除单元,用于剔除判定为异常数据的接口监控数据。
[0149]
在一个实施例中,异常数据剔除单元包括:
[0150]
历史监控数据获取单元,用于获取异常的接口监控数据的第一历史接口监控数据和第二历史接口监控数据,其中,第一历史接口监控数据与异常的接口监控数据相距第一预设时长且位于不同采样周期的相同采样时刻,第二历史接口监控数据与异常的接口监控
数据相距第二预设时长且位于不同采样周期的相同采样时刻,其中,第一预设时长与第二预设时长不等;
[0151]
第三计算单元,用于计算由第一历史接口监控数据组成的第一历史监控数据子集合对应的响应时长的第三均值;
[0152]
第四计算单元,用于计算由第二历史接口监控数据组成的第二历史监控数据子集合对应的响应时长的第四均值;
[0153]
剔除单元,用于若异常的接口监控数据所对应的异常监控数据子集合的第一均值与第三均值的差值的绝对值大于等于第二预设差值,且,异常的接口监控数据所对应的异常监控数据子集合的第一均值与第四均值的差值的绝对值大于等于第三预设差值,则剔除判定为异常数据的接口监控数据;
[0154]
在一个实施例中,频繁项集生成模块包括:
[0155]
去重单元,用于将关键数据集合中均出现的关键数据从各个关键数据集合中剔除;
[0156]
频繁项集生成单元,用于扫描剔除后的每条关键数据集合,并将接口的唯一标识作为项集的必选数据字段,通过增长项集数据字段数目获得最终频繁项集。
[0157]
在一个实施例中,第二优化模块包括:
[0158]
第一子优化单元,用于若目标历史接口的优化项均为接口端不可处理的优化项,则暂停根据目标历史接口的优化项,对目标接口进行优化处理;
[0159]
第二子优化单元,用于若目标历史接口的优化项为支撑业务的关键优化项,则选择低峰时间段根据目标历史接口的优化项,对目标接口进行优化;
[0160]
第三子优化单元,用于若目标历史接口的优化项为接口端可处理的优化项且不属于支持业务的关键优化项,则采取实时调整的方式根据目标历史接口的优化项,对目标接口进行优化。
[0161]
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本技术中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
[0162]
关于接口优化装置的具体限定可以参见上文中对于接口优化方法的限定,在此不再赘述。上述接口优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0163]
图4为本技术一实施例中计算机设备的内部结构框图。该计算机设备具体可以是图1中的服务器。如图4所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,该计算机设备的处理器用于提供计算和控制能力。存储器包括存储介质和内存储器。存储介质可以是非易失性存储介质,也可以是易失性存储介质。存储介质存储有操作系统,还可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器实现接口优化方法。该内存储器为存储介质中的操作系统和计算机可读
指令的运行提供环境。该内存储器中也可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行接口优化方法。该计算机设备的网络接口用于与外部服务器通过网络连接通信。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0164]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令(例如计算机程序),处理器执行计算机可读指令时实现上述实施例中接口优化方法的步骤,例如图2所示的步骤s100至步骤s300及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机可读指令时实现上述实施例中接口优化装置的各模块/单元的功能,例如图3所示模块100至模块300的功能。为避免重复,这里不再赘述。
[0165]
处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
[0166]
存储器可用于存储计算机可读指令和/或模块,处理器通过运行或执行存储在存储器内的计算机可读指令和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
[0167]
存储器可以集成在处理器中,也可以与处理器分开设置。
[0168]
本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0169]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令被处理器执行时实现上述实施例中接口优化方法的步骤,例如图2所示的步骤s100至步骤s300及该方法的其它扩展和相关步骤的延伸。或者,计算机可读指令被处理器执行时实现上述实施例中接口优化装置的各模块/单元的功能,例如图3所示模块100至模块300的功能。为避免重复,这里不再赘述。
[0170]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指示相关的硬件来完成,所述的计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可
得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双倍速率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0171]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
[0172]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
[0173]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献