一种支持服务升级版本兼容的微服务开发管理系统及方法与流程

文档序号:15828799发布日期:2018-11-03 00:12阅读:185来源:国知局

本发明涉及互联网技术领域,具体涉及一种支持服务升级版本兼容的微服务开发管理系统及方法。

背景技术

微服务架构作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。简要来说,微服务架构是一种将单个应用程序开发成一组微小服务的方法,每个服务皆运行在自己的进程中,这些服务以业务能力为基础并以独立的自动化的机制部署。

微服务架构下,应用程序由独立部署运行的微服务应用组成,每个微服务应用,会对外开放一系列的服务接口,也会调用其他应用中的服务,应用之间存在着交叉嵌套的服务调用关系。在一个服务调用关系中,提供服务的称为服务提供者,调用服务的称为服务消费者,服务提供者对外开放接口,服务消费者根据开放的接口向服务提供者获取服务,只有在服务消费者所调服务接口与服务提供者提供的接口完全一致的情况下,服务才能调通,所以如果一个服务对外提供的接口发生改变,其调用者也需要进行修改才能保证调用关系正常运转。

然而,微服务应用的敏捷性、解耦性、灵活性等要求,使得服务之间调用关系错综复杂,服务升级迭代也较为频繁,一个服务升级变更,会引发一系列的服务调用接口不一致问题,导致调用关系链中的服务消费者无法向提供者获取服务,若采取绑定式升级来保证接口一致,服务调用循环嵌套会引起服务调用关系中大量应用服务接口的修改,升级代价巨大,甚至由于不同应用中的服务交叉调用导致无法控制的循环升级问题。



技术实现要素:

(一)解决的技术问题

针对现有技术的不足,本发明提供了一种支持服务升级版本兼容的微服务开发管理系统及方法,通过为每个微服务增加了接口兼容性处理能力,并配合独立的版本控制机制,有效解除了微服务间接口绑定关系,极大提高服务调用成功率。

(二)技术方案

为实现以上目的,本发明通过以下技术方案予以实现:一种支持服务升级版本兼容的微服务开发管理系统,所述管理系统包括:

服务接口管理模块101,用于设计微服务应用中的服务接口、控制管理服务接口的服务版本、存储服务接口描述信息,以及用于判断注册服务类型;

服务接口生成模块102,用于根据已设计服务接口的接口信息和已分配的版本号,生成满足服务接口定义的微服务应用中的服务组件;

微服务应用升级模块103,用于根据注册服务类型,在注册服务为兼容性升级服务时,对注册服务进行兼容性服务升级,并删除兼容性升级服务的原有版本服务接口。

优选的,所述服务接口管理模块101进一步包括:

服务接口设计模块1011,用于设计服务接口的接口信息,包括服务接口名和服务参数列表,以完成服务接口设计;

服务版本控制模块1012,用于判断注册服务类型,根据已设计服务接口的接口信息和注册服务类型,为相应的服务接口分配定义版本号,以完成服务版本控制管理;

服务注册模块1013,用于存储已设计服务接口的接口信息和已分配的版本号,以实现服务注册。

优选的,所述服务接口描述信息包括服务接口名、服务参数列表和版本号,所述版本号为服务自身携带的版本号,版本号包括大版本号和中版本号;所述服务参数列表包括服务形参名、参数类型和参数是否可缺省等。

优选的,所述服务组件包含接口描述信息和兼容性处理模块信息,所述接口描述信息通过服务接口管理模块101查询获取;所述兼容性处理模块信息,用于在服务提供者接收的服务调用请求的中版本号与服务提供者中服务接口的版本号不一致时,根据调用请求服务参数列表,将传入参数值与服务形参名进行匹配后,对未赋值参数设置默认值,形成与服务提供者接口匹配的请求服务参数列表。

本发明同时提供一种支持服务升级版本兼容的微服务开发管理方法,用于实现上述所述的管理系统,所述管理方法包括:

步骤201,设计微服务应用中的服务接口、控制管理服务接口的服务版本、存储服务接口描述信息,以及用于判断注册服务类型;

步骤202,根据已设计服务接口的接口信息和已分配的版本号,生成满足服务接口定义的微服务应用中的服务组件;

步骤203,根据注册服务类型,在注册服务为兼容性升级服务时,对注册服务进行兼容性服务升级,并删除兼容性升级服务的原有版本服务接口。

优选的,所述步骤201进一步包括:

步骤2011,设计服务接口的接口信息,包括设计服务接口名和服务参数列表,完成服务接口设计;

步骤2012,判断注册服务类型,根据已设计服务接口的接口信息和注册服务类型,为相应的服务接口分配定义版本号,完成服务版本控制管理;

步骤2013,存储已设计服务接口的接口信息和已分配的版本号,作为服务接口描述信息,实现服务注册。

优选的,所述步骤2012在判断注册服务类型时,根据服务接口名查询已注册服务的当前最高版本号同名服务信息,以判定注册的服务类型。

优选的,所述注册服务类型包括新注册服务、兼容性升级服务和非兼容性升级服务,三种注册服务类型版本号包括以下判定步骤:

若注册服务类型为新注册服务,则大版本号设置为1,中版本号设置为0;

若注册服务类型为兼容性升级服务,则在当前最高版本号的基础上,将中版本号加1,大版本号不变;

若注册服务类型为非兼容性升级服务,在当前最高版本号的基础上,大版本号加1,中本版号设置为0。

(三)有益效果

本发明具备以下有益效果:

(1)本发明将微服务应用中的接口服务组件化,每个服务作为一个独立单元,进行独立的开发和管理,为每个服务增加了接口兼容性处理能力,并配合独立的版本控制机制,有效解除了微服务间接口绑定关系,保证服务升级后,与其具有调用关系的应用服务无需进行修改升级,仍能正常调用所需服务;

(2)通过本系统与方法,有效解决在服务独立升级的模式下,服务调用接口与服务提供者接口不一致导致服务调用者与服务提供者不能进行正常通信和交互的问题,极大提高服务调用成功率,减少服务升级带来的变更成本,并通过兼容性处理机制,有效控制了服务运行资源占用率。

附图说明

图1为本发明微服务开发管理系统结构示意图。

图2为本发明微服务开发管理方法示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

根据本发明,提供一种支持服务升级版本兼容的微服务开发管理系统,该开发管理系统将微服务应用中的接口服务组件化,每个接口服务均作为独立单元,进行独立的开发与管理,针对每个接口服务增设接口兼容性处理能力,并配合独立的版本控制机制,解除微服务间接口绑定关系,提高服务升级效率。

图1图示了根据本发明优选实施例的微服务开发管理系统示意性框图,根据图1所示,该微服务开发管理系统包括:

服务接口管理模块101,用于设计微服务应用中的服务接口、控制管理服务接口的服务版本、存储服务接口描述信息,以及用于判断注册服务类型。

服务接口生成模块102,用于根据已设计服务接口的接口信息和已分配的版本号,生成满足服务接口定义的微服务应用中的服务组件。

微服务应用升级模块103,根据注册服务类型,在注册服务为兼容性升级服务时,对注册服务进行兼容性服务升级,并删除兼容性升级服务的原有版本服务接口。

此处需要说明的是,通过服务接口管理模块101和服务接口生成模块102后,微服务应用中的服务组件是多版本同时存在的,即在微服务应用升级模块103前,原有版本服务仍旧存在于微服务应用中,仅在注册服务为兼容性服务时,通过微服务应用升级模块103的兼容性服务升级后,原有版本服务接口将不再保留。通过上述,一方面保证服务升级后,由于原有版本服务接口已删除,在服务升级时,不会调用已删除版本服务,不会对服务调用关系产生影响,以保证服务调用成功率;另一方面,通过兼容升级方式,省去了因大量不必要版本存在而产生的运行成本。

该微服务开发管理系统的服务接口管理模块101进一步包括:

服务接口设计模块1011,用于根据业务需求,设计服务接口的接口信息,包括服务接口名和服务参数列表,以完成服务接口设计,其中服务参数列表中包括服务形参名、参数类型和参数是否可缺省等。

服务版本控制模块1012,用于判断注册服务类型,根据已设计服务接口的接口信息,为相应的服务接口分配定义版本号,完成服务版本控制管理。

服务注册模块1013,用于存储已设计服务接口的接口信息和已分配的版本号,作为服务接口描述信息,以实现服务注册。此处,服务接口描述信息应当包括服务接口名、服务参数列表和版本号等。

服务接口生成模块102中,生成的微服务应用中的服务组件包括服务代码包。其中,服务代码包包含接口描述信息和兼容性处理模块信息。当需调用相应服务接口描述信息时,通过服务接口管理模块101查询获取;若需调用除服务接口描述信息以外的其他服务,通过服务注册模块1013查询获取所调服务接口信息。兼容性处理模块信息采用兼容性处理模块包,用于在服务提供者接收的服务调用请求的中版本号与服务提供者中版本号不一致时,根据调用请求服务参数列表,将传入参数值与服务形参名进行匹配后,对未赋值参数设置默认值,形成与服务提供者接口匹配的请求服务参数列表,确保能够为版本不一致调用请求提供正常服务。以此,将服务代码包形成满足接口开发规范的代码框架,开发人员基于服务代码包仅需进行业务逻辑开发即可,以提高服务开发效率和准确率。

继续以上,在服务版本控制模块1012中所述的版本号,型如v大版本号.中版本号,由大版本号和中版本号两部分控制。在服务版本控制模块1012中分配版本号前,需判断注册服务类型,即根据服务接口名查询已注册服务的当前最高版本号同名服务信息,以判定注册的服务类型,包括新注册服务、兼容性升级服务和非兼容性升级服务。以下分别对上述三种服务类型进行定义:

新注册服务,是指在已注册服务中,不存在同名服务;

兼容性升级服务,是指注册的服务接口中,参数列表涵盖了当前最大版本号同名服务接口中所有不可缺省参数

非兼容性升级服务,是指注册的服务接口中,缺少当前最大版本号同名服务接口中不可缺省参数,或者,在包含当前最大版本号同名服务接口中所有不可缺省参数的基础上,增加了新的不可缺省参数。

三种服务类型版本号的判定方式为:对于新注册服务,大版本号设置为1,中版本号设置为0;对于兼容性升级服务,在当前最高版本号的基础上,将中版本号加1,大版本号不变;对于非兼容性升级服务,在当前最高版本号的基础上,大版本号加1,中本版号设置为0。将分配后的服务版本号发送到服务注册模块1013保存和管理。

在微服务应用升级模块103中,当注册服务为兼容性升级服务时,对注册服务进行兼容性服务升级;若当注册服务为非兼容性升级服务或新注册服务时,直接发布服务组件。需要说明的是,服务消费者发送服务调用请求时,是根据注册服务携带的服务调用接口大版本号来确定服务提供者,所以服务提供者接收到的服务调用请求一定与其大版本号是一致的。

以上,为本发明一种支持服务升级版本兼容的微服务开发管理系统的结构组成,结合图2,本发明同时提供一种针对上述管理系统的微服务开发管理方法,其中,该管理方法包括以下步骤:

步骤201,根据业务开发要求,设计微服务应用中的服务接口、控制管理服务接口的服务版本、存储服务接口描述信息,以及判断注册服务类型;

步骤202,根据已设计服务接口的接口信息和已分配的版本号,生成满足服务接口定义的微服务应用中的服务组件;

步骤203,根据注册服务类型,在注册服务为兼容性升级服务时,对注册服务进行兼容性服务升级,并删除兼容性升级服务的原有版本服务接口。

其中,步骤201进一步包括以下步骤:

步骤2011,根据业务需求,设计服务接口的接口信息,包括服务接口名和服务参数列表,以完成服务接口设计,其中服务参数信息中包括服务形参名、参数类型和参数是否可缺省等。

步骤2012,判断注册服务类型,根据已设计服务接口的接口信息,为相应的服务接口分配定义版本号,完成服务版本控制管理。

步骤2013,存储已设计服务接口的接口信息和已分配的版本号,作为服务接口描述信息,以实现服务注册。此处,服务接口描述信息应当包括服务接口名、服务参数列表和版本号等。

在判断注册服务类型时,根据服务接口名查询已注册服务的当前最高版本号同名服务信息,以判定注册的服务类型,注册服务类型包括新注册服务、兼容性升级服务和非兼容性升级服务,三种服务类型包括以下判定步骤:

若注册服务类型为新注册服务,则大版本号设置为1,中版本号设置为0;

若注册服务类型为兼容性升级服务,则在当前最高版本号的基础上,将中版本号加1,大版本号不变;

若注册服务类型为非兼容性升级服务,在当前最高版本号的基础上,大版本号加1,中本版号设置为0。

针对步骤203,在注册服务为兼容性升级服务时,对注册服务进行兼容性服务升级,若当注册服务为非兼容性升级服务或新注册服务时,直接发布服务组件。其中,在对注册服务进行兼容性服务升级时,服务消费者发送服务调用请求,通过注册服务携带的服务调用接口大版本号来确定服务提供者,若服务消费者与服务提供者之间接口不一致时,通过对注册服务进行兼容性服务升级,保证两者之间进行正常通讯,提高服务调用成功率,减少服务升级变更成本,有效控制服务运行资源占用率。

需要说明的是,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1