一种工业软件微服务合并的方法及系统技术方案

技术编号:36968623 阅读:13 留言:0更新日期:2023-03-22 19:29
本发明专利技术公开了一种工业软件微服务合并的方法及系统,包括:将每一个设定的工业微服务业务代码打包形成一个单体Jar包;将形成的多个单体Jar包存储至单体仓库;响应于外界的服务请求,确定所需要的微服务类型及数量;通过基座应用从单体仓库中调用所述微服务对应的单体Jar包进行组合,并将所述微服务的配置合并到一个配置文件中,以实现组合微服务的启动。本发明专利技术通过将工业微服务业务代码编译为单体jar包,并存储在单体仓库,基座应用可以根据需要调取单体仓库中的任意单体jar包进行组合,配置灵活,不涉及到具体的业务代码,方案的可一致性比较强;减少了大量微服务的部署成本以及软件的开发及维护成本。以及软件的开发及维护成本。以及软件的开发及维护成本。

【技术实现步骤摘要】
一种工业软件微服务合并的方法及系统


[0001]本专利技术涉及微服务合并
,尤其涉及一种工业软件微服务合并的方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]目前,企业级应用后端大多采用微服务的形式进行开发和部署,这种方式在扩展性、开发复杂度、高可用方面带来了前所未有的优势,因此在大型项目或者平台中得到了广泛的应用。
[0004]在工业软件中,存在不同的业务线,如BOM,MOM,图文档,生产过程管理等等,每条业务线背后都有一个或者几个软件产品作为支撑,每个软件产品又会根据功能、业务、技术等进行微服务的拆分。这样,一个制造型企业中会有几百甚至上千个微服务在提供服务,每一个微服务都需要占用一个服务部署资源,这给企业带来了很大的部署以及运维成本。
[0005]对于开发工业软件的软件开发商来说,过多数量的微服务也会带来开发和服务治理方面的难度。面对不同规模的客户,开发商不能通过一套代码为所有客户提供模式一样的服务,需要大量重复编写代码,这也增大了开发商的开发成本以及维护成本。

技术实现思路

[0006]为了解决上述问题,本专利技术提出了一种工业软件微服务合并的方法及系统,通过可配置的方式实现一套工业软件业务代码在不同的场景下,以不同数量微服务组合的方式来运行(微服务数量可配置),进而大大减少客户的部署成本以及软件开发商的开发以及维护成本。
[0007]在一些实施方式中,采用如下技术方案:
[0008]一种工业软件微服务合并的方法,包括:
[0009]将每一个设定的工业微服务业务代码打包形成一个单体Jar包;
[0010]将形成的多个单体Jar包存储至单体仓库;
[0011]响应于外界的服务请求,确定所需要的微服务类型及数量;
[0012]通过基座应用从单体仓库中调用所述微服务对应的单体Jar包进行组合,并将所述微服务的配置合并到一个配置文件中,以实现组合微服务的启动。
[0013]作为进一步地方案,通过基于Gradle的编译插件将工业微服务业务代码编译为符合设定要求的单体jar包。
[0014]作为进一步地方案,所述单体Jar包中去掉了微服务的一些设定文件,包括但不限于:启动类和配置文件。
[0015]作为进一步地方案,工业微服务业务代码编译完成后,将feign接口定义中的服务名称改为基座应用,服务间的调用改为基座服务的自调用。
[0016]作为进一步地方案,所有的单体jar包存储到单体仓库的独立的Group中。
[0017]作为进一步地方案,所述Gradle的编译插件能够根据需要开启或关闭,当插件开启时,将工业微服务业务代码编译为符合设定要求的单体jar包;当插件关闭时,工业微服务业务代码作为独立的微服务。
[0018]作为进一步地方案,浏览器通过互联网将服务请求发送至Nginx,Nginx将请求转发至后台的一个或者多个网关服务,网关服务根据Nacos中配置的请求转发规则将服务请求转发到对应的基座应用,基座在处理请求时,原本业务服务之前的Feign调用转化为对自身的Feign调用。
[0019]作为进一步地方案,通过修改网关服务的转发规则,使得前端屏蔽后端接口的变化,实现前端功能的复用。
[0020]在另一些实施方式中,采用如下技术方案:
[0021]一种工业软件微服务合并的系统,包括:
[0022]代码打包模块,用于将每一个设定的工业微服务业务代码打包形成一个单体Jar包;
[0023]单体Jar包存储模块,用于将形成的多个单体Jar包存储至单体仓库;
[0024]单体Jar包组合调用模块,用于响应于外界的服务请求,确定所需要的微服务类型及数量;通过基座应用从单体仓库中调用所述微服务对应的单体Jar包进行组合,并将所述微服务的配置合并到一个配置文件中,以实现组合微服务的启动。
[0025]在另一些实施方式中,采用如下技术方案:
[0026]一种终端设备,其包括处理器和存储器,处理器用于实现各指令;存储器用于存储多条指令,所述指令适于由处理器加载并执行上述的工业软件微服务合并的方法。
[0027]与现有技术相比,本专利技术的有益效果是:
[0028](1)本专利技术通过将工业微服务业务代码编译为单体jar包,并存储在单体仓库,基座应用可以根据需要调取单体仓库中的任意单体jar包进行组合,配置灵活,不涉及到具体的业务代码,方案的可一致性比较强;减少了大量微服务的部署成本以及软件的开发及维护成本。
[0029](2)业务开发人员只需要在项目配置信息中引入单体Jar打包插件,业务代码无侵入,减少了开发人员的调试成本。
[0030](3)本专利技术使用的单体Jar包和微服务的镜像是由同一套代码编译出来的,开发人员只需要维护一套代码就可以让自己的业务在不同的模式下运行,没有因为运行模式的增加而增加开发的复杂度,同时也不会存在不同版本业务代码冲突的问题。
[0031]本专利技术的其他特征和附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本方面的实践了解到。
附图说明
[0032]图1为本专利技术实施例中的工业软件微服务合并的方法过程示意图;
[0033]图2为本专利技术实施例中的运行态基座应用的工作过程示意图。
具体实施方式
[0034]应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本专利技术使用的所有技术和科学术语具有与本申请所属
的普通技术人员通常理解的相同含义。
[0035]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0036]术语解释:
[0037]Gradle:Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,它支持使用者自己设置构建参数,甚至允许增加一些自定义的构建任务。
[0038]工业微服务业务代码:(工业软件中)实现某种业务功能的Java源代码。
[0039]配置合并工具:可以将多个微服务的配置项合并到一个配置文件中的工具。
[0040]单体Jar:一种能被其他应用直接引用的Jar包,它是由工业微服务业务代码打包而成的,里面去掉了微服务的一些特性文件(比如:启动类、配置文件等),修改了一些关键二进制代码;Jar包内的目录结构是符合直接调用的目录结构(该结构和微服务镜像包结构不同)。
[0041]单体编译插件(简称插件):一个基于Gradle的编译插件,它可以将源代码编译为符合设定要求的单体jar包。
[0042]单体仓库:是一个存储单体本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种工业软件微服务合并的方法,其特征在于,包括:将每一个设定的工业微服务业务代码打包形成一个单体Jar包;将形成的多个单体Jar包存储至单体仓库;响应于外界的服务请求,确定所需要的微服务类型及数量;通过基座应用从单体仓库中调用所述微服务对应的单体Jar包进行组合,并将所述微服务的配置合并到一个配置文件中,以实现组合微服务的启动。2.如权利要求1所述的一种工业软件微服务合并的方法,其特征在于,通过基于Gradle的编译插件将工业微服务业务代码编译为符合设定要求的单体jar包。3.如权利要求2所述的一种工业软件微服务合并的方法,其特征在于,所述单体Jar包中去掉了微服务的一些设定文件,包括但不限于:启动类和配置文件。4.如权利要求2所述的一种工业软件微服务合并的方法,其特征在于,工业微服务业务代码编译完成后,将feign接口定义中的服务名称改为基座应用,服务间的调用改为基座服务的自调用。5.如权利要求2所述的一种工业软件微服务合并的方法,其特征在于,所有的单体jar包存储到单体仓库的独立的Group中。6.如权利要求2所述的一种工业软件微服务合并的方法,其特征在于,所述Gradle的编译插件能够根据需要开启或关闭,当插件开启时,将工业微服务业务代码编译为符合设定要求的单体jar包;当插件关闭时,工业...

【专利技术属性】
技术研发人员:薛延兵赵恒胜戈路
申请(专利权)人:山东山大华天软件有限公司
类型:发明
国别省市:

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

1