一种基于执行跟踪的微服务提取方法

文档序号:26139364发布日期:2021-08-03 14:22阅读:来源:国知局

技术特征:

1.一种基于执行跟踪的微服务提取方法,其特征在于,包括以下步骤:

(1)执行跟踪工具在目标单体应用系统运行时收集跟踪信息,执行路径被记录在日志文件中;

(2)在日记记录中,找到traceid和sessionid都相同的记录归为一类,即一次调用的执行跟踪;其中,sessionid是标记会话的全局唯一id;traceid是标记执行链路的全局唯一id;

(3)根据每一次调用的执行跟踪记录,得到整个执行跟踪记录中的方法调用关系,进一步根据每个方法所属的类,得到类之间的调用关系;

(4)得到了类与类之间的调用后,使用聚类算法进行聚类得到对应的微服务。

2.根据权利要求1所述的基于执行跟踪的微服务提取方法,其特征在于,步骤(1)中,所述的跟踪工具为kieker,收集跟踪信息的过程为:首先用kieker将探针插入目标单体应用系统中,使用事先准备好的涵盖所有功能的执行测试用例,在执行完测试用例后,得到执行的跟踪信息。

3.根据权利要求1所述的基于执行跟踪的微服务提取方法,其特征在于,步骤(1)中,每条日志记录由十个参数组成:type、seqid、method、sessionid、traceid、tin、tout、hostname、eoi和ess;

其中,type表示的是类型,seqid表示序号id,method表示被调用的方法,包括类名、方法名、参数列表和修饰符;sessionid是标记会话的全局唯一id;traceid是标记执行链路的全局唯一id;tin和tout表示调用方法前后的时间戳;hostname表示主机名;eoi和ess是方法调用顺序和调用堆栈的深度。

4.根据权利要求1所述的基于执行跟踪的微服务提取方法,其特征在于,步骤(3)中,得到整个执行跟踪记录中的方法调用关系的方法为:

在每一次调用的执行跟踪记录中,如果essi=essj-1并且eoii<eoij,则得到methodi调用methodj;

essi和essj分别表示第i和第j条记录的调用堆栈深度,eoii和eoij分别表示第i和第j条记录的方法调用顺序,methodi和methodj分别表示记录i和记录j记录的方法。

5.根据权利要求4所述的基于执行跟踪的微服务提取方法,其特征在于,步骤(3)中,得到类之间的调用关系的方法为:

如果classi!=classj并且methodi调用methodj,则得到classi调用classj;其中,!=表示不等于,methodi和methodj分别表示记录i和记录j记录的方法,classi和classj分别表示methodi和methodj所属的类。

6.根据权利要求1所述的基于执行跟踪的微服务提取方法,其特征在于,步骤(4)中,所述的聚类算法采用层次聚类算法,将类i与类j之间的调用次数作为距离dij,计算聚类之间的距离时使用average-linkage,经过层次聚类算法计算后得到类的结果,每一个簇类就是要提取的微服务。

7.根据权利要求6所述的基于执行跟踪的微服务提取方法,其特征在于,将类i与类j之间的调用次数作为距离dij的公式为:

dij=cntij+cntji

其中,cntij表示类i调用类j的次数,cntji表示类j调用类i的次数。

8.根据权利要求7所述的基于执行跟踪的微服务提取方法,其特征在于,使用average-linkage的具体过程为:

把两个集合中的点两两的距离全部放在一起求一个平均值,从而分离簇类间有噪声的数据集,公式为:

其中,dismn表示候选簇类m和候选簇类n之间的距离,∑dij表示候选簇类m和候选簇类n中的类两两距离之和,sizem和sizen分别表示候选簇类m和候选簇类n所含类的个数,clusterm和clustern分别表示候选簇类m和候选簇类n。


技术总结
本发明公开了一种基于执行跟踪的微服务提取方法,包括以下步骤:(1)执行跟踪工具在目标单体应用系统运行时收集跟踪信息,执行路径被记录在日志文件中;(2)在日记记录中,找到TraceID和SessionID都相同的记录归为一类,即一次调用的执行跟踪;其中,SessionID是标记会话的全局唯一ID;TraceID是标记执行链路的全局唯一ID;(3)根据每一次调用的执行跟踪记录,得到整个执行跟踪记录中的方法调用关系,进一步根据每个方法所属的类,得到类之间的调用关系;(4)得到了类与类之间的调用后,使用聚类算法进行聚类得到对应的微服务。利用本发明的方法,方便将传统的单体应用向微服务进行改造升级。

技术研发人员:李莹;陈斌;毛义华;张凌飞
受保护的技术使用者:浙江大学;浙江大学滨海产业技术研究院
技术研发日:2021.04.30
技术公布日:2021.08.03
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1