[发明专利]微服务架构的变更检测方法、装置、服务器及存储介质有效
申请号: | 202011017439.7 | 申请日: | 2020-09-24 |
公开(公告)号: | CN112199276B | 公开(公告)日: | 2023-05-30 |
发明(设计)人: | 尹盛 | 申请(专利权)人: | 建信金融科技有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 200120 上海市浦东新区中国(*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 微服 架构 变更 检测 方法 装置 服务器 存储 介质 | ||
1.一种微服务架构的变更检测方法,其特征在于,包括:
确定各组件的版本变更前后出现差异的目标代码行,获取包含所述目标代码行的目标组件的组件标识;
根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,其中,所述对应关系用于表示组件、服务和代码行之间的包含关系;
确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态;
所述确定所述标识信息对应的服务变更对所述目标组件的调用链路的影响状态,包括:
解析所述目标组件的源代码,得到属性信息和函数信息;
根据所述属性信息和函数信息构建所述目标组件的函数级调用链路,其中,所述函数级调用链路中的每个节点代表一个函数;
基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系;
当所述设计态调用关系中的服务生产者或服务消费者与所述标识信息相同的情况下,确定服务变更对所述目标组件的包含所述设计态调用关系的调用链路产生影响;
所述基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系,包括:
采用各入口函数遍历所述函数级调用链路中的节点,得到所有可达的目标节点;
比对所述目标节点代表的函数与出口函数,得到与所述入口函数连通的出口函数;
根据具有连通关系的入口函数和出口函数确定所述目标组件的服务生产者和服务消费者,确定所述入口函数对应的所述服务生产者与所述出口函数对应的所述服务消费者之间具有调用关系。
2.根据权利要求1所述的方法,其特征在于,所述确定各组件的版本变更前后出现差异的目标代码行,包括:
比对各组件的相邻版本的源代码,根据比对结果确定版本变更前后出现差异的目标代码行。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标代码行和组件标识查询组件、服务和代码行的对应关系,得到发生变更的服务的标识信息,包括:
根据组件、服务和代码行的对应关系,确定所述组件标识对应的目标组件包含的各服务,以及各服务对应的代码行的行号;
根据所述目标代码行的行号匹配各服务对应的代码行的行号,得到发生变更的服务的标识信息。
4.根据权利要求1所述的方法,其特征在于,所述根据具有连通关系的入口函数和出口函数确定所述目标组件的服务生产者和服务消费者,包括:
解析所述入口函数得到第一服务标识,根据所述第一服务标识确定所述目标组件的服务生产者;
解析与所述入口函数具有连通关系的出口函数得到第二服务标识,根据所述第二服务标识确定所述目标组件的服务消费者。
5.根据权利要求1所述的方法,其特征在于,在基于所述函数级调用链路确定所述目标组件的服务生产者和服务消费者的设计态调用关系之后,还包括:
根据所述标识信息对应的服务生产者查询所述设计态调用关系,确定与所述标识信息对应的服务生产者具有调用关系的目标服务消费者;
基于所述目标服务消费者生成所述标识信息对应的服务生产者的服务消费者列表。
6.根据权利要求5所述的方法,其特征在于,所述当所述设计态调用关系中的服务生产者或服务消费者与所述标识信息相同的情况下,确定服务变更对所述目标组件的包含所述设计态调用关系的调用链路产生影响,包括:
匹配所述标识信息与所述设计态调用关系中的服务生产者;
当匹配结果是所述服务生产者与所述标识信息相同的情况下,基于所述服务生产者以及对应的服务消费者列表中的目标服务消费者确定第一调用关系;
确定服务变更对所述目标组件的包含所述第一调用关系的调用链路产生影响。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于建信金融科技有限责任公司,未经建信金融科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011017439.7/1.html,转载请声明来源钻瓜专利网。