一种面向分布式架构的微服务契约管理方法、装置、计算机设备、和可读存储介质制造方法及图纸

技术编号:24205221 阅读:18 留言:0更新日期:2020-05-20 14:22
本发明专利技术公开了面向分布式结构的微服务契约管理的方法、装置、计算机设备和可读存储介质,该方法包括:接收来自代码托管平台的数据包;解析所接收到数据包,判断所述的数据包是正式发布版本还是测试版本,同时通过所述的数据包解析到其第一契约信息;对于测试版本直接将数据包发布到私服;根据所解析到的正式发布版本的数据包的第一契约信息遍历查询其他所有的契约信息,获取该数据包跟其他包之间的依赖关系,并将该依赖关系添加进第一契约信息形成第二契约信息;对于正式版本的数据包,根据第二契约信息将会签请求发送至关联方,待收到所有关联方同意变更的信息后,将数据包发送到私服。

A distributed architecture oriented microservice contract management method, device, computer device, and readable storage medium

【技术实现步骤摘要】
一种面向分布式架构的微服务契约管理方法、装置、计算机设备、和可读存储介质
本专利技术涉及代码管理
,特别涉及一种面向分布式结构的微服务契约管理方法、装置、计算机设备和可读存储介质。
技术介绍
随着信息科技的发展,各行业大量普及信息化。众多行业采用了基于开源的分布式技术实现应用微服务架构,旨在实现业务快速创新迭代,系统服务可灵活按需扩展,各微服务之间通过网关互联互通,服务之间定义了各种契约,这里的契约是指是服务端与消费端对于接口输入输出的定义,但是由于服务众多,契约管理显得格外重要,如果契约管理不好,轻则浪费人力,浪费资源,重则导致生产事故。对于金融行业的银行系统来讲,银行的系统少则百多个,多则上千个,采用微服务架构以后,系统会拆分出更多的微服务,服务之间相互调用,形成了复杂的调用链,另外系统对稳定性要求极高,如果系统契约变更管理不善,一个服务变更,另外一个服务的消费者没有及时评估影响,可能因为契约信息不一致导致系统不可用,产生重大的生产事故。目前契约管理主要有如下方式:采用传统手工方式,开发设计阶段编写接口文档,通常采用word,excel的格式,提供给服务调用者。也有一些大的公司使用半自动的方式,即把接口统一放到开发者中心上,但是契约管理仍然采用手工维护。还有一些采用传统的自动方式,采用诸如Swagger,SDK和其他的文档自动生成工具生成接口文档,但是在生成接口文档的时候需要将源代码编译运行,然后才能通过扫描组件扫描得到契约属性信息,然后由服务使用者访问特定服务的地址了解接口信息,这种管理方式也比较分散,又依赖服务处于运行态。
技术实现思路
对于通过传统手工方式进行契约管理的,因为对于接口的编写、提取、管理等全部需要人工手动并且在线下独立完成,各个开发者之间的信息不同步,工作量也大,出现差错是难免的。对于采用半自动的方式进行契约管理的,通过设置一个开发者平台,所有开发者将自己所开发应用的契约信息全部提交到开发者平台上去,由专人进行统一的管理,这样避免了各个开发者在线下单独进行维护的信息不统一的问题,但专门管理仍然采用人工的方式完成,工作量并没有减少多少。对于采用传统的自动方式进行契约管理的,通过借助一定的管理工具能在服务运行的前提下自动生成契约信息,对于需要获取该契约信息的用户来说,通过访问该服务的地址进行获取,并且访问该服务的地址只能获取到该服务的契约信息,所以这种管理方式仍然也比较分散,并且又依赖服务处于运行状态。针对上述方案多存在的诸多缺陷,本专利技术公开了一种面向分布式结构的微服务契约管理方法、装置、计算机设备和可读存储介质。本专利技术所公开的面向分布式结构的微服务契约管理的方法包括:接收来自代码托管平台的数据包;解析所接收到数据包,判断所述的数据包是正式发布版本还是测试版本,同时通过所述的数据包解析到其第一契约信息;对于测试版本直接将数据包发布到私服;根据所解析到的正式发布版本的数据包的第一契约信息遍历查询其他所有的契约信息,获取该数据包跟其他包之间的依赖关系,并将该依赖关系添加进第一契约信息形成第二契约信息;对于正式版本的数据包,根据第二契约信息将会签请求发送至关联方,待收到所有关联方同意变更的信息后,将数据包发送到私服。本专利技术所公开的面向分布式结构的微服务契约管理装置包括:接收模块,用于接收来自代码托管平台的数据包;解析模块,用于解析所接收到数据包,判断所述的数据包是正式发布版本还是测试版本,同时通过所述的数据包解析到其第一契约信息;对于测试版本直接将数据包发布到私服;依赖关系添加模块,用于根据所解析到的正式发布版本的数据包的第一契约信息遍历查询其他所有的契约信息,获取该数据包跟其他包之间的依赖关系,并将该依赖关系添加进第一契约信息形成第二契约信息;会签模块,用于对于正式版本的数据包,根据第二契约信息将会签请求发送至关联方,待收到所有关联方同意变更的信息后,将数据包发送到私服。本专利技术所公开的提升代码安全检测效率的计算机设备面向分布式结构的微服务契约管理包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述的处理器执行所述计算机程序时实现上述任一项方法的步骤。本专利技术所公开的面向分布式结构的微服务契约管理的计算机存储介质,其上存储有计算机程序,所述的计算机程序被处理器执行时实现上述任一项方法的步骤。上述所公开的面向分布式结构的微服务契约管理的技术方案,在开发者将源代码提交给统一的代码托管平台后,由代码托管平台将数据包发布到契约管理装置,由契约管理装置对所提交的契约类型进行确认,并对数据包进行解析,获取契约相关信息,另外对于属于测试版本的,直接发送到私服供测试、调度和展示;对于属于正式版本的,根据其与其他包之间的依赖关系进行会签,会签通过后自动发送到私服供调度和展示。上述所公开的方案,通过自动化的手段完成了契约的解析、版本的会签等,提高了管理的效率。附图说明图1为本专利技术的实现原理框图;图2为本专利技术所公开的面向分布式结构的微服务契约管理流程图;图3为本专利技术人所公开的面向分布式结构的微服务契约管理装置图。具体实施方式为了对本专利技术所公开的面向分布式结构的微服务契约管理方法、装置、计算机设备和可读存储介质有更加详细和深入的了解,在下面的内容中结合附图对具体的实施方式、所解决的具体技术问题和所取得的技术效果进行详细的说明。在不冲突的情况下,本专利技术的实施例以及实施例中的技术特征可以相互组合。如附图1所示,对本专利技术所公开的方案的原理进行说明,开发人员在本地按照约定的规范开发代码以及对应的接口,开发完成后将代码提交到代码托管平台。代码托管平台将收到的代码打包,并构建jar包,将构建的jar包发送到契约管理装置。契约管理装置将收到的jar包进行解析,解析数据包中的注解,采用反编译方式,解析数据包里的接口及其参数,以及参数的注解,提取第一契约信息,对第一契约信息进行数据规范校验,内容校验,并持久化。获得包含了第一契约信息的home文件,该home文件可以被其他用户查看和访问。同时根据规范中约定的标签判断收到的这个包是正式版本还是测试版本。对于测试版本,因为不会进行发布使用,也当然不会对别的模块产生任何影响,所以直接将该jar包推送到私服,供相关人员进行查看和调用;同时对于测试版本的jar包,通过第一契约信息中的PSVM(provider提供者、service服务、version版本、method方法),将以json形式存在的“请求示例”、“返回示例”,抽取出来,再加上请求URL,生成测试用例供自动化测试使用。对于正式版本,该版本的正式上线会到相关联的模块产生深远的影响,影响范围包括了需要调用或访问该版本的其他模块,也包括了该版本可能会调用或访问的其他模块,所以在该版本正式上线前,需要相关联方对该版本做充分的评价,待所有关联方都统一该版本上线后才能上线。所以契约管理装置根据所解析形成的第一契约信息遍历本文档来自技高网
...

【技术保护点】
1.一种面向分布式结构的微服务契约管理方法,其特征在于,所述的方法包括:/n接收来自代码托管平台的数据包;/n解析所接收到数据包,判断所述的数据包是正式发布版本还是测试版本,同时通过所述的数据包解析到其第一契约信息;对于测试版本直接将数据包发布到私服;/n根据所解析到的正式发布版本的数据包的第一契约信息遍历查询其他所有的契约信息,获取该数据包跟其他包之间的依赖关系,并将该依赖关系添加进第一契约信息形成第二契约信息;/n对于正式版本的数据包,根据第二契约信息将会签请求发送至关联方,待收到所有关联方同意变更的信息后,将数据包发送到私服。/n

【技术特征摘要】
1.一种面向分布式结构的微服务契约管理方法,其特征在于,所述的方法包括:
接收来自代码托管平台的数据包;
解析所接收到数据包,判断所述的数据包是正式发布版本还是测试版本,同时通过所述的数据包解析到其第一契约信息;对于测试版本直接将数据包发布到私服;
根据所解析到的正式发布版本的数据包的第一契约信息遍历查询其他所有的契约信息,获取该数据包跟其他包之间的依赖关系,并将该依赖关系添加进第一契约信息形成第二契约信息;
对于正式版本的数据包,根据第二契约信息将会签请求发送至关联方,待收到所有关联方同意变更的信息后,将数据包发送到私服。


2.如权利要求1所述的方法,其特征在于,所述解析所接收到的数据包是解析数据包中的注解,采用反编译方式,解析数据包里的接口及其参数,以及参数的注解,提取第一契约信息,对第一契约信息进行数据规范校验,内容校验,并持久化。


3.如权利要求1所述的方法,其特征在于,根据第一契约信息将存储在私服中的测试版本数据包生成测试用例发送给测试平台供测试平台进行测试。


4.如权利要求1所述的方法,其特征在于,将第一契约信息和第二契约信息发送给用户或者测试平台供查看。


5.如权利要求1所述的方法,其特征在于,根据第一契约信息将数据包发送给用户或者测试平台供调用。


6.一种面...

【专利技术属性】
技术研发人员:朱建设贺浩
申请(专利权)人:中信百信银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1