发明内容
为解决上述技术问题,本发明实施例提供了一种微服务生成方法及装置,以高效实现对大批量微服务的升级,技术方案如下:
一种微服务生成方法,包括:
创建基础框架项目模板,所述基础框架模板包括通用模块组件;
以所述基础框架项目模板为基类,在微服务开发平台上创建微服务项目模板,所述微服务项目模板包括特有模块组件,所述微项目模板通过引用的方式继承所述基础框架项目模板;
依据要创建的微服务的类型,引用继承对应的微服务项目模板,以生成相应的微服务。
优选地,还包括:
获取微服务升级请求,所述微服务升级请求携带模块组件标识;
判断所述模块组件标识对应的模块组件是否属于通用模块组件;
若是,响应所述升级请求,升级所述基础框架项目模板中、与所述模块组件标识对应的模块组件。
优选地,若所述模块组件标识不属于通用模块组件,还包括:
判断所述模块组件标识对应的模块组件是否属于所述特有模块组件;
若是,响应所述升级请求,升级所述微服务项目模板中、与所述模块组件标识对应的模块组件。
优选地,还包括:
获取微服务;
判断所述微服务中是否具有属于所述通用模块组件的目标模块组件;
若是,删除所述目标模块组件,并使所述微服务引用所述基础框架项目模板中的所述目标模块组件。
优选地,还包括:
生成与所述微服务对应的部署包。
一种微服务生成装置,包括:
第一创建单元,用于创建基础框架项目模板,所述基础框架模板包括通用模块组件;
第二创建单元,用于以所述基础框架项目模板为基类,在微服务开发平台上创建微服务项目模板,所述微服务项目模板包括特有模块组件,所述微项目模板通过引用的方式继承所述基础框架项目模板;
第一生成单元,用于依据要创建的微服务的类型,引用继承对应的微服务项目模板,以生成相应的微服务。
优选地,还包括:
第一获取单元,用于获取微服务升级请求,所述微服务升级请求携带模块组件标识;
第一判断单元,用于判断所述模块组件标识对应的模块组件是否属于通用模块组件;
第一升级单元,用于当所述第一判断单元确定若所述模块组件标识对应的模块组件属于通用模块组件,响应所述升级请求,升级所述基础框架项目模板中、与所述模块组件标识对应的模块组件。
优选地,若所述模块组件标识不属于通用模块组件,还包括:
第二判断单元,用于判断所述模块组件标识对应的模块组件是否属于所述特有模块组件;
第二升级单元,用于当所述第二判断单元确定若所述模块组件标识对应的模块组件属于通用模块组件,响应所述升级请求,升级所述微服务项目模板中、与所述模块组件标识对应的模块组件。
优选地,还包括:
第二获取单元,用于获取微服务;
第三判断单元,用于判断所述微服务中是否具有属于所述通用模块组件的目标模块组件;
删除单元,用于当所述第三判断单元确定所述微服务中具有属于所述通用模块组件的目标模块组件时,删除所述目标模块组件,并使所述微服务引用所述基础框架项目模板中的所述目标模块组件。
优选地,还包括:
第二生成单元,用于生成与所述微服务对应的部署包。
本申请实施例提供的技术方案,以基础框架项目模板为基础,微服务通过继承于基础框架模板的方式共享基础框架的服务,在微服务达到一定体量后,当需要对所有微服务进行某项功能升级时,可通过直接升级父类基础框架项目模板或微服务项目模版的方式批量升级所有微服务,以此提高了对大批量微服务升级的效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本申请实施例提供的一种微服务生成方法的一种实现流程图,所述方法包括:
步骤S101、创建基础框架项目模板,所述基础框架模板包括通用模块组件;
通用模块组件包括基础框架组件、公共框架组件和公共构建配置。
其中,基础框架组件封装开发平台自有的基础组件,公共框架组件封装第三方(商用、开源)的基础组件,公共构建配置封装微服务数据库链接、日志等集中配置组件。
实际应用中,根据需要,通用模块组件还可以包括关联微服务项目,该关联微服务项目封装有其他基础框架项目模板中的基础组件。
步骤S102、以所述基础框架项目模板为基类,在微服务开发平台上创建微服务项目模板;
所述微服务项目模板包括特有模块组件,特有模块组件指的是某类微服务项目所特有的框架组件、构建配置和特有的业务逻辑
所述微项目模板通过引用的方式继承所述基础框架项目模板,微项目模板通过引用的方式继承基础框架项目模板指的是,微项目模板中具有所述通用模块组件的标识。
步骤S103、依据要创建的微服务的类型,继承对应的微服务项目模板,以生成相应的微服务。
此步骤的中的继承对应的微服务项目模板指的也是,微服务通过引用的方式继承微服务项目模板,其中,通过引用的方式继承微服务项目模板,标识,微服务中不仅具有通用模块组件的标识,也具有特殊模块组件的标识。
本申请实施例提供的技术方案,以基础框架项目模板为基础,微服务通过继承于基础框架模板的方式共享基础框架的服务,在微服务达到一定体量后,当需要对所有微服务进行某项功能升级时,可通过直接升级父类基础框架项目模板或微服务项目模版的方式批量升级所有微服务,以此提高了对大批量微服务升级的效率。
请参阅图2,图2为本申请实施例提供的另一种微服务生成方法的一种实现流程图,所述方法包括:
步骤S201、基础框架项目模板,所述基础框架模板包括通用模块组件;
通用模块组件包括基础框架组件、公共框架组件和公共构建配置。
其中,基础框架组件封装开发平台自有的基础组件,公共框架组件封装第三方(商用、开源)的基础组件,公共构建配置封装微服务数据库链接、日志等集中配置组件。
实际应用中,根据需要,通用模块组件还可以包括关联微服务项目,该关联微服务项目封装有其他基础框架项目模板中的基础组件。
步骤S202、以所述基础框架项目模板为基类,在微服务开发平台上创建微服务项目模板;
所述微服务项目模板包括特有模块组件,特有模块组件指的是某类微服务项目所特有的框架组件、构建配置和特有的业务逻辑
所述微项目模板通过引用的方式继承所述基础框架项目模板,微项目模板通过引用的方式继承基础框架项目模板指的是,微项目模板中具有所述通用模块组件的标识。
步骤S203、依据要创建的微服务的类型,继承对应的微服务项目模板,以生成相应的微服务;
此步骤的中的继承对应的微服务项目模板指的也是,微服务通过引用的方式继承微服务项目模板,其中,通过引用的方式继承微服务项目模板,标识,微服务中不仅具有通用模块组件的标识,也具有特殊模块组件的标识。
步骤S204、获取微服务升级请求;
所述微服务升级请求携带模块组件标识。
当需要对微服务升级时,根据模块组件标识可以确定请求升级的模块组件。
步骤S205、判断所述模块组件标识是否属于通用模块组件,若是,执行步骤S206,否则,执行步骤S207;
步骤S206、响应所述升级请求,升级所述基础框架项目模板中、与所述模块组件标识对应的模块组件;
由于通用模块组件被所有微服务继承引用,所以,当确定某一微服务引用的模块组件需要升级时,说明所有微服务引用的该通用模块组件都需要升级,所以,直接升级基础框架项目模板中的与模块组件标识对应的模块组件。
步骤S207、判断所述模块组件标识是否属于所述特有模块组件,若是,执行步骤S208;
步骤S208、响应所述升级请求,升级所述微服务项目模板中、与所述模块组件标识对应的模块组件。
当模块组件标识对应的模块组件不属于通用模块组件时,判断其是否属于某一类微服务项目模板中的特有模块组件,如果是,则升级微服务项目模板中、与模块组件标识对应的模块组件。
步骤S209、生成与所述微服务对应的部署包。
生成部署包后,可以将该部署包在客户端中安装运行,需要说明的是,在安装时,根据微服务对基础框架项目模板和微服务项目模板的引用,将所引用的通用模块组件及特有模块组件安装在客户端中,从而实现将微服务安装于客户端中。
本申请实施例提供的技术方案,以基础框架项目模板为基础,微服务通过继承于基础框架模板的方式共享基础框架的服务,在微服务达到一定体量后,当需要对所有微服务进行某项功能升级时,可通过直接升级父类基础框架项目模板或微服务项目模版的方式批量升级所有微服务,以此提高了对大批量微服务升级的效率。
请参阅图3,图3为本申请实施例提供的另一种微服务生成方法的另一种实现流程图,所述方法包括:
步骤S301、创建基础框架项目模板,所述基础框架模板包括通用模块组件;
通用模块组件包括基础框架组件、公共框架组件和公共构建配置。
其中,基础框架组件封装开发平台自有的基础组件,公共框架组件封装第三方(商用、开源)的基础组件,公共构建配置封装微服务数据库链接、日志等集中配置组件。
实际应用中,根据需要,通用模块组件还可以包括关联微服务项目,该关联微服务项目封装有其他基础框架项目模板中的基础组件。
步骤S302、以所述基础框架项目模板为基类,在微服务开发平台上创建微服务项目模板;
所述微服务项目模板包括特有模块组件,特有模块组件指的是某类微服务项目所特有的框架组件、构建配置和特有的业务逻辑
所述微项目模板通过引用的方式继承所述基础框架项目模板,微项目模板通过引用的方式继承基础框架项目模板指的是,微项目模板中具有所述通用模块组件的标识。
步骤S303、依据要创建的微服务的类型,继承对应的微服务项目模板,以生成相应的微服务;
此步骤的中的继承对应的微服务项目模板指的也是,微服务通过引用的方式继承微服务项目模板,其中,通过引用的方式继承微服务项目模板,标识,微服务中不仅具有通用模块组件的标识,也具有特殊模块组件的标识。
步骤S304、获取微服务;
步骤S305、判断所述微服务中是否具有属于所述通用模块组件的目标模块组件;
步骤S306、若是,删除所述目标模块组件,并使所述微服务引用所述基础框架项目模板中的所述目标模块组件;
由于已有的微服务,包括根据本发明的微服务生成方法生成的微服务以及根据现有技术生成的微服务,其中,根据现有技术生成的微服务指的是通用模块组件和特有模块组件都直接存在于微服务中,而并不是通过引用的方式引用通用模块组件和特有模块组件,所以,当获取到某一微服务后,判断微服务中是否具有属于通用模块组件的目标模块组件,若确定是,则删除微服务中的目标模块组件,并使微服务引用基础框架项目模板中的目标模块组件。
本申请实施例提供的技术方案,以基础框架项目模板为基础,微服务通过继承于基础框架模板的方式共享基础框架的服务,在微服务达到一定体量后,当需要对所有微服务进行某项功能升级时,可通过直接升级父类基础框架项目模板或微服务项目模版的方式批量升级所有微服务,以此提高了对大批量微服务升级的效率。
请参阅图4,图4为本申请实施例提供的微服务生成装置的一种结构示意图,该装置结构示意图中的各单元的工作过程参照图1对应的实施例中方法的执行过程,该装置包括:
第一创建单元401,用于创建基础框架项目模板,所述基础框架模板包括通用模块组件;
第二创建单元402,用于以所述基础框架项目模板为基类,在微服务开发平台上创建微服务项目模板,所述微服务项目模板包括特有模块组件,所述微项目模板通过引用的方式继承所述基础框架项目模板;
第一生成单元403,用于依据要创建的微服务的类型,引用继承对应的微服务项目模板,以生成相应的微服务。
本申请实施例提供的技术方案,以基础框架项目模板为基础,微服务通过继承于基础框架模板的方式共享基础框架的服务,在微服务达到一定体量后,当需要对所有微服务进行某项功能升级时,可通过直接升级父类基础框架项目模板或微服务项目模版的方式批量升级所有微服务,以此提高了对大批量微服务升级的效率。
请参阅图5,图5为本申请实施例提供的微服务生成装置的另一种结构示意图,该装置结构示意图中的各单元的工作过程参照图2及图3对应的实施例中方法的执行过程,该装置包括:
第一创建单元501,用于创建基础框架项目模板,所述基础框架模板包括通用模块组件;
第二创建单元502,用于以所述基础框架项目模板为基类,在微服务开发平台上创建微服务项目模板,所述微服务项目模板包括特有模块组件,所述微项目模板通过引用的方式继承所述基础框架项目模板;
第一生成单元503,用于依据要创建的微服务的类型,引用继承对应的微服务项目模板,以生成相应的微服务;
第一获取单元504,用于获取微服务升级请求,所述微服务升级请求携带模块组件标识;
第一判断单元505,用于判断所述模块组件标识对应的模块组件是否属于通用模块组件;
第一升级单元506,用于当所述第一判断单元确定若所述模块组件标识对应的模块组件属于通用模块组件,响应所述升级请求,升级所述基础框架项目模板中、与所述模块组件标识对应的模块组件;
第二判断单元507,用于若所述模块组件标识不属于通用模块组件,判断所述模块组件标识对应的模块组件是否属于所述特有模块组件;
第二升级单元508,用于当所述第二判断单元确定若所述模块组件标识对应的模块组件属于通用模块组件,响应所述升级请求,升级所述微服务项目模板中、与所述模块组件标识对应的模块组件。
第二获取单元509,用于获取微服务;
第三判断单元510,用于判断所述微服务中是否具有属于所述通用模块组件的目标模块组件;
删除单元511,用于当所述第三判断单元确定所述微服务中具有属于所述通用模块组件的目标模块组件时,删除所述目标模块组件,并使所述微服务引用所述基础框架项目模板中的所述目标模块组件;
第二生成单元512,用于生成与所述微服务对应的部署包。
对于装置或系统实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置或系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,在没有超过本申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另外,所描述系统,装置和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。