CN111796834A - 一种可组合的微服务开发框架的部署方法、装置及设备 - Google Patents
一种可组合的微服务开发框架的部署方法、装置及设备 Download PDFInfo
- Publication number
- CN111796834A CN111796834A CN202010615794.8A CN202010615794A CN111796834A CN 111796834 A CN111796834 A CN 111796834A CN 202010615794 A CN202010615794 A CN 202010615794A CN 111796834 A CN111796834 A CN 111796834A
- Authority
- CN
- China
- Prior art keywords
- deployment
- service
- deployment package
- micro
- package
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种可组合的微服务开发框架的部署方法,所述方法包括:通过maven插件生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;判断所述部署包是否存在于部署包仓库中,若存在,将所述部署包生成对应的引用文件,否则,提交所述部署包至所述部署包仓库中;其中,所述部署包仓库用于管理所述部署包,以及提供上传或下载所述部署包的接口;从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通。
Description
技术领域
本发明涉及微服务开发技术领域,尤其涉及一种可组合的微服务开发框架的部署方法、装置及设备。
背景技术
目前Java的微服务开发现在常用的框架是采用springboot、springcloud框架,一个springboot工程打成一个可执行的jar包(或者war包),部署时每个jar包都运行在一个独立的jvm进程中。打包通常使用springboot提供的打包插件,达成一个jar包或者多个jar包或者一个war包。部署的过程或者手动拷贝部署,或者使用docter,或者使用jenkis持续集成工具也需要自行写很多脚本实现想要的功能,而且无法实现跨网络自动更新。
开发的产品功能众多,客户的个性化需求也多,而且要求部署时可以根据具体需求选择某些功能部署。因此微服务会比较多,按现有的做法一个微服务部署时需要启动一个jvm进程,就会导致一些问题。现有的部署方式有如下不足:
1)如果手动部署,操作麻烦,容易出错;
2)使用docker部署,每次打包需要重新打docker镜像,都是全量的包,上传下载都比较耗时,也无法做更精细化的权限控制,例如ip限制,可下载项目、版本限制等等;
3)对配置文件的修改要手动操作,比较麻烦,容易出错;
4)jar包加密麻烦,公司对外部署的jar包需要统一加密,如果手动操作,需要一个一个包选择操作,不仅麻烦,而且容易遗漏、出错;
5)无法实现一键快速部署一整套系统所需的微服务;
6)无法实现服务部署包版本号自动管理,手动记录的话容易出错;
7)Jenkis的使用亦需要开发对应的大量脚本,脚本写起来比较分散,不够系统,而且只能Jenkis服务端运行,开发时需要频繁更新,使用不便。
为此,提出本发明。
发明内容
为实现上述目的,本发明提供一种可组合的微服务开发框架的部署方法,所述方法包括:
通过maven插件生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;
判断所述部署包是否存在于部署包仓库中,若存在,将所述部署包生成对应的引用文件,否则,提交所述部署包至所述部署包仓库中;其中,所述部署包仓库用于管理所述部署包,以及提供上传或下载所述部署包的接口;
从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通。
优选的,所述从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通,进一步包括:
通过使用部署工具部署微服务容器;其中,所述部署工具用于部署或更新所述部署包;所述部署工具包括部署描述文件及部署命令;所述微服务容器用于支持一个或多个所述微服务在JVM进程中运行的容器,所述微服务容器包括所述微服务容器的描述文件、服务启动器及组合微服务适配器;
由所述服务启动器对所述部署包进行拉取和更新,并进行解压部署;
按照顺序启动所有的所述微服务,并将所述微服务注册到nacos服务注册中心,实现服务互通。
优选的,所述方法之前还包括:
获取当前版本git信息、所述git信息的tag信息和pom文件中的版本号,并生成版本记录文件。
优选的,所述部署包包括:由jar命令将vue编译生成的前端程序部署包、通过maven插件生成的后端程序部署包以及微服务的业务配置文件。
为实现上述目的,本发明还提供一种可组合的微服务开发框架的部署装置,所述装置包括:
生成单元,用于通过maven插件生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;
判断单元,用于判断所述部署包是否存在于部署包仓库中,若存在,将所述部署包生成对应的引用文件,否则,提交所述部署包至所述部署包仓库中;其中,所述部署包仓库用于管理所述部署包,以及提供上传或下载所述部署包的接口;
启动单元,用于从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通。
优选的,所述启动单元进一步包括:
第一部署单元,用于通过使用部署工具部署微服务容器;其中,所述部署工具用于部署或更新所述部署包;所述部署工具包括部署描述文件及部署命令;所述微服务容器用于支持一个或多个所述微服务在JVM进程中运行的容器,所述微服务容器包括所述微服务容器的描述文件、服务启动器及组合微服务适配器;
第二部署单元,用于由所述服务启动器对所述部署包进行拉取和更新,并进行解压部署;
注册单元,用于按照顺序启动所有的所述微服务,并将所述微服务注册到nacos服务注册中心,实现服务互通。
优选的,所述装置进一步包括:
获取单元,用于获取当前版本git信息、所述git信息的tag信息和pom文件中的版本号,并生成版本记录文件。
优选的,所述部署包包括:由jar命令将vue编译生成的前端程序部署包、通过maven插件生成的后端程序部署包以及微服务的业务配置文件。
为实现上述目的,本发明还提供一种可组合的微服务开发框架的部署设备,所述设备包括:
maven插件,用于生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;
部署包仓库,用于管理所述部署包,以及提供上传或下载所述部署包的接口;
部署工具,用于部署或更新所述部署包;
微服务容器,用于对所获取的指定版本的所述部署包件运行;所述微服务容器包括微服务容器的描述文件、服务启动器及组合微服务适配器;其中,
所述微服务容器的描述文件包括所述部署包仓库的URL及所述部署包对应的配置信息;
所述服务启动器用于根据所述配置信息从所述部署包仓库中拉取或更新对应标识号的所述部署包进行解压部署并处理包冲突,以及启动所述组合微服务适配器;
所述组合微服务适配器按照顺序启动所述微服务容器的描述文件中的所有微服务,并将所有所述微服务注册到nacos服务注册中心,实现服务互通。
有益效果:
1)对开发侵入极小,通常仅需加入一个配置即可,完全兼容springboot和springcloud。
2)部署新系统或者更新部署包都非常方便,大大减轻了开发和运维的工作,而且不易出错。
3)通过组合微服务,可以降低对部署服务器的性能要求,适合在低配置的服务器上部署服务,而且性能更好。
4)更小粒度的微服务及微服务的插件两种模式可以让系统功能的选择更加灵活。
5)完善的鉴权和权限控制以及统一的jar包加密,保障了部署包的安全。
6)由于版本更新时绝大部分都是相同的包,因此本方案开发了相同包复用机制,该机极大的降低了服务包仓库的存储压力,也极大的降低了包上传和包下载所需要消耗的时间,大大节省成本。
7)实现了版本的自动化管理,版本信息在打包时自动生成,在部署时自动汇报,方便又准确,不再为找不到线上版本的源码是哪个而烦恼。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种可组合的微服务开发框架的部署方法流程图。
图2为本发明第二实施例提供的一种可组合的微服务开发框架的部署装置的结构框图。
图3为本发明第三实施例提供的可组合的微服务开发框架的结构示意图。
发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合实施例详细阐述本发明的内容。
参照图1所示为本发明一实施例提供的一种可组合的微服务开发框架的部署方法流程图。
一种可组合的微服务开发框架的部署方法,所述方法包括:
通过maven插件生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;
判断所述部署包是否存在于部署包仓库中,若存在,将所述部署包生成对应的引用文件,否则,提交所述部署包至所述部署包仓库中;其中,所述部署包仓库用于管理所述部署包,以及提供上传或下载所述部署包的接口;
从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通。
优选的,所述从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通,进一步包括:
通过使用部署工具部署微服务容器;其中,所述部署工具用于部署或更新所述部署包;所述部署工具包括部署描述文件及部署命令;所述微服务容器用于支持一个或多个所述微服务在JVM进程中运行的容器,所述微服务容器包括所述微服务容器的描述文件、服务启动器及组合微服务适配器;
由所述服务启动器对所述部署包进行拉取和更新,并进行解压部署;
按照顺序启动所有的所述微服务,并将所述微服务注册到nacos服务注册中心,实现服务互通。
优选的,所述方法之前还包括:
获取当前版本git信息、所述git信息的tag信息和pom文件中的版本号,并生成版本记录文件。
优选的,所述部署包包括:由jar命令将vue编译生成的前端程序部署包、通过maven插件生成的后端程序部署包以及微服务的业务配置文件。
在本实施例中,部署方法的过程主要包括两大部分:
第一部分为生成部署包及该部署包标识号并提交到部署包仓库;第二部分为从部署包仓库拉取指定标识号的部署包进行部署并运行程序。其中,部署包是指微服务运行所需要用到的文件的集合,包括jar包、微服务业务配置文件、html文件、js文件、css文件等等。部署包仓库是指管理部署包的一个服务,用于存储各个微服务的各个版本的部署包,并提供上传和下载部署包的接口。所述的部署包标识号是指部署包的唯一标识号,通过该标识号可以在部署包仓库中找到唯一的那个部署包。
第一部分具体方法为:使用maven插件生成部署包及该部署包的标识号,然后将部署包提交到部署包仓库,提交的过程会判断要提交的文件是否已经存在,若已存在,则部署包仓库直接生成该文件的一个引用即可,若不存在则上传该文件。由于通常情况下不同版本之间的部署包相同文件的占比很大,因此通过上述做法可以大大节省存储和上传下载时的时间消耗。
第二部分具体方法为:使用部署工具部署微服务容器,微服务容器启动时会从部署包仓库拉取指定版本的部署包来运行。其中,部署工具用于快速部署或者更新部署包,包括部署描述文件及一些部署命令。微服务容器就是可以支持一个或多个微服务在一个JVM进程中一起运行的容器,包括微服务容器描述文件、服务启动器和组合微服务适配器。微服务容器描述文件配置了部署包仓库的URL、一个或多个部署包的标识号以及其他可选的配置信息。服务启动器会根据微服务容器描述文件中的配置信息从部署包仓库中拉取或更新对应标识号的部署包,解压部署并处理包冲突,然后启动组合微服务适配器。组合微服务适配器会按顺序启动所述微服务容器描述文件中的所有微服务,并将所有微服务都注册到nacos服务注册中心,实现服务互通。
参照图2所示为本发明第二实施例提供的一种可组合的微服务开发框架的部署装置的结构框图。
一种可组合的微服务开发框架的部署装置,所述装置1包括:
生成单元11,用于通过maven插件生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;
判断单元12,用于判断所述部署包是否存在于部署包仓库中,若存在,将所述部署包生成对应的引用文件,否则,提交所述部署包至所述部署包仓库中;其中,所述部署包仓库用于管理所述部署包,以及提供上传或下载所述部署包的接口;
启动单元13,用于从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通。
优选的,所述启动单元进一步包括:
第一部署单元,用于通过使用部署工具部署微服务容器;其中,所述部署工具用于部署或更新所述部署包;所述部署工具包括部署描述文件及部署命令;所述微服务容器用于支持一个或多个所述微服务在JVM进程中运行的容器,所述微服务容器包括所述微服务容器的描述文件、服务启动器及组合微服务适配器;
第二部署单元,用于由所述服务启动器对所述部署包进行拉取和更新,并进行解压部署;
注册单元,用于按照顺序启动所有的所述微服务,并将所述微服务注册到nacos服务注册中心,实现服务互通。
优选的,所述装置进一步包括:
获取单元,用于获取当前版本git信息、所述git信息的tag信息和pom文件中的版本号,并生成版本记录文件。
优选的,所述部署包包括:由jar命令将vue编译生成的前端程序部署包、通过maven插件生成的后端程序部署包以及微服务的业务配置文件。
上述一种可组合的微服务开发框架的部署装置中的各个单元执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
第三实施例
一种可组合的微服务开发框架的部署设备,所述设备包括:
maven插件,用于生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;
部署包仓库,用于管理所述部署包,以及提供上传或下载所述部署包的接口;
部署工具,用于部署或更新所述部署包;
微服务容器,用于对所获取的指定版本的所述部署包件运行;所述微服务容器包括微服务容器的描述文件、服务启动器及组合微服务适配器;其中,
所述微服务容器的描述文件包括所述部署包仓库的URL及所述部署包对应的配置信息;
所述服务启动器用于根据所述配置信息从所述部署包仓库中拉取或更新对应标识号的所述部署包进行解压部署并处理包冲突,以及启动所述组合微服务适配器;
所述组合微服务适配器按照顺序启动所述微服务容器的描述文件中的所有微服务,并将所有所述微服务注册到nacos服务注册中心,实现服务互通。
在本实施例中,如图3所示。可组合的微服务开发框架的部署设备包括:
(1)maven插件;maven插件包括maven提供的java的编译maven-compiler-plugin,打包(jar包)的插件maven-jar-plugin、还有第三方的git-commit-id-plugin用于获取git信息、tag信息的插件,以及用于生成版本信息文件及提交部署包的插件。
maven插件可实现的功能如下:
(a)获取当前版本git信息,tag信息等;
(b)对java或者vue的src目录下的原代码执行编译、打包的操作;
(c)将部署包提交到部署包仓库,提交前先做判断该部署包中的是否有变化(就是指是否存在一样的jar包:文件名、包长度、算出来的md5都一样),若没有变化的文件不再提交,节省时间。具体为:先提交一个请求给部署包仓库,参数包括该jar包的包名、包大小、md5,部署包仓库查找下如果已经有存在这个包了,则直接生成一个自定义的引用文件即可,客户端也就无需再上传一遍这个包,服务端也无需再复制一份这个包,即省时间也省存储空间。
在本实施例中,部署包就是部署微服务时需要用到的文件的集合,保存在部署包仓库中,为了便于管理,做了一些规定。前端程序的部署包就是用jar命令将vue编译生成dist目录打包,或者指定其他目录直接打包,生成的文件将扩展名定义为vuejar,然后上传到部署包仓库;后端springboot程序的打包不使用springboot提供的打包插件,而是使用maven的jar插件生成的包,然后用dependency:copy-dependencies插件下载依赖包;还有就是指定deploy/sample/下面的appliation.properties或者其他配置文件,这三个部分共同组成部署包,为了对相同的文件做优化传输及存储,他们没有打包到一个文件,而是分开上传,在部署包仓库中也是分目录存储。
(d)该插件除了java的部署包,也可以支持前端的打包发布,例如html,vue等等,这样前后端都用统一的部署方式。
(e)当部署工具跟部署包仓库建立了监听连接后,插件就可以直接触发部署工具执行更新该新版本,而且更新过程的日志可以转发打印到插件执行的终端上。
(2)部署包仓库;部署包仓库可实现的功能如下:
接收客户端提交的部署包并存储;
将提交的部署包进行加密;
给客户端提供版本比对的接口;
提供下载接口给客户端下载部署包;
提供版本变化通知部署工具开始自动更新版本;
鉴权及权限控制,例如签名验证、ip验证、包及包版本权限验证等等。
(3)服务启动器;服务启动器可实现的功能如下:
读取部署包版本信息文件,并跟服务部署包仓库进行比对,如有变化更新部署包,并备份旧的版本;
更新部署包的时候先做判断本地已经存在的包就直接拷贝本地,不再从服务部署包仓库拉取,节省时间;
判断并处理相同的jar包,仅保留最高版本的包,避免包冲突;
按配置文件的配置读取各个微服务的配置信息,并按顺序启动微服务;
汇报各个jar包的版本信息。
(4)组合微服务适配器;组合微服务适配器可实现的功能如下:
按优先级顺序加载微服务的配置文件,包括本地配置文件及nacos中的配置文件;
每个微服务都可以独立注册到nacos服务注册中心,便于其他服务无缝调用;
解决在同一个jvm中多个微服务命名冲突的问题;
实现插件机制,为微服务提供插件接口,便于微服务扩展功能;
提供统一的监控接口,监控jvm的内存、线程数量等指标。
(5)部署工具;该程序只有100多k,非常轻量化,直接用java-jardeployutil.jar即可运行。通过--task参数使用不同的命令,例如:
Usage:java-jar deployutil.jar installFileName[--task=installAll|updateRunJar|installStartScript|buildModuleVersionConfig|updateModule|restart|updateProperties|enable|updateBootstrap|updateModuleVersionConfig|serverMode|installServerMode][--deployServerURL=][--profiles=][--installDir=][--reqNonEncJar=]
部署工具可实现的功能如下:
可以支持jar包加密,安装时自动下载服务启动器及解密插件;
可以将所有的部署包编排在一个部署描述文件中,实现一条命令部署所有微服务容器;该命令为:java-jar deployutil.jar install.ini;
可以支持一条命令更新单个或多个微服务容器,无需手动找到每个服务所在的目录;该命令为:java-jar deployutil.jar–task=updateModule reportweb,reportweb.jar,release.20200617.1,后面这个参数是部署包标识号,每个部署包都不一样;
可以收集当前部署的所有微服务容器中部署的微服务的版本信息;
可以支持方便的更新各个微服务业务配置文件中的配置项;
提供监听机制,可以接收并处理服务部署包仓库发来的自动版本更新命令。
上述一种可组合的微服务开发框架的部署设备中的各个组成部分执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例中的实施方案可以进一步组合或者替换,且实施例仅仅是对本发明的优选实施例进行描述,并非对本发明的构思和范围进行限定,在不脱离本发明设计思想的前提下,本领域中专业技术人员对本发明的技术方案作出的各种变化和改进,均属于本发明的保护范围。
Claims (9)
1.一种可组合的微服务开发框架的部署方法,其特征在于,所述方法包括:
通过maven插件生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;
判断所述部署包是否存在于部署包仓库中,若存在,将所述部署包生成对应的引用文件,否则,提交所述部署包至所述部署包仓库中;其中,所述部署包仓库用于管理所述部署包,以及提供上传或下载所述部署包的接口;
从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通。
2.根据权利要求1所述的一种可组合的微服务开发框架的部署方法,其特征在于,所述从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通,进一步包括:
通过使用部署工具部署微服务容器;其中,所述部署工具用于部署或更新所述部署包;所述部署工具包括部署描述文件及部署命令;所述微服务容器用于支持一个或多个所述微服务在JVM进程中运行的容器,所述微服务容器包括所述微服务容器的描述文件、服务启动器及组合微服务适配器;
由所述服务启动器对所述部署包进行拉取和更新,并进行解压部署;
按照顺序启动所有的所述微服务,并将所述微服务注册到nacos服务注册中心,实现服务互通。
3.根据权利要求1所述的一种可组合的微服务开发框架的部署方法,其特征在于,所述方法之前还包括:
获取当前版本git信息、所述git信息的tag信息和pom文件中的版本号,并生成版本记录文件。
4.根据权利要求1至3任一所述的一种可组合的微服务开发框架的部署方法,其特征在于,所述部署包包括:由jar命令将vue编译生成的前端程序部署包、通过maven插件生成的后端程序部署包以及微服务的业务配置文件。
5.一种可组合的微服务开发框架的部署装置,其特征在于,所述装置包括:
生成单元,用于通过maven插件生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;
判断单元,用于判断所述部署包是否存在于部署包仓库中,若存在,将所述部署包生成对应的引用文件,否则,提交所述部署包至所述部署包仓库中;其中,所述部署包仓库用于管理所述部署包,以及提供上传或下载所述部署包的接口;
启动单元,用于从所述部署包仓库中提取指定的所述部署包进行部署,并按照顺序启动所述微服务实现服务互通。
6.根据权利要求5所述的一种可组合的微服务开发框架的部署装置,其特征在于,所述启动单元进一步包括:
第一部署单元,用于通过使用部署工具部署微服务容器;其中,所述部署工具用于部署或更新所述部署包;所述部署工具包括部署描述文件及部署命令;所述微服务容器用于支持一个或多个所述微服务在JVM进程中运行的容器,所述微服务容器包括所述微服务容器的描述文件、服务启动器及组合微服务适配器;
第二部署单元,用于由所述服务启动器对所述部署包进行拉取和更新,并进行解压部署;
注册单元,用于按照顺序启动所有的所述微服务,并将所述微服务注册到nacos服务注册中心,实现服务互通。
7.根据权利要求5所述的一种可组合的微服务开发框架的部署装置,其特征在于,所述装置进一步包括:
获取单元,用于获取当前版本git信息、所述git信息的tag信息和pom文件中的版本号,并生成版本记录文件。
8.根据权利要求5至7任一所述的一种可组合的微服务开发框架的部署装置,其特征在于,所述部署包包括:由jar命令将vue编译生成的前端程序部署包、通过maven插件生成的后端程序部署包以及微服务的业务配置文件。
9.一种可组合的微服务开发框架的部署设备,其特征在于,所述设备包括:
maven插件,用于生成部署包以及与所述部署包对应的标识号;其中,所述部署包指用于运行微服务所需文件的集合;
部署包仓库,用于管理所述部署包,以及提供上传或下载所述部署包的接口;
部署工具,用于部署或更新所述部署包;
微服务容器,用于对所获取的指定版本的所述部署包件运行;所述微服务容器包括微服务容器的描述文件、服务启动器及组合微服务适配器;其中,
所述微服务容器的描述文件包括所述部署包仓库的URL及所述部署包对应的配置信息;
所述服务启动器用于根据所述配置信息从所述部署包仓库中拉取或更新对应标识号的所述部署包进行解压部署并处理包冲突,以及启动所述组合微服务适配器;
所述组合微服务适配器按照顺序启动所述微服务容器的描述文件中的所有微服务,并将所有所述微服务注册到nacos服务注册中心,实现服务互通。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010615794.8A CN111796834B (zh) | 2020-06-30 | 2020-06-30 | 一种可组合的微服务开发框架的部署方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010615794.8A CN111796834B (zh) | 2020-06-30 | 2020-06-30 | 一种可组合的微服务开发框架的部署方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111796834A true CN111796834A (zh) | 2020-10-20 |
CN111796834B CN111796834B (zh) | 2022-10-14 |
Family
ID=72809664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010615794.8A Active CN111796834B (zh) | 2020-06-30 | 2020-06-30 | 一种可组合的微服务开发框架的部署方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111796834B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363775A (zh) * | 2020-11-11 | 2021-02-12 | 深圳力维智联技术有限公司 | 动态修改微服务配置信息的方法及系统、存储介质 |
CN112379865A (zh) * | 2020-11-03 | 2021-02-19 | 福建福诺移动通信技术有限公司 | 基于Maven插件机制的软件开发框架更新方法 |
CN112486466A (zh) * | 2020-12-11 | 2021-03-12 | 光大兴陇信托有限责任公司 | 一种基于微服务架构的快速通用基础框架实现方法 |
CN112527337A (zh) * | 2020-12-30 | 2021-03-19 | 成都四方伟业软件股份有限公司 | 一种基于插件式异构数据源热插拔加载引擎方法及装置 |
CN112527251A (zh) * | 2020-11-30 | 2021-03-19 | 北京百度网讯科技有限公司 | 业务处理方法、装置、电子设备及存储介质 |
CN112559026A (zh) * | 2020-12-23 | 2021-03-26 | 南方电网深圳数字电网研究院有限公司 | 基于api接口的原生能力拓展方法、设备及存储介质 |
CN112788124A (zh) * | 2020-12-31 | 2021-05-11 | 中科星通(廊坊)信息技术有限公司 | 一种遥感影像分布式注册服务方法及装置 |
CN112968960A (zh) * | 2021-02-22 | 2021-06-15 | 同济大学 | 一种基于开源组件的微服务架构 |
CN113220290A (zh) * | 2021-04-23 | 2021-08-06 | 杭州数跑科技有限公司 | 应用的业务功能实现方法、装置、设备及存储介质 |
CN113672278A (zh) * | 2021-08-23 | 2021-11-19 | 湖南惠农科技有限公司 | 微服务架构下的服务节点版本控制方法及装置 |
CN117421039A (zh) * | 2023-12-18 | 2024-01-19 | 北京中诺链捷数字科技有限公司 | 前端Vue工程的版本信息生成方法、装置、设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648718A (zh) * | 2015-11-02 | 2017-05-10 | 天脉聚源(北京)科技有限公司 | 一种服务器代码部署的方法和系统 |
US9652214B1 (en) * | 2015-12-18 | 2017-05-16 | Sap Se | Pluggable extension of software applications |
CN109358912A (zh) * | 2018-09-30 | 2019-02-19 | 安徽智恒信科技有限公司 | 一种批量启动微服务的可视化系统及方法 |
CN109597605A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 应用微服务部署方法、装置、存储介质及终端设备 |
CN110704061A (zh) * | 2017-12-26 | 2020-01-17 | 杭州数梦工场科技有限公司 | 基于微服务的部署交付件的运行方法及装置 |
CN111061463A (zh) * | 2019-12-26 | 2020-04-24 | 深圳前海环融联易信息科技服务有限公司 | 微服务组合应用方法、装置、计算机设备及存储介质 |
-
2020
- 2020-06-30 CN CN202010615794.8A patent/CN111796834B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648718A (zh) * | 2015-11-02 | 2017-05-10 | 天脉聚源(北京)科技有限公司 | 一种服务器代码部署的方法和系统 |
US9652214B1 (en) * | 2015-12-18 | 2017-05-16 | Sap Se | Pluggable extension of software applications |
CN110704061A (zh) * | 2017-12-26 | 2020-01-17 | 杭州数梦工场科技有限公司 | 基于微服务的部署交付件的运行方法及装置 |
CN109358912A (zh) * | 2018-09-30 | 2019-02-19 | 安徽智恒信科技有限公司 | 一种批量启动微服务的可视化系统及方法 |
CN109597605A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 应用微服务部署方法、装置、存储介质及终端设备 |
CN111061463A (zh) * | 2019-12-26 | 2020-04-24 | 深圳前海环融联易信息科技服务有限公司 | 微服务组合应用方法、装置、计算机设备及存储介质 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379865A (zh) * | 2020-11-03 | 2021-02-19 | 福建福诺移动通信技术有限公司 | 基于Maven插件机制的软件开发框架更新方法 |
CN112363775A (zh) * | 2020-11-11 | 2021-02-12 | 深圳力维智联技术有限公司 | 动态修改微服务配置信息的方法及系统、存储介质 |
CN112527251A (zh) * | 2020-11-30 | 2021-03-19 | 北京百度网讯科技有限公司 | 业务处理方法、装置、电子设备及存储介质 |
CN112486466A (zh) * | 2020-12-11 | 2021-03-12 | 光大兴陇信托有限责任公司 | 一种基于微服务架构的快速通用基础框架实现方法 |
CN112559026B (zh) * | 2020-12-23 | 2024-05-14 | 南方电网数字平台科技(广东)有限公司 | 基于api接口的原生能力拓展方法、设备及存储介质 |
CN112559026A (zh) * | 2020-12-23 | 2021-03-26 | 南方电网深圳数字电网研究院有限公司 | 基于api接口的原生能力拓展方法、设备及存储介质 |
CN112527337A (zh) * | 2020-12-30 | 2021-03-19 | 成都四方伟业软件股份有限公司 | 一种基于插件式异构数据源热插拔加载引擎方法及装置 |
CN112788124A (zh) * | 2020-12-31 | 2021-05-11 | 中科星通(廊坊)信息技术有限公司 | 一种遥感影像分布式注册服务方法及装置 |
CN112788124B (zh) * | 2020-12-31 | 2023-06-09 | 中科星通(廊坊)信息技术有限公司 | 一种遥感影像分布式注册服务方法及装置 |
CN112968960A (zh) * | 2021-02-22 | 2021-06-15 | 同济大学 | 一种基于开源组件的微服务架构 |
CN113220290A (zh) * | 2021-04-23 | 2021-08-06 | 杭州数跑科技有限公司 | 应用的业务功能实现方法、装置、设备及存储介质 |
CN113672278A (zh) * | 2021-08-23 | 2021-11-19 | 湖南惠农科技有限公司 | 微服务架构下的服务节点版本控制方法及装置 |
CN113672278B (zh) * | 2021-08-23 | 2024-05-10 | 湖南惠农科技有限公司 | 微服务架构下的服务节点版本控制方法及装置 |
CN117421039A (zh) * | 2023-12-18 | 2024-01-19 | 北京中诺链捷数字科技有限公司 | 前端Vue工程的版本信息生成方法、装置、设备和存储介质 |
CN117421039B (zh) * | 2023-12-18 | 2024-02-27 | 北京中诺链捷数字科技有限公司 | 前端Vue工程的版本信息生成方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111796834B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111796834B (zh) | 一种可组合的微服务开发框架的部署方法、装置及设备 | |
US7940407B2 (en) | Image forming apparatus, terminal apparatus and management apparatus | |
KR101075388B1 (ko) | 복수의 네트워크 주변장치 드라이버들의 컴포넌트들을 유지보수하기 위한 방법, 시스템, 및 컴퓨터 판독가능 기록 매체 | |
US6607314B1 (en) | Apparatus for and method of updating a software routine | |
CN101493773B (zh) | 信息处理装置、系统及方法 | |
US8291402B2 (en) | Using system fingerprints to accelerate package dependency resolution | |
US20030195951A1 (en) | Method and system to dynamically detect, download and install drivers from an online service | |
US20070101342A1 (en) | Automated device driver management | |
CN106598673B (zh) | 一种应用程序升级方法及系统 | |
CN108235763B (zh) | 检测系统、方法及相关装置 | |
CN110825399B (zh) | 一种应用程序的部署方法及装置 | |
US8612739B2 (en) | System, apparatus, and method for inhibiting operation that modifies program configuration | |
CN101651669A (zh) | 业务箱集成服务器和业务箱集成方法 | |
CN110784348A (zh) | 一种固件升级方法、装置、电子设备及存储介质 | |
CN112615747B (zh) | 一种网络设备自动部署配置的方法及装置 | |
US20210099590A1 (en) | System and method for uniform software deployment to devices with different configurations | |
CN104699511A (zh) | 插件升级方法及装置 | |
CN110912975A (zh) | 一种私有云版本管理系统及其实现方法 | |
US9274981B2 (en) | Forming apparatus and processing method to request configuration data from a management apparatus in predetermined transition state | |
CN111949276A (zh) | 一种基于容器方式自动部署应用程序的系统及方法 | |
US10078532B2 (en) | Resource management method and device for terminal system among multiple operating systems | |
CN111666079A (zh) | 软件升级的方法、装置、系统、设备和计算机可读介质 | |
US8332494B2 (en) | Device management system, servers, method for managing device, and computer readable medium | |
CN112328284A (zh) | 应用程序升级方法、系统、设备和存储介质 | |
GB2348987A (en) | Upgrading firmware from a web site using an applet |
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 |