CN115061836A - 一种接口层面的基于图嵌入算法的微服务拆分方法 - Google Patents

一种接口层面的基于图嵌入算法的微服务拆分方法 Download PDF

Info

Publication number
CN115061836A
CN115061836A CN202210977791.8A CN202210977791A CN115061836A CN 115061836 A CN115061836 A CN 115061836A CN 202210977791 A CN202210977791 A CN 202210977791A CN 115061836 A CN115061836 A CN 115061836A
Authority
CN
China
Prior art keywords
interface
graph
call
nodes
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210977791.8A
Other languages
English (en)
Other versions
CN115061836B (zh
Inventor
李莹
陈龙
刘佳豪
甘蕊
张凌飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Zhongyi Science And Technology Co ltd
Binhai Industrial Technology Research Institute of Zhejiang University
Original Assignee
Tianjin Zhongyi Science And Technology Co ltd
Binhai Industrial Technology Research Institute of Zhejiang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin Zhongyi Science And Technology Co ltd, Binhai Industrial Technology Research Institute of Zhejiang University filed Critical Tianjin Zhongyi Science And Technology Co ltd
Priority to CN202210977791.8A priority Critical patent/CN115061836B/zh
Publication of CN115061836A publication Critical patent/CN115061836A/zh
Application granted granted Critical
Publication of CN115061836B publication Critical patent/CN115061836B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种接口层面的基于图嵌入算法的微服务拆分方法,包括:获取目标单体应用运行时的调用日志,根据日志记录中的参数信息,归纳出各个接口的调用情况,并构建有向调用图;根据设定的采样链长度获取有向调用图内的采样数据;将得到的采样数据投入LINE图嵌入模型中进行训练,提取各个接口向量;利用DBSCAN聚类算法对接口向量进行聚类,将相似度较高的接口归为一类,进而将单体应用的各个功能接口划分为了多个接口簇,实现了从接口层面对目标单体应用进行的拆分。本发明所述的拆分方法,根据单体应用的调用日志生成调用关系图,将应用的调用关系可视化,便于精确分析发掘接口之间的关联。

Description

一种接口层面的基于图嵌入算法的微服务拆分方法
技术领域
本发明属于微服务技术领域,尤其是涉及一种接口层面的基于图嵌入算法的微服务拆分方法。
背景技术
微服务是一种开发软件的架构和组织方法,是面向服务的体系结构(SOA)架构样式的一种变体。它将单一应用程序划分成一组通过明确定义的 API 进行通信的小型独立服务,通过服务之间互相协调、互相配合实现用户所需要的功能。这些组件是独立运行的,因此可以针对各项服务进行更新、部署和扩展,相比于整体架构而言也有着开发便捷、便于部署、易于进行代码复用以及拓展灵活等优势。因此许多项目也逐步从单体架构迁移为微服务架构。
基于上述优势,越来越多的公司将单体应用拆分为微服务架构,拆分的过程往往使用人工拆分的方式,这种方式会带来很多的不合理性。
单体应用迁移为微服务架构的过程中需要进行应用的拆分。合理拆分归纳代码,可以使迁移后的微服务的架构更为清晰,易于维护。然而这个工作当前大多由架构师或开发人员自主完成。这不仅会浪费大量的人力资源,且对于许多复杂的应用而言,开发人员难以熟知应用的各个部分,合理估计各个接口之间的关系进而进行拆分也就难以实现。
为了更好地建设微服务架构,降低服务之间调用延时,需要对微服务的接口进行更加合理的划分。
发明内容
有鉴于此,本发明旨在提出一种接口层面的基于图嵌入算法的微服务拆分方法,以现有技术微服务接口拆分的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种接口层面的基于图嵌入算法的微服务拆分方法,包括:
S1、获取目标单体应用运行时的调用日志,根据日志记录中的参数信息,归纳出各个接口的调用情况,并构建有向调用图;
S2、根据设定的采样链长度获取有向调用图内的采样数据;
S3、将得到的采样数据投入LINE图嵌入模型中进行训练,提取各个接口向量;
S4、利用DBSCAN聚类算法对接口向量进行聚类,将相似度较高的接口归为一类,进而将单体应用的各个功能接口划分为了多个接口簇,实现了从接口层面对目标单体应用进行的拆分。
进一步的,步骤S1中通过跟踪工具Kieker获取目标单体应用运行时的调用日志,具体方法如下:
S101、向目标单体应用系统中插入探针,充分运行准备的测试用例,得到目标单体应用执行时的调用信息;
S102、根据调用信息中的被调用的方法,调用顺序和调用堆栈的深度多种参数信息,归纳出各个接口的调用情况。
进一步的,步骤S1中构建有向调用图采用如下方法:利用节点代表应用接口,有向边代表接口之间的调用关系,边的权值代表接口调用频次,根据上述信息构建有向调用图。
进一步的,步骤S2中,采样流程包括历遍各个节点,逐个进行k次定长有偏随机游走生成训练数据;具体如下:
S201、根据本节点的各个边权值与本节点出度比值,生成各个路径的选择区间;
S202、调用random库生成[0,1]区间内随机数,基于随机数的值选择对应的边进行游走,将目标节点加入节点序列中;
S203、重复步骤S201- S202,直至节点序列长度达到设定的长度;
S204、重复步骤S201- S203 至k次,生成k个以本节点为起点的序列;
S205、重复步骤S201- S204,为所有节点均生成k个序列。
进一步的,步骤S3中的对采集数据训练过程如下:
LINE图嵌入模型用于提取各个接口的一阶特征与二阶特征;
其中,一阶特征的意义为节点之间的直接相连边的权值,同时为相互调用的次数,反应了节点之间直接的相关度;
Figure 140148DEST_PATH_IMAGE001
Figure 244239DEST_PATH_IMAGE002
其中
Figure 227239DEST_PATH_IMAGE003
为i与j接口相互调用频次和,W为两者出度和,E为调用图中边的集合,在LINE模型中采用如下公式来训练,其中ui, uj为两节点的向量为:
Figure 809399DEST_PATH_IMAGE004
进而利用KL散度来表示两者的误差值,误差为损失函数,公式如下:
Figure 561454DEST_PATH_IMAGE005
随后在训练中将采用随机梯度下降法来优化该过程;
二阶特征,为两节点间邻居的重合度,反应了节点之间功能的相似度,相似度值为:
Figure 308218DEST_PATH_IMAGE006
di为两者邻居节点和,
Figure 512934DEST_PATH_IMAGE007
为两者共同的邻居节点数;
LINE模型中采用如下公式训练:
Figure 633206DEST_PATH_IMAGE008
其中,ui, uj为节点嵌入后的向量,
Figure 239768DEST_PATH_IMAGE009
为i向量的转置,
Figure 420082DEST_PATH_IMAGE010
为j向量的转置,
Figure 112095DEST_PATH_IMAGE011
为k向量的转置,V为节点集合;
同样也使用KL散度来衡量不同分布的差距,即二阶相似的目标函数定义为:
Figure 770478DEST_PATH_IMAGE012
随后在训练中将采用随机梯度下降法来优化该过程。
然而对损失时需要计算联合概率,该步骤需要对于整个的节点集合进行求和,复杂度过高。为了解决这个问题,我们采用负采样的方法, 通过一些噪声分布来采样一些负例边,将根据输入前部序列ABC输出结果D的问题转化为输入序列ABC与D判断D是否为正确的下一个节点的判断问题,返回值变成了0与1,而反向传播更新权重时也只更新相关节点的权重进而来降低该部分的复杂度,提升算法的性能。
进一步的,步骤S4中通过DBSCAN聚类算法对接口向量进行聚类过程如下:
S401:从数据集中任意选取一个数据对象点p;
S402:如果对于参数Eps和MinPts,所选取的数据对象点p为核心点,则找出所有从p密度可达的数据对象点,形成一个簇;
S403:如果选取的数据对象点p是边缘点,选取另一个数据对象点;
S404:重复S402-S403步,直到所有点被处理。
相对于现有技术,本发明所述的一种接口层面的基于图嵌入算法的微服务拆分方法具有以下优势:
(1)本发明所述的一种接口层面的基于图嵌入算法的微服务拆分方法,根据单体应用的调用日志生成调用关系图,将应用的调用关系可视化,便于精确分析发掘接口之间的关联。
(2)本发明所述的一种接口层面的基于图嵌入算法的微服务拆分方法,采用定长有偏随机游走对调用图采样,确保采样数据更为契合图中关联,关联密切的节点生成的对应的数据也更多,进而得到的训练也更为充分。
(3)本发明所述的一种接口层面的基于图嵌入算法的微服务拆分方法,采用LINE模型进行训练,充分保留了接口的一阶二阶相似度。从多个维度量化接口的特征属性。
(4)本发明所述的一种接口层面的基于图嵌入算法的微服务拆分方法,最终采用密度聚类进行划分,可以对任意分布的接口向量进行聚类,具有更广泛的适用性,同时可以在聚类时发现异常点,为代码的进一步重构提供建议。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种接口层面的基于图嵌入算法的微服务拆分方法流程图;
图2为本发明实施例所述的构建得到的接口调用有向图的示例以及有偏随机游走采样得到的部分训练数据示意图;
图3为本发明实施例所述的密度聚类的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,基于图嵌入算法的微服务拆分方式包含了数据收集阶段S1,训练数据生成阶段S2,模型训练阶段S3和根据相似度聚类阶段S4。
一种接口层面的基于图嵌入算法的微服务拆分方法,包括以下步骤:
S1、利用跟踪工具得到目标单体应用运行时的调用日志,随后根据执行后得到的日志记录中的参数信息,归纳出各个接口的调用情况,并构建有向调用图;
其中,图中节点代表应用接口,图中有向边代表接口之间的调用关系,边的权值为接口调用的频次;
S2、遍历图中各个节点,逐个进行k次定长有偏随机游走,对S1中得到的调用图进行采样,其中采样链的长度为设置的常数值,随机游走时的概率为该边的权值与选定节点出度的比值;
S3、将得到的采样数据投入LINE图嵌入模型中进行训练,提取各个接口的一阶特征向量与二阶特征向量,该接口向量则可以由训练得到的特征向量拼接后表示;
S4、利用DBSCAN聚类算法对接口向量进行聚类,将相似度较高的接口归为一类,进而将单体应用的各个功能接口划分为了多个接口簇,实现了从接口层面对目标单体应用进行的拆分。
步骤S1中,服务端构建微服务集群方法为:
服务端基于spring cloud构建服务集群,在微服务应用启动类上开启服务发现注解@EnableDiscoveryClient 和 feign 注解@EnableFeignClients,微服务应用之间通过Feign Client调用。
步骤S1中,收集还原各微服务应用之间分布式链路调用过程并形成图状调用链的方法:在每个微服务应用的配置文件中添加链路追踪工具SOFATracer依赖、Spring CloudOpenFeign依赖和数据收集工具Zipkin 依赖,使用SOFATracer对Spring Cloud OpenFeign组件进行埋点接入用于获取各微服务应用链路调用过程;各项目工程引入链路收集展示工具 Zipkin,启动Zipkin服务端,接收SOFATracer上报的链路日志数据,Zipkin对链路日志数据清洗形成图状调用链,还原分布式链路调用过程。
步骤S1中所述的跟踪工具为Kieker,收集调用日志信息的流程为:(1)向目标单体应用系统中插入探针,充分运行准备的测试用例,得到单体应用执行时的调用信息。(2) 根据调用信息中的被调用的方法,调用顺序和调用堆栈的深度等参数信息,归纳出各个接口的调用情况。
步骤S1中的调用图构建方式为:图中节点代表应用接口,图中有向边代表接口之间的调用关系,边的权值为接口调用的频次;例如图2中节点A与节点B之间存在一条由A指向B的边权值为5的有向边,代表在运行样例的过程中,接口A直接调用了5次接口B。
步骤S2中采样流程为遍历图中所有节点,以对应节点为起点进行k次定长有偏随机游走生成训练数据,该流程如下所示:
(1)根据该节点的各个边权值与该节点出度比值,生成各个路径的选择区间;
(2)调用random库生成[0,1]区间内随机数,基于随机数的值选择对应的边进行游走,将目标节点加入节点序列;
(3)重复(1)(2)步骤,直到节点序列长度到定长;
(4)重复(1)-(3)步骤k次,生成k个以该节点为起点的序列;
(5)重复(1)-(4)步骤,为所有节点均生成k个序列;
以图2中A节点为例,其通过定长为4的有偏随机游走生成训练序列的过程为:(1)图中A为起点的边有:A->B,A->C,A->D,A->E,边权值分别为6,8,3,3,则对应的区间为B:[0-0.3],C:[0.3-0.7],D:[0.7-0.85],D:[0.85-1]。随后生成[0,1]之间的随机数,选择对应的边为游走路线,例如所生成随机数为0.2,则选择边A->B,此时序列为A,B;(2)从B开始重复(1)中的流程,选择下一个节点,如E。序列为A,B,E;(3)重复(1)(2)流程直到序列长度达到定长4为止,图例中的某次游走结果为:A,B,E,D;(4)重复流程(1-3)直到为每个节点均生成k次以其为初始点的序列为止,其部分序列如图2所示。
步骤S3中的LINE图嵌入模型可以提取各个接口的一阶特征与二阶特征。其中一阶特征的意义为节点之间的直接相连边的权值,即为相互调用的次数,反应了节点之间直接的相关度。相关度值表示为:
Figure 231546DEST_PATH_IMAGE001
Figure 116850DEST_PATH_IMAGE013
进而可以利其中
Figure 296159DEST_PATH_IMAGE003
为i与j与接口相互调用频次和,W为两者出度和,E为调用图中边集合,在LINE模型中采用如下公式来训练,其中ui, uj为节点嵌入后的向量表示:
Figure 758233DEST_PATH_IMAGE014
进而可以利用KL散度来表示两者的误差值,即为损失函数,该部分简化表示如下:
Figure 339387DEST_PATH_IMAGE015
随后在训练中将采用随机梯度下降法来优化该过程。
其中随机梯度下降法是一个一阶最优化算法,使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索,是一种常用的算法,具体过程此处不再详细介绍。
步骤S3中的所述的节点间的二阶特征,其意义为两节点间邻居的重合度,反应了节点之间功能的相似度。相似度值可以表示为:
Figure 861504DEST_PATH_IMAGE006
Figure 793688DEST_PATH_IMAGE016
为两者邻居节点和,
Figure 59453DEST_PATH_IMAGE007
为两者共同的邻居节点数。在LINE模型中采用如下公式训练:
Figure 495114DEST_PATH_IMAGE017
其中,ui, uj为节点嵌入后的向量,
Figure 191062DEST_PATH_IMAGE018
为i向量的转置,
Figure 79383DEST_PATH_IMAGE010
为j向量的转置,
Figure 148839DEST_PATH_IMAGE011
为k向量的转置,V为节点集合;
同样也使用KL散度来衡量不同分布的差距。不同分布的差距通过二阶相似相似的目标函数定义为:
Figure 439007DEST_PATH_IMAGE019
然而对损失时需要计算联合概率
Figure 568505DEST_PATH_IMAGE020
,该步骤需要对于整个的节点集合进行求和,复杂度过高。为了解决这个问题,我们采用负采样的方法, 通过一些噪声分布来采样一些负例边,将根据输入前部序列ABC输出结果D的问题转化为输入序列ABC与D判断D是否为正确的下一个节点的判断问题,返回值变成了0与1,而反向传播更新权重时也只更新相关节点的权重进而来降低该部分的复杂度,提升算法的性能。
我们一个简单有效的方式来结合一阶相似度和二阶相似度对节点进行嵌入:首先训练LINE模型,然后将一阶,二阶近似性的结果进行向量结果的拼接。即:对于节点A最终基于一阶相似度嵌入的结果为[0.6,0.7,0.2],二阶相似度嵌入结果为 [0.3,0.1,0.9],则该节点向量为:[0.6,0.7,0.2,0.3,0.1,0.9]。
步骤S4中的DBSCAN聚类中使用到eps邻域,该定义表示为:
Figure 678544DEST_PATH_IMAGE021
,以对象p为中心,以给定半径eps为半径的邻域称为对象p的eps邻域。
密度阈值Minpts。对于给定的对象集D,
Figure 286112DEST_PATH_IMAGE021
,使对象p称为核心点的密度限定值。
核心对象。对于给定对象集D,
Figure 555419DEST_PATH_IMAGE021
Figure 606552DEST_PATH_IMAGE022
Figure 733381DEST_PATH_IMAGE023
在对象p的邻域内,若n大于密度阈值Minpts,表示对象p的eps邻域内对象个数大于密度阈值,则定义p为核心点。
密度。对于给定对象集D,
Figure 629793DEST_PATH_IMAGE024
,以对象p为中心,以给定半径eps为半径的邻域内对象的个数定义为对象p的密度。
直接密度可达。对于给定对象集D,
Figure 878241DEST_PATH_IMAGE025
Figure 834695DEST_PATH_IMAGE026
的eps邻域,且p是核心对象,则称q从p直接密度可达。
密度可达。对于给定对象集D,
Figure 168594DEST_PATH_IMAGE027
,对于
Figure 134276DEST_PATH_IMAGE028
,若
Figure 502809DEST_PATH_IMAGE029
Figure 489220DEST_PATH_IMAGE028
关于eps和Minpts直接密度可达,则对象q是从对象p关于eps和Minpts密度可达。
密度互连。对于给定对象集D,
Figure 326726DEST_PATH_IMAGE030
,若
Figure 82716DEST_PATH_IMAGE031
,使得对象p和q是从o关于eps和Minpts密度可达,那么对象p和q是关于eps和Minpts密度互连的。
具体的实行步骤如下:
(1)从数据集中任意选取一个数据对象点p。
(2)如果对于参数Eps和MinPts,所选取的数据对象点p为核心点,则找出所有从p密度可达的数据对象点,形成一个簇。
(3)如果选去的数据对象点p是边缘点,选取另一个数据对象点。
(4)重复(2)-(3)步,直到所有点被处理。
相对于现有技术,本发明提出的一种接口层面的基于图嵌入算法的微服务拆分方法的贡献具体如下:
(1)本发明根据单体应用的调用日志生成调用关系图,将应用的调用关系可视化,便于精确分析发掘接口之间的关联。
(2)本发明采用定长有偏随机游走对调用图采样,确保采样数据更为契合图中关联,关联密切的节点生成的对应的数据也更多,进而得到的训练也更为充分。
(3)本发明采用LINE模型进行训练,充分保留了接口的一阶二阶相似度。从多个维度量化接口的特征属性。
(4)最终采用密度聚类进行划分,可以对任意分布的接口向量进行聚类,具有更广泛的适用性,同时可以在聚类时发现异常点,为代码的进一步重构提供建议。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种接口层面的基于图嵌入算法的微服务拆分方法,其特征在于包括:
S1、获取目标单体应用运行时的调用日志,根据日志记录中的参数信息,归纳出各个接口的调用情况,并构建有向调用图;
S2、根据设定的采样链长度获取有向调用图内的采样数据;
S3、将得到的采样数据投入LINE图嵌入模型中进行训练,提取各个接口向量;
S4、利用DBSCAN聚类算法对接口向量进行聚类,将相似度较高的接口归为一类,进而将单体应用的各个功能接口划分为了多个接口簇,实现了从接口层面对目标单体应用进行的拆分。
2.根据权利要求1所述的一种接口层面的基于图嵌入算法的微服务拆分方法,其特征在于:步骤S1中通过跟踪工具Kieker获取目标单体应用运行时的调用日志,具体方法如下:
S101、向目标单体应用系统中插入探针,充分运行准备的测试用例,得到目标单体应用执行时的调用信息;
S102、根据调用信息中的被调用的方法,调用顺序和调用堆栈的深度多种参数信息,归纳出各个接口的调用情况。
3.根据权利要求1所述的一种接口层面的基于图嵌入算法的微服务拆分方法,其特征在于:步骤S1中构建有向调用图采用如下方法:利用节点代表应用接口,有向边代表接口之间的调用关系,边的权值代表接口调用频次,根据上述信息构建有向调用图。
4.根据权利要求1所述的一种接口层面的基于图嵌入算法的微服务拆分方法,其特征在于:步骤S2中,采样流程包括历遍各个节点,逐个进行K次定长有偏随机游走生成训练数据;具体如下:
S201、根据本节点的各个边权值与本节点出度比值,生成各个路径的选择区间;
S202、调用random库生成[0,1]区间内随机数,基于随机数的值选择对应的边进行游走,将目标节点加入节点序列中;
S203、重复步骤S201- S202,直至节点序列长度达到设定的长度;
S204、重复步骤S201- S203至 K次,生成K个以本节点为起点的序列;
S205、重复步骤S201- S204,为所有节点均生成K个序列。
5.根据权利要求1所述的一种接口层面的基于图嵌入算法的微服务拆分方法,其特征在于:步骤S3中的对采集数据训练过程如下:
LINE图嵌入模型用于提取各个接口的一阶特征与二阶特征;
其中,一阶特征的意义为节点之间的直接相连边的权值,同时为相互调用的次数,反应了节点之间直接的相关度;
相关度为:
Figure 434368DEST_PATH_IMAGE001
Figure 741722DEST_PATH_IMAGE002
其中,
Figure 990300DEST_PATH_IMAGE003
为i与j接口相互调用频次和,W为两者出度和,E为调用图中边的集合,在LINE模型中采用如下公式来训练,其中ui, uj为节点嵌入后的向量为:
Figure 978985DEST_PATH_IMAGE004
进而利用KL散度来表示两者的误差值,误差值为损失函数,公式如下:
Figure 714729DEST_PATH_IMAGE005
随后在训练中将采用随机梯度下降法来优化该过程;
二阶特征,为两节点间邻居的重合度,反应了节点之间功能的相似度,相似度值为:
Figure 474874DEST_PATH_IMAGE006
di为两者邻居节点和,
Figure 197367DEST_PATH_IMAGE007
为两者共同的邻居节点数;
LINE模型中采用如下公式训练:
Figure 333951DEST_PATH_IMAGE008
其中,ui, uj为节点嵌入后的向量,
Figure DEST_PATH_IMAGE009
为i向量的转置,
Figure 127463DEST_PATH_IMAGE010
为j向量的转置,
Figure DEST_PATH_IMAGE011
为k向量的转置,V为节点集合;
同样也使用KL散度来衡量不同分布的差距,不同分布的差距通过二阶相似的目标函数定义为:
Figure 573357DEST_PATH_IMAGE012
随后在训练中将采用随机梯度下降法来优化该过程。
6.根据权利要求1所述的一种接口层面的基于图嵌入算法的微服务拆分方法,其特征在于:步骤S4中通过DBSCAN聚类算法对接口向量进行聚类过程如下:
S401:从数据集中任意选取一个数据对象点p;
S402:如果对于参数Eps和MinPts,所选取的数据对象点p为核心点,则找出所有从p密度可达的数据对象点,形成一个簇;
S403:如果选取的数据对象点p是边缘点,选取另一个数据对象点;
S404:重复步骤S402-S403,直到所有点被处理。
CN202210977791.8A 2022-08-16 2022-08-16 一种接口层面的基于图嵌入算法的微服务拆分方法 Active CN115061836B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210977791.8A CN115061836B (zh) 2022-08-16 2022-08-16 一种接口层面的基于图嵌入算法的微服务拆分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210977791.8A CN115061836B (zh) 2022-08-16 2022-08-16 一种接口层面的基于图嵌入算法的微服务拆分方法

Publications (2)

Publication Number Publication Date
CN115061836A true CN115061836A (zh) 2022-09-16
CN115061836B CN115061836B (zh) 2022-11-08

Family

ID=83207465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210977791.8A Active CN115061836B (zh) 2022-08-16 2022-08-16 一种接口层面的基于图嵌入算法的微服务拆分方法

Country Status (1)

Country Link
CN (1) CN115061836B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117311801A (zh) * 2023-11-27 2023-12-29 湖南科技大学 一种基于网络化结构特征的微服务拆分方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111462914A (zh) * 2020-03-13 2020-07-28 云知声智能科技股份有限公司 一种实体链接方法及装置
CN111523010A (zh) * 2019-02-03 2020-08-11 阿里巴巴集团控股有限公司 推荐方法、装置、终端设备及计算机存储介质
CN111885399A (zh) * 2020-06-29 2020-11-03 腾讯科技(武汉)有限公司 内容分发方法、装置、电子设备以及存储介质
CN111954889A (zh) * 2018-01-29 2020-11-17 埃美杰斯有限责任公司 用于促成基于情感状态的人工智能的系统和方法
CN112765414A (zh) * 2021-01-21 2021-05-07 山东大学 一种图嵌入向量的生成方法及基于图嵌入的社区发现方法
CN113515699A (zh) * 2021-06-16 2021-10-19 中国邮政储蓄银行股份有限公司 信息推荐方法及装置、计算机可读存储介质、处理器
CN113553396A (zh) * 2021-07-05 2021-10-26 国网湖南省电力有限公司 图向量化方法、装置及电力网图向量化方法
CN113761123A (zh) * 2021-05-21 2021-12-07 腾讯科技(深圳)有限公司 关键词获取的方法、装置、计算设备和存储介质
CN113760778A (zh) * 2021-11-09 2021-12-07 浙江大学滨海产业技术研究院 一种基于词向量模型的微服务接口划分评价方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111954889A (zh) * 2018-01-29 2020-11-17 埃美杰斯有限责任公司 用于促成基于情感状态的人工智能的系统和方法
CN111523010A (zh) * 2019-02-03 2020-08-11 阿里巴巴集团控股有限公司 推荐方法、装置、终端设备及计算机存储介质
CN111462914A (zh) * 2020-03-13 2020-07-28 云知声智能科技股份有限公司 一种实体链接方法及装置
CN111885399A (zh) * 2020-06-29 2020-11-03 腾讯科技(武汉)有限公司 内容分发方法、装置、电子设备以及存储介质
CN112765414A (zh) * 2021-01-21 2021-05-07 山东大学 一种图嵌入向量的生成方法及基于图嵌入的社区发现方法
CN113761123A (zh) * 2021-05-21 2021-12-07 腾讯科技(深圳)有限公司 关键词获取的方法、装置、计算设备和存储介质
CN113515699A (zh) * 2021-06-16 2021-10-19 中国邮政储蓄银行股份有限公司 信息推荐方法及装置、计算机可读存储介质、处理器
CN113553396A (zh) * 2021-07-05 2021-10-26 国网湖南省电力有限公司 图向量化方法、装置及电力网图向量化方法
CN113760778A (zh) * 2021-11-09 2021-12-07 浙江大学滨海产业技术研究院 一种基于词向量模型的微服务接口划分评价方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117311801A (zh) * 2023-11-27 2023-12-29 湖南科技大学 一种基于网络化结构特征的微服务拆分方法

Also Published As

Publication number Publication date
CN115061836B (zh) 2022-11-08

Similar Documents

Publication Publication Date Title
Demaine et al. Bidimensionality: new connections between FPT algorithms and PTASs.
CN113259972B (zh) 基于无线通信网络数据仓库构建方法、系统、设备及介质
US20160150380A1 (en) Automated wlan radio map construction method and system
Doerr et al. Drift analysis with tail bounds
CN111275172A (zh) 一种基于搜索空间优化的前馈神经网络结构搜索方法
US8738559B2 (en) Graph partitioning with natural cuts
CN115061836B (zh) 一种接口层面的基于图嵌入算法的微服务拆分方法
CN111459988B (zh) 一种机器学习流水线自动化设计的方法
CN110825935A (zh) 社区核心人物挖掘方法、系统、电子设备及可读存储介质
CN116362261A (zh) 应对数字化服务项目的用户会话信息解析方法及软件产品
CN101901251A (zh) 基于马尔科夫过程亚稳性的复杂网络簇结构分析和识别方法
Saberifar et al. Combinatorial filter reduction: Special cases, approximation, and fixed-parameter tractability
CN114611081B (zh) 账号类型识别方法、装置、设备、存储介质及产品
CN110019845B (zh) 一种基于知识图谱的社区演化分析方法及装置
CN115061910A (zh) 一种基于pdca循环的半自动化安全性测试方法
CN113159326B (zh) 基于人工智能的智能业务决策方法
CN111683010B (zh) 基于光缆网光路的双路由的生成方法及装置
CN111736774B (zh) 冗余数据的处理方法、装置、服务器及存储介质
CN117311801A (zh) 一种基于网络化结构特征的微服务拆分方法
CN117540223A (zh) 基于ap算法的社交网络舆情传播转发链条挖掘方法及装置
CN116822927A (zh) 一种业务流程优化方法、装置及存储介质
CN116578465A (zh) 深度学习模型性能检测系统、方法及预测模型生成方法
KR101907551B1 (ko) 확률 그래프의 효과적인 그래프 클러스터링 장치 및 방법
Adler Collecting correlated information from a sensor network.
CN112579436A (zh) 一种微服务软件架构识别与度量方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant