CN117076004B - 微服务打包合并方法、装置和电子设备 - Google Patents

微服务打包合并方法、装置和电子设备 Download PDF

Info

Publication number
CN117076004B
CN117076004B CN202311326008.2A CN202311326008A CN117076004B CN 117076004 B CN117076004 B CN 117076004B CN 202311326008 A CN202311326008 A CN 202311326008A CN 117076004 B CN117076004 B CN 117076004B
Authority
CN
China
Prior art keywords
file
micro services
micro
packaging
merging
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311326008.2A
Other languages
English (en)
Other versions
CN117076004A (zh
Inventor
程海黔
杨城欢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meiyun Zhishu Technology Co ltd
Original Assignee
Meiyun Zhishu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meiyun Zhishu Technology Co ltd filed Critical Meiyun Zhishu Technology Co ltd
Priority to CN202311326008.2A priority Critical patent/CN117076004B/zh
Publication of CN117076004A publication Critical patent/CN117076004A/zh
Application granted granted Critical
Publication of CN117076004B publication Critical patent/CN117076004B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供一种微服务打包合并方法、装置和电子设备,涉及微服务技术领域。该方法包括:响应于用户输入的打包合并指令,确定文件配置方式;基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,以及基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类;在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板;基于目标启动模板,对多个微服务进行打包合并,得到合并服务。这样不仅可以提高打包合并操作的灵活性,而且基于文件配置方式自动更新多个微服务各自的应用名称和剔除多个微服务各自的启动类,从而有效地提高了打包合并操作效率。

Description

微服务打包合并方法、装置和电子设备
技术领域
本申请涉及微服务技术领域,尤其涉及一种微服务打包合并方法、装置和电子设备。
背景技术
所谓微服务,就是以较小的功能集作为独立的服务进行部署。通常情况下,一个企业中会有几百甚至上千个微服务在提供服务,每一个微服务都需要占用一个服务部署资源。
不同任务所需的服务不同。在某一任务的实现需要调用多个服务的情况下,若要实现该任务,则需要将该多个服务作为一个整体,重新部署其对应的微服务,这样会进一步增大服务部署资源的占用。为了降低服务部署资源的占用,可以考虑对任务所需的多个微服务执行打包合并操作,并通过运行合并服务实现相应的任务。
现有技术中,对多个微服务执行打包合并操作时,通常是用户手动修改启动模板中的配置文件和jar包依赖文件,从而导致打包合并操作效率较低。
发明内容
本申请实施例提供一种微服务打包合并方法、装置和电子设备,可以根据用户需求,动态地对多个微服务执行打包合并操作,从而有效地提高了打包合并操作效率。
本申请还提出一种微服务打包合并装置。
本申请还提出一种电子设备。
本申请还提出一种非暂态计算机可读存储介质。
根据本申请第一方面实施例的微服务打包合并方法,该方法包括:
响应于用户输入的打包合并指令,确定文件配置方式,所述文件配置方式用于指示待打包合并的多个微服务;
基于所述文件配置方式,在原始配置文件中更新所述多个微服务各自的应用名称,得到更新后的配置文件;以及基于所述文件配置方式,在原始jar包依赖文件中剔除所述多个微服务各自的启动类,得到更新后的jar包依赖文件;
在创建的空启动模板中写入所述更新后的配置文件和所述更新后的jar包依赖文件,得到目标启动模板;
基于所述目标启动模板,对所述多个微服务进行打包合并,得到合并服务。
根据本申请实施例提供的微服务打包合并方法,不仅可以基于用户需求动态地选择微服务执行打包合并操作,提高了打包合并操作的灵活性,而且基于文件配置方式自动更新多个微服务各自的应用名称和剔除多个微服务各自的启动类,从而有效地提高了打包合并操作效率。
根据本申请的一个实施例,所述基于所述文件配置方式,在原始配置文件中更新所述多个微服务各自的应用名称,包括:通过maven命令调用打包插件读取所述文件配置方式;基于所述文件配置方式,在所述原始配置文件中更新所述多个微服务各自的应用名称;
所述基于所述文件配置方式,在原始jar包依赖文件中剔除所述多个微服务各自的启动类,包括:通过所述maven命令调用所述打包插件读取所述文件配置方式;基于所述文件配置方式,在所述原始jar包依赖文件中剔除所述多个微服务各自的启动类。
根据本申请的一个实施例,
所述基于所述文件配置方式,在原始配置文件中更新所述多个微服务各自的应用名称,包括:
获取预设的微服务的应用名称的撰写格式,所述撰写格式下的应用名称可更新;
基于所述文件配置方式,按照所述应用名称的撰写格式在所述原始配置文件中更新所述多个微服务各自的应用名称。
根据本申请的一个实施例,在所述合并服务启动过程中,若输出启动异常提示信息,则修改所述多个微服务的类名称;其中,所述多个微服务修改后的类名称满足如下条件:
实现不同功能的不同微服务修改后的类名称不同;
实现相同功能的不同微服务修改后的类名称相同,且所述不同微服务注解的所述微服务的类优先级不同。
根据本申请的一个实施例,所述在所述合并服务运行过程中,若输出调用异常提示信息,则按照所述应用名称的撰写格式在所述原始配置文件中为所述多个微服务配置各自的预留位,所述预留位用于写入基于所述文件配置方式确定的应用名称,以及基于后续打包合并指令确定的文件配置方式确定的应用名称。
根据本申请的一个实施例,
基于所述目标启动模板,对所述多个微服务进行打包合并,包括:
确定所述多个微服务是否对应同一个数据库,且所述多个微服务各自对应的技术架构是否相同;
在对应同一个数据库,且技术架构相同的情况下,基于所述目标启动模板,对所述多个微服务进行打包合并。
根据本申请第二方面实施例的微服务打包合并装置,该装置包括:
第一确定单元,用于响应于用户输入的打包合并指令,确定文件配置方式,所述文件配置方式用于指示待打包合并的多个微服务;
处理单元,用于基于所述文件配置方式,在原始配置文件中更新所述多个微服务各自的应用名称,得到更新后的配置文件;以及基于所述文件配置方式,在原始jar包依赖文件中剔除所述多个微服务各自的启动类,得到更新后的jar包依赖文件;
写入单元,用于在创建的空启动模板中写入所述更新后的配置文件和所述更新后的jar包依赖文件,得到目标启动模板;
打包合并单元,用于基于所述目标启动模板,对所述多个微服务进行打包合并,得到合并服务。
根据本申请实施例提供的微服务打包合并装置,不仅可以基于用户需求动态地选择微服务执行打包合并操作,提高了打包合并操作的灵活性,而且基于文件配置方式自动更新多个微服务各自的应用名称和剔除多个微服务各自的启动类,从而有效地提高了打包合并操作效率。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:在执行微服务的打包合并操作时,是响应于用户输入的打包合并指令,确定文件配置方式;基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,以及基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类;在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板;基于目标启动模板,对多个微服务进行打包合并,得到合并服务。这样不仅可以基于用户需求动态地选择微服务执行打包合并操作,提高了打包合并操作的灵活性,而且基于文件配置方式自动更新多个微服务各自的应用名称和剔除多个微服务各自的启动类,从而有效地提高了打包合并操作效率。
进一步地,在本申请实施例中,增加打包插件,并基于文件配置方式更新多个微服务各自的应用名称的目的在于:能够灵活的进行微服务的打包合并,以及合并服务的拆解。
进一步地,在本申请实施例中,基于文件配置方式,按照应用名称的撰写格式在原始配置文件中更新多个微服务各自的应用名称,从而实现对应用名称的更新。
进一步地,在本申请实施例中,在合并服务启动过程中,若输出启动异常提示信息,说明不同微服务的内容中类名称存在重复,在该种情况下,可以修改多个微服务的类名称,实现了不同微服务的区分,从而保证合并服务的正常启动。
进一步地,在本申请实施例中,在合并服务运行过程中,若输出调用异常提示信息,说明原始配置文件中的多个微服务各自的应用名称未配置,则可以按照应用名称的撰写格式在原始配置文件中为多个微服务配置各自的预留位,预留位用于写入基于文件配置方式确定的应用名称,以及基于后续打包合并指令确定的文件配置方式确定的应用名称,从而实现合并服务的正常运行。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种微服务打包合并方法的流程示意图;
图2为本申请实施例提供的一种微服务打包合并装置的结构示意图;
图3为本申请实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的技术方案可以应用于微服务合并场景中。不同任务所需的服务不同。在某一任务的实现需要调用多个服务的情况下,若要实现该多个服务,则需要重新部署将该多个服务作为一个整体对应的微服务。
例如,某一个任务的实现需要调用多个服务,该多个服务分别为服务1、服务2以及服务5,其中,服务1通过微服务1实现,服务2通过微服务2实现,服务5通过微服务5实现。若要实现该任务,则需要将这3个服务作为一个整体,重新部署这三个服务对应的微服务,这样会进一步增大服务部署资源的占用。
为了降低服务部署资源的占用,可以考虑对上述任务所需的服务1、服务2以及服务5各自对应的微服务执行打包合并操作,并通过运行合并服务实现相应的任务。
现有技术中,对多个微服务执行打包合并操作时,通常是用户手动修改启动模板中的配置文件和jar包依赖文件,并在创建的启动模板中写入修改后的配置文件和jar包依赖文件,得到更新后的启动模板,再基于更新后的启动模板对所述多个微服务进行打包合并。但是,采用用户手动修改启动模板中的配置文件和jar包依赖文件的方式,会导致打包合并操作效率较低。
为了提高打包合并操作效率,本申请实施例提供了一种微服务打包合并方法,可以先根据用户需求确定文件配置方式,文件配置方式用于指示待打包合并的多个微服务;并基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,得到更新后的配置文件;以及基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类,得到更新后的jar包依赖文件;在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板;再基于目标启动模板,对多个微服务进行打包合并,得到合并服务。这样不仅可以基于用户需求动态地选择微服务执行打包合并操作,提高了打包合并操作的灵活性,而且基于文件配置方式自动更新多个微服务各自的应用名称和剔除多个微服务各自的启动类,从而有效地提高了打包合并操作效率。
下面,将通过下述几个具体的实施例对本申请提供的微服务打包合并方法进行详细地说明。可以理解的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
实施例一
图1为本申请实施例提供的一种微服务打包合并方法的流程示意图,该微服务打包合并方法可以由软件和/或硬件装置执行,例如微服务打包合并装置。示例地,请参见图1所示,该微服务打包合并方法可以包括:
S101、响应于用户输入的打包合并指令,确定文件配置方式,文件配置方式用于指示待打包合并的多个微服务。
其中,文件配置方式是根据用户需求确定的。
假设用户需要对微服务1、微服务2以及微服务5执行打包合并操作,则文件配置方式指示微服务1、微服务2以及微服务5。
在根据用户需求确定文件配置方式后,就可以基于文件配置方式执行下述S102:
S102、基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,得到更新后的配置文件;以及基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类,得到更新后的jar包依赖文件。
一方面,考虑到在对多个微服务执行打包合并操作后,生成的合并服务会有一个新的应用名称,因此,可以先基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,使得该多个微服务的应用名称与合并服务的应用名称相同,其他未执行打包合并操作的微服务的应用名称可以保持不变,从而得到更新后的配置文件。
需要说明的是,在本申请实施例中,更新该多个微服务各自的应用名称的目的在于:为在合并服务运行时,被合并的微服务仍能对外提供能力。
此外,在本申请实施例中,配置文件还可以规范化要求。例如,不同微服务之间的公共配置可以存放至共享配置里面,例如数据库、redis相关配置;不同微服务各自的特殊服务可以存放至自身特殊配中。
另一方面,考虑到在对多个微服务执行打包合并操作时,为了避免对多个微服务各自执行打包操作,因此,可以基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类,其他未执行打包合并操作的微服务的启动类无需剔除,从而得到更新后的jar包依赖文件。
示例地,在本申请实施例中,基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称时,可以通过maven命令调用打包插件,并通过打包插件读取文件配置方式;再基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称。
示例地,通过maven命令调用打包插件时,其命令格式可以为:mvn meicloud:reduceDependency,其中,mvn 表示maven命令,meicloud表示美云智数,reduceDependency表示打包工具名称。具体可以根据实际需要进行设置,在此,本申请实施例只是以这种命令格式为例进行说明,但并不代表本申请实施例仅局限于此。
可以理解的是,在本申请实施例中,除了通过maven命令调用打包插件之外,还可以通过其他命令调用打包插件,例如,Gradle命令,具体可以根据实际需要进行设置,在此,本申请实施例只是以通过maven命令调用打包插件为例进行说明,但并不代表本申请实施例仅局限于此。
示例地,通过打包插件读取文件配置方式时,在打包插件内,根据配置文件的相对路径进行文件流读取,从而读取到该文件配置方式。
示例地,在本申请实施例中,基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称时,可以先获取预设的微服务的应用名称的撰写格式,撰写格式下的应用名称可更新;并基于文件配置方式,按照应用名称的撰写格式在原始配置文件中更新多个微服务各自的应用名称,从而实现对应用名称的更新。
考虑到不同微服务之间存在feign的调用方式,示例地,在本申请实施例中,微服务的应用名称的撰写格式可以通过定义@FeignClient的value,以规划微服务的应用名称的撰写格式。其中,value可表示为:value={spring.application.name},application.name为应用名称。
需要说明的是,在本申请实施例中,增加打包插件,并基于文件配置方式更新多个微服务各自的应用名称的目的在于:能够灵活的进行微服务的打包合并,以及合并服务的拆解。
示例地,在本申请实施例中,基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类时,可以通过maven命令调用打包插件读取文件配置方式;基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类。
示例地,在原始jar包依赖文件中剔除微服务的启动类时,可以将pom文件中spring-boot-maven-plugin打包机制插件删掉,从而剔除微服务的启动类,这样可以有效地避免对多个微服务各自执行打包操作。
在分别得到更新后的配置文件和更新后的jar包依赖文件后,就可以在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,即执行下述S103:
S103、在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板。
其中,空启动模板是从代码仓库拉取的公共模板工程。
示例地,在从代码仓库拉取空启动模板时,可以包括两种可能的场景:
在一种可能的场景中,在本次打包合并操作为首次打包合并操作的情况下,说明创建的启动模板之前并未被执行写入操作,为空的启动模板,因此,可以直接将创建的启动模板确定为空启动模板,从而获取到空启动模板。
在另一种可能的场景中,在本次打包合并操作为非首次打包合并操作的情况下,说明创建的启动模板之前被执行过写入操作,为非空的启动模板,因此,可以对前一次打包合并操作对应的启动模板进行清空处理,将清空处理后的启动模板确定为空启动模板,从而获取到空启动模板。
在获取到空启动模板后,就可以在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板,并执行下述S104:
S104、基于目标启动模板,对多个微服务进行打包合并,得到合并服务。
示例地,在本申请实施例中,对多个微服务进行打包合并时,可以通过maven命令参数对多个微服务进行打包合并,得到打包合并后的合并服务。示例地,maven命令参数格式可以为:mvn clean install -Dmaven.test.skip=true。
示例地,在本申请实施例中,为了进一步提高打包合并的成功率,在对多个微服务进行打包合并时,可以先确定多个微服务是否对应同一个数据库,且多个微服务各自对应的技术架构是否相同;在对应同一个数据库,且技术架构相同的情况下,基于目标启动模板,对多个微服务进行打包合并,这样可以有效地解决因数据库不同和/或技术架构不同导致的打包合并失败的问题,从而有效地提高了打包合并的成功率。
其中,技术架构相同,例如ORM(Object Relational Mapping)架构一致、注册中心一致等。
可以看出,本申请实施例中,在执行微服务的打包合并操作时,是响应于用户输入的打包合并指令,确定文件配置方式;基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,以及基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类;在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板;基于目标启动模板,对多个微服务进行打包合并,得到合并服务。这样不仅可以基于用户需求动态地选择微服务执行打包合并操作,提高了打包合并操作的灵活性,而且基于文件配置方式自动更新多个微服务各自的应用名称和剔除多个微服务各自的启动类,从而有效地提高了打包合并操作效率。
基于上述图1所示的实施例,在对多个微服务进行打包合并,得到合并服务后,就可以在调用该合并服务时,启动并运行该合并服务。
示例地,在合并服务启动过程中,若输出启动异常提示信息,说明不同微服务的内容中类名称存在重复,在该种情况下,可以修改多个微服务的类名称,实现了不同微服务的区分,从而保证合并服务的正常启动。其中,多个微服务修改后的类名称满足如下条件:
实现不同功能的不同微服务修改后的类名称不同;
实现相同功能的不同微服务修改后的类名称相同,且不同微服务注解的微服务的类优先级不同。
示例地,在本申请实施例中,针对实现不同功能的不同微服务,修改类名称(bean名)的方法举例如下:标明注入bean名称。
@Configuration("bean名")
@Bean("bean名")
@Service("bean名")
@Component("bean名")
...
通过上述举例,可以实现对不同功能的不同微服务的类名称的修改,使得实现不同功能的不同微服务修改后的类名称不同。
示例地,在本申请实施例中,针对实现相同功能的不同微服务,修改类名称(bean名)可以使用@ConditionalOnMissingBean注解,这样可以有效地避免多次注入。
在合并服务正常启动后,就可以运行该合并服务。示例地,在合并服务运行过程中,若输出调用异常提示信息,例如404,说明原始配置文件中的多个微服务各自的应用名称未配置,可以通过检测@FeignClient中的value是否配置,若微服务不存在,则可以按照应用名称的撰写格式在原始配置文件中为多个微服务配置各自的预留位,预留位用于写入基于文件配置方式确定的应用名称,以及基于后续打包合并指令确定的文件配置方式确定的应用名称。这样通过预留位用于写入基于文件配置方式确定的应用名称,可以实现本次合并服务的正常运行,此外,预留位用于写入基于后续打包合并指令确定的文件配置方式确定的应用名称,这样可以实现后续合并服务的正常运行。
下面对本申请提供的微服务打包合并装置进行描述,下文描述的微服务打包合并装置与上文描述的微服务打包合并方法可相互对应参照。
图2为本申请实施例提供的一种微服务打包合并装置的结构示意图,示例地,请参见图2所示,该微服务打包合并装置20可以包括:
第一确定单元201,用于响应于用户输入的打包合并指令,确定文件配置方式,文件配置方式用于指示待打包合并的多个微服务。
处理单元202,用于基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,得到更新后的配置文件;以及基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类,得到更新后的jar包依赖文件。
写入单元203,用于在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板。
打包合并单元204,用于基于目标启动模板,对多个微服务进行打包合并,得到合并服务。
可选地,在本申请实施例中,处理单元202,用于基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,包括:通过maven命令调用打包插件读取文件配置方式;基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称;
处理单元202,用于基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类,包括:通过maven命令调用打包插件读取文件配置方式;基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类。
可选地,在本申请实施例中,处理单元202,用于基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,包括:
获取预设的微服务的应用名称的撰写格式,撰写格式下的应用名称可更新;基于文件配置方式,按照应用名称的撰写格式在原始配置文件中更新多个微服务各自的应用名称。
可选地,在本申请实施例中,微服务打包合并装置20还包括修改单元;修改单元,用于在合并服务启动过程中,若输出启动异常提示信息,则修改多个微服务的类名称;其中,多个微服务修改后的类名称满足如下条件:
实现不同功能的不同微服务修改后的类名称不同;
实现相同功能的不同微服务修改后的类名称相同,且不同微服务注解的微服务的类优先级不同。
可选地,在本申请实施例中,微服务打包合并装置20还包括配置单元;配置单元,用于在合并服务运行过程中,若输出调用异常提示信息,则按照应用名称的撰写格式在原始配置文件中为多个微服务配置各自的预留位,预留位用于写入基于文件配置方式确定的应用名称,以及基于后续打包合并指令确定的文件配置方式确定的应用名称。
可选地,在本申请实施例中,打包合并,用于基于目标启动模板,对多个微服务进行打包合并,包括:
确定多个微服务是否对应同一个数据库,且多个微服务各自对应的技术架构是否相同;在对应同一个数据库,且技术架构相同的情况下,基于目标启动模板,对多个微服务进行打包合并。
可选地,在本申请实施例中,所述装置还包括第二确定单元;
所述第二确定单元,用于在本次打包合并操作为首次打包合并操作的情况下,将创建的启动模板确定为所述空启动模板;在本次打包合并操作为非首次打包合并操作的情况下,对前一次打包合并操作对应的启动模板进行清空处理,将清空处理后的启动模板确定为所述空启动模板。
本申请实施例提供的微服务打包合并装置20,可以执行上述任一实施例中微服务打包合并方法的技术方案,其实现原理以及有益效果与微服务打包合并方法的实现原理及有益效果类似,可参见微服务打包合并方法的实现原理及有益效果,此处不再进行赘述。
图3为本申请实施例提供的一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行微服务打包合并方法,该方法包括:响应于用户输入的打包合并指令,确定文件配置方式,文件配置方式用于指示待打包合并的多个微服务;基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,得到更新后的配置文件;以及基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类,得到更新后的jar包依赖文件;在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板;基于目标启动模板,对多个微服务进行打包合并,得到合并服务。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的微服务打包合并方法,该方法包括:响应于用户输入的打包合并指令,确定文件配置方式,文件配置方式用于指示待打包合并的多个微服务;基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,得到更新后的配置文件;以及基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类,得到更新后的jar包依赖文件;在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板;基于目标启动模板,对多个微服务进行打包合并,得到合并服务。
又一方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的微服务打包合并方法,该方法包括:响应于用户输入的打包合并指令,确定文件配置方式,文件配置方式用于指示待打包合并的多个微服务;基于文件配置方式,在原始配置文件中更新多个微服务各自的应用名称,得到更新后的配置文件;以及基于文件配置方式,在原始jar包依赖文件中剔除多个微服务各自的启动类,得到更新后的jar包依赖文件;在创建的空启动模板中写入更新后的配置文件和更新后的jar包依赖文件,得到目标启动模板;基于目标启动模板,对多个微服务进行打包合并,得到合并服务。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (7)

1.一种微服务打包合并方法,其特征在于,包括:
响应于用户输入的打包合并指令,确定文件配置方式,所述文件配置方式用于指示待打包合并的多个微服务;
基于所述文件配置方式,在原始配置文件中更新所述多个微服务各自的应用名称,得到更新后的配置文件;以及基于所述文件配置方式,在原始jar包依赖文件中剔除所述多个微服务各自的启动类,得到更新后的jar包依赖文件;
在创建的空启动模板中写入所述更新后的配置文件和所述更新后的jar包依赖文件,得到目标启动模板;
基于所述目标启动模板,对所述多个微服务进行打包合并,得到合并服务;
其中,所述基于所述文件配置方式,在原始配置文件中更新所述多个微服务各自的应用名称,包括:通过maven命令调用打包插件,在所述打包插件内,根据配置文件的相对路径进行文件流读取,读取所述文件配置方式;基于所述文件配置方式,在所述原始配置文件中更新所述多个微服务各自的应用名称;
所述基于所述文件配置方式,在原始jar包依赖文件中剔除所述多个微服务各自的启动类,包括:通过所述maven命令调用所述打包插件,在所述打包插件内,根据配置文件的相对路径进行文件流读取,读取所述文件配置方式;基于所述文件配置方式,在所述原始jar包依赖文件中剔除所述多个微服务各自的启动类;
所述基于所述目标启动模板,对所述多个微服务进行打包合并,包括:
确定所述多个微服务是否对应同一个数据库,且所述多个微服务各自对应的技术架构是否相同;
在对应同一个数据库,且技术架构相同的情况下,基于所述目标启动模板,对所述多个微服务进行打包合并;
所述方法还包括:
在所述合并服务启动过程中,若输出启动异常提示信息,则修改所述多个微服务的类名称;其中,所述多个微服务修改后的类名称满足如下条件:
实现不同功能的不同微服务修改后的类名称不同;
实现相同功能的不同微服务修改后的类名称相同,且所述不同微服务注解的所述微服务的类优先级不同。
2.根据权利要求1所述的微服务打包合并方法,其特征在于,所述基于所述文件配置方式,在原始配置文件中更新所述多个微服务各自的应用名称,包括:
获取预设的微服务的应用名称的撰写格式,所述撰写格式下的应用名称可更新;
基于所述文件配置方式,按照所述应用名称的撰写格式在所述原始配置文件中更新所述多个微服务各自的应用名称。
3.根据权利要求2所述的微服务打包合并方法,其特征在于,所述方法还包括:
在所述合并服务运行过程中,若输出调用异常提示信息,则按照所述应用名称的撰写格式在所述原始配置文件中为所述多个微服务配置各自的预留位,所述预留位用于写入基于所述文件配置方式确定的应用名称,以及基于后续打包合并指令确定的文件配置方式确定的应用名称。
4.根据权利要求1所述的微服务打包合并方法,其特征在于,所述方法还包括:
在本次打包合并操作为首次打包合并操作的情况下,将创建的启动模板确定为所述空启动模板;
在本次打包合并操作为非首次打包合并操作的情况下,对前一次打包合并操作对应的启动模板进行清空处理,将清空处理后的启动模板确定为所述空启动模板。
5.一种微服务打包合并装置,其特征在于,包括:
第一确定单元,用于响应于用户输入的打包合并指令,确定文件配置方式,所述文件配置方式用于指示待打包合并的多个微服务;
处理单元,用于基于所述文件配置方式,在原始配置文件中更新所述多个微服务各自的应用名称,得到更新后的配置文件;以及基于所述文件配置方式,在原始jar包依赖文件中剔除所述多个微服务各自的启动类,得到更新后的jar包依赖文件;
写入单元,用于在创建的空启动模板中写入所述更新后的配置文件和所述更新后的jar包依赖文件,得到目标启动模板;
打包合并单元,用于基于所述目标启动模板,对所述多个微服务进行打包合并,得到合并服务;
所述处理单元,用于基于所述文件配置方式,在原始配置文件中更新所述多个微服务各自的应用名称,包括:
通过maven命令调用打包插件,在所述打包插件内,根据配置文件的相对路径进行文件流读取,读取所述文件配置方式;基于所述文件配置方式,在所述原始配置文件中更新所述多个微服务各自的应用名称;
所述处理单元,用于基于所述文件配置方式,在原始jar包依赖文件中剔除所述多个微服务各自的启动类,包括:
通过所述maven命令调用所述打包插件,在所述打包插件内,根据配置文件的相对路径进行文件流读取,读取所述文件配置方式;基于所述文件配置方式,在所述原始jar包依赖文件中剔除所述多个微服务各自的启动类;
所述打包合并单元,用于所述基于所述目标启动模板,对所述多个微服务进行打包合并,包括:
确定所述多个微服务是否对应同一个数据库,且所述多个微服务各自对应的技术架构是否相同;
在对应同一个数据库,且技术架构相同的情况下,基于所述目标启动模板,对所述多个微服务进行打包合并;
所述微服务打包合并装置还包括修改单元;所述修改单元,用于在所述合并服务启动过程中,若输出启动异常提示信息,则修改所述多个微服务的类名称;其中,所述多个微服务修改后的类名称满足如下条件:
实现不同功能的不同微服务修改后的类名称不同;
实现相同功能的不同微服务修改后的类名称相同,且所述不同微服务注解的所述微服务的类优先级不同。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述的微服务打包合并方法。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的微服务打包合并方法。
CN202311326008.2A 2023-10-13 2023-10-13 微服务打包合并方法、装置和电子设备 Active CN117076004B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311326008.2A CN117076004B (zh) 2023-10-13 2023-10-13 微服务打包合并方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311326008.2A CN117076004B (zh) 2023-10-13 2023-10-13 微服务打包合并方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN117076004A CN117076004A (zh) 2023-11-17
CN117076004B true CN117076004B (zh) 2024-04-12

Family

ID=88702835

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311326008.2A Active CN117076004B (zh) 2023-10-13 2023-10-13 微服务打包合并方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN117076004B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016000126A1 (zh) * 2014-06-30 2016-01-07 北京新媒传信科技有限公司 一种自动化部署方法和终端
CN108073390A (zh) * 2016-11-08 2018-05-25 北京京东尚科信息技术有限公司 统一管理多个工程中配置文件的方法、装置及系统
US10754666B1 (en) * 2019-07-29 2020-08-25 Rad Data Communications Ltd. Hardware micro-services platform
CN113535254A (zh) * 2020-04-20 2021-10-22 华为技术有限公司 一种微服务的处理方法、部署方法和相关装置
CN115640143A (zh) * 2022-07-28 2023-01-24 平安科技(深圳)有限公司 微服务处理方法、装置、电子设备及存储介质
CN115827100A (zh) * 2022-12-14 2023-03-21 山东山大华天软件有限公司 一种工业软件微服务合并的方法及系统
CN116263663A (zh) * 2021-12-13 2023-06-16 山东华软金盾软件股份有限公司 一种微服务灵活部署的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397577B2 (en) * 2020-08-31 2022-07-26 International Business Machines Corporation Managing parallel microservice requests

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016000126A1 (zh) * 2014-06-30 2016-01-07 北京新媒传信科技有限公司 一种自动化部署方法和终端
CN108073390A (zh) * 2016-11-08 2018-05-25 北京京东尚科信息技术有限公司 统一管理多个工程中配置文件的方法、装置及系统
US10754666B1 (en) * 2019-07-29 2020-08-25 Rad Data Communications Ltd. Hardware micro-services platform
CN113535254A (zh) * 2020-04-20 2021-10-22 华为技术有限公司 一种微服务的处理方法、部署方法和相关装置
CN116263663A (zh) * 2021-12-13 2023-06-16 山东华软金盾软件股份有限公司 一种微服务灵活部署的方法
CN115640143A (zh) * 2022-07-28 2023-01-24 平安科技(深圳)有限公司 微服务处理方法、装置、电子设备及存储介质
CN115827100A (zh) * 2022-12-14 2023-03-21 山东山大华天软件有限公司 一种工业软件微服务合并的方法及系统

Also Published As

Publication number Publication date
CN117076004A (zh) 2023-11-17

Similar Documents

Publication Publication Date Title
KR20080112269A (ko) 자원 제한 장치, 자원 제한 장치용 가상 실행 시스템, 및 가상 실행 시스템의 성능 향상 방법
CN111176791A (zh) 一种基于多虚拟机区块链平台跨虚拟机调用方法
CN109960517B (zh) 镜像文件的制作方法、装置、系统及存储介质
CN110162344B (zh) 一种隔离限流的方法、装置、计算机设备及可读存储介质
CN112256359A (zh) 微服务合并方法、装置、电子设备及可读存储介质
JPH08263309A (ja) ソフトウェア・アプリケーション・プログラム・オブジェクト間のイベント通知方法及び装置
CN114064213A (zh) 基于Kubernets容器环境的快速编排服务方法及系统
CN111294377B (zh) 一种依赖关系的网络请求发送方法、终端装置及存储介质
CN117076004B (zh) 微服务打包合并方法、装置和电子设备
CN109388770B (zh) Web页面生成方法及装置
CN110968406B (zh) 处理任务的方法、装置、存储介质和处理器
CN116594717A (zh) 一种类加载隔离方法、装置、设备及介质
CN111274211B (zh) 应用文件的存储方法、装置及系统
CN115185576A (zh) 一种基于流程类应用系统的流程定制方法及系统
CN111475226B (zh) 电子装置、微服务调用方法和计算机可读存储介质
CN110109747B (zh) 基于Apache Spark的数据交换方法及系统、服务器
CN113282541A (zh) 文件调用方法、装置和电子设备
CN112083952A (zh) 一种基于spring架构的异常处理方法及系统
CN114691309A (zh) 一种批量业务处理系统、方法及装置
CN112130900A (zh) 一种bmc的用户信息管理方法、系统、设备以及介质
CN111737964A (zh) 表格动态处理方法、设备及介质
CN111552510A (zh) 文件构建方法及装置、电子设备、计算机可读存储介质
CN112114862B (zh) spring boot实例并发处理方法及装置
CN112905109B (zh) 消息处理方法、装置、设备及存储介质
CN113568683B (zh) 资产数据流处理服务组件动态扩展的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant