CN112527357A - 服务热加载更新方法、装置、计算机设备和存储介质 - Google Patents
服务热加载更新方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112527357A CN112527357A CN202011468220.9A CN202011468220A CN112527357A CN 112527357 A CN112527357 A CN 112527357A CN 202011468220 A CN202011468220 A CN 202011468220A CN 112527357 A CN112527357 A CN 112527357A
- Authority
- CN
- China
- Prior art keywords
- configuration file
- update
- target service
- updating
- instruction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000003068 static effect Effects 0.000 claims abstract description 114
- 238000004590 computer program Methods 0.000 claims description 27
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本申请设计大数据技术领域,特别是涉及一种服务热加载更新方法、装置、计算机设备和存储介质。所述方法包括:接收对目标服务的启动指令;根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务;检测是否接收到对目标服务的更新指令;当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。采用本方法能够提升服务热加载更新效率。此外,本发明还涉及区块链技术,启动指令、静态配置文件、更新指令以及更新配置文件均可存储于区块链中。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种服务热加载更新方法、装置、计算机设备和存储介质。
背景技术
由于静态配置文件的不停机不重启的特性,使得其在运行的服务中可以完成实时的配置更改和服务控制,大大提升了在生效的生产环境中的灵活性。
在传统方式中,例如在spring cloud docker插件自动化部署中,是将静态配置文件打包至docker镜像内,并进行部署。
但是,由于打包至镜像内的静态配置文件无法进行更新和替换,在进行服务热加载更新的时候,需要重新打包镜像,浪费大量的人力物力,使得服务热加载更新效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升服务热加载更新效率的服务热加载更新方法、装置、计算机设备和存储介质。
一种服务热加载更新方法,所述方法包括:
接收对目标服务的启动指令;
根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务;
检测是否接收到对目标服务的更新指令;
当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在其中一个实施例中,接收对目标服务的启动指令之前,还包括:
获取预先编译的静态配置文件;
获取静态配置文件编译完成的完成时间;
将完成时间作为静态配置文件的版本信息,并将版本信息与静态配置文件打包发送至镜像中。
在其中一个实施例中,基于静态配置文件启动目标服务之后,还包括:
接收终端对目标服务的更新选取指令;
根据更新选取指令,获取对应目标服务的配置数据,并接收终端对配置数据的更新,得到更新后的配置数据;
接收终端发送的更新完成指令,更新完成指令基于对终端的终端界面上的更新完成控件的触发生成;
基于更新完成指令,根据更新后的配置数据生成更新配置文件,并生成更新指令。
在其中一个实施例中,接收终端对目标服务的更新选取指令,包括:
将目标服务注册至服务订阅***中,并订阅终端对目标服务的更新;
接收服务订阅***发送的更新选取指令,更新选取指令为服务订阅***在接收到终端对目标服务进行更新选取时生成,终端对目标服务进行更新选取包括通过终端管理页面对服务标识、服务配置以及服务环境中至少一项进行选择并更新。
在其中一个实施例中,根据更新后的配置数据生成更新配置文件之前,还包括:
获取更新后的配置数据的更新完成时间;
根据更新后的配置数据生成更新配置文件,包括:
将更新完成时间作为更新后的版本信息,并基于更新后的版本信息以及更新后的配置数据,生成更新配置文件。
在其中一个实施例中,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务之前,还包括:
获取静态配置文件的版本信息以及更新后的版本信息;
根据版本信息判断更新配置文件的版本是否高于静态配置文件的版本;
当确定更新配置文件的版本高于静态配置文件的版本时,则继续获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在其中一个实施例中,上述方法还包括:
将启动指令、静态配置文件、更新指令以及更新配置文件中的至少一个上传至区块链节点中进行存储。
一种服务热加载更新装置,所述装置包括:
启动指令接收模块,用于接收对目标服务的启动指令;
目标服务启动模块,用于根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务;
检测模块,用于检测是否接收到对目标服务的更新指令;
热加载更新模块,用于当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法的步骤
上述服务热加载更新方法、装置、计算机设备和存储介质,通过接收对目标服务的启动指令,根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务,然后检测是否接收到对目标服务的更新指令,并当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。从而,在服务启动运行过程中对服务进行热加载更新的时候,可以获取镜像外的更新配置文件,并进行目标服务的热加载更新,相比于重新进行镜像的打包并加载镜像中的配置文件,可以减少数据处理的过程,提升数据处理效率,进而提升服务热加载更新的效率。
附图说明
图1为一个实施例中服务热加载更新方法的应用场景图;
图2为一个实施例中服务热加载更新方法的流程示意图;
图3为另一个实施例中服务热加载更新方法的流程示意图;
图4为一个实施例中更新选取指令接收步骤的流程示意图;
图5为一个实施例中服务热加载更新装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的服务热加载更新方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102可以基于用户对终端界面上展示的目标服务的触发生成对目标服务的启动指令,服务器104在接收到启动指令后,根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务。进一步,服务器104可以检测是否接收到对目标服务的更新指令,并在当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种服务热加载更新方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S202,接收对目标服务的启动指令。
其中,启动指令是指终端基于用户的触发所生成的,用于启动所选取的目标服务的指令,启动指令中可以携带有目标服务的服务标识,例如,服务名称、服务编号或者是服务ID(Identity document)等。
在本实施例中,目标服务可以是指各业务***或者是应用***中的服务,例如可以是Redis缓存服务或者是微服务等。
在本实施例中,开发部门在完成目标服务的开发工作,并进行发布后,服务器可以基于应用***对目标服务的触发指令或者是基于终端的触发指令,触发执行目标服务,例如,对于微服务,微服务A可以基于微服务B的调用触发执行。
步骤S204,根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务。
其中,静态配置文件是服务开发部门在开发也服务的时候所编译生成的文件,静态配置文件中可以包括启动该目标服务的多个配置项,例如,启动条件、终止条件等。
在本实施例中,镜像中的静态配置文件无法进行更改以及更新,例如,基于spring-cloud-config所开发的Java服务开发框架,其无法对各个docker镜像内打包好的静态配置文件进行更新以及更改。
在本实施例中,当服务器首次接收到启动指令,启动目标服务的时候,服务器可以通过加载配置于镜像中的静态配置文件,并通过读取静态配置文件中的配置项来启动目标服务。例如,参照前文所述,当微服务A调用微服务B的时候,服务器可以基于微服务A的调用触发加载配置于镜像中的微服务B的静态配置文件,然后启动微服务B。
步骤S206,检测是否接收到对目标服务的更新指令。
其中,更新指令是指对启动中的服务进行服务更新的指令,可以包括但不限于更新服务名称、服务所包含的方法或者是服务地址等内容。本领域技术人员可以理解的是,在一些实施例中,更新还可以包括删除或者是新增,本申请对此不作限制。
更新配置文件是指用于对服务进行热加载更新的配置文件,更新配置文件中可以包括对目标服务进行删除、新增或者更改等的配置数据。
在本实施例中,用户可以通过终端触发进行更新操作,并基于在终端上进行的更新操作,生成更新指令,以对目标服务进行更新。
具体地,服务器可以实时对目标服务进行监听,并在监听到对目标服务进行更新的更新指令时,获取配置于镜像外的更新配置文件,并基于更新配置文件对目标服务进行更新。
步骤S208,当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在本实施例中,服务器在获取到更新配置文件后,可以通过加载更新配置文件中配置项,已对启动中的目标服务进行热加载更新。
上述服务热加载更新方法中,通过接收对目标服务的启动指令,根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务,然后检测是否接收到对目标服务的更新指令,并当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。从而,在服务启动运行过程中对服务进行热加载更新的时候,可以获取镜像外的更新配置文件,并进行目标服务的热加载更新,相比于重新进行镜像的打包并加载镜像中的配置文件,可以减少数据处理的过程,提升数据处理效率,进而提升服务热加载更新的效率。
在其中一个实施例中,接收对目标服务的启动指令之前,还可以包括:获取预先编译的静态配置文件;获取静态配置文件编译完成的完成时间;将完成时间作为静态配置文件的版本信息,并将版本信息与静态配置文件打包发送至镜像中。
其中,完成时间是指开发编译完成该静态配置文件的时间,或者是开发完成组成静态配置文件的配置数据的编写时间。
在本实施例中,服务器可以从数据库或者***缓存中获取开发通过终端预先编译完成的静态配置文件,并对应获取该配置文件的编译完成时间。
进一步,服务器可以将获取到的完成时间作为静态配置文件的版本信息,并将该版本信息与静态配置文件同时打包发送至镜像中,例如,服务器可以使用神兵编译等进行打包。具体地,服务器在通过神兵编译打包时,可以通过编译前置脚本执行GIT命令,并将编译静态配置文件时的GIT提交时间作为版本编号写入静态配置文件,同时打包进docker镜像中。
上述实施例中,通过将静态配置文件编译完成的完成时间作为版本信息,并打包发送至镜像中,从而,后续可以根据编译完成时间确定配置文件的版本,可以使得服务器可以根据编译完成时间加载最新版本的配置文件,提升版本确定的准确性以及***服务运行的稳定性。
在其中一个实施例中,参考图3,基于静态配置文件启动目标服务之后,还可以包括:
步骤S302,接收终端对目标服务的更新选取指令。
其中,更新选取指令是指用户通过对终端界面上显示的服务标识、服务配置以及服务环境中进行选取后,并确定对目标服务进行更新后所生成的指令。
在本实施例中,对于同一业务***或者多个业务***,其对应的服务有多个,服务器可以通过开发终端界面,通过服务标识、服务配置以及服务环境等多个位置对各个服务进行控制。
在本实施例中,用户通过终端界面上显示的服务标识、服务配置以及服务环境等的选取,确定对目标服务进行更新,生成对应目标服务的更新选取指令。
步骤S304,根据更新选取指令,获取对应目标服务的配置数据,并接收终端对配置数据的更新,得到更新后的配置数据。
具体地,服务器在接收到更新选取指令后,可以获取对应该目标服务的配置数据,然后发送至终端显示。
在本实施例中,用户通过终端进行更新操作,使得服务器可以根据该更新操作对配置数据进行更新,并在更新完成后得到更新后的配置数据。
步骤S306,接收终端发送的更新完成指令,更新完成指令基于对终端的终端界面上的更新完成控件的触发生成。
在本实施例中,用户完成更新操作后,可以通过触发终端界面上的更新完成控件,生成更新完成指令。
步骤S308,基于更新完成指令,根据更新后的配置数据生成更新配置文件,并生成更新指令。
在本实施例中,服务器在接收到更新完成指令后,可以根据更新后的配置数据,生成更新配置文件。具体地,服务器可以获取更新后的配置数据,并对更新后的配置数据进行加密压缩打包,以得到更新配置文件。
在本实施例中,服务器根据更新后的配置数据得到更新配置文件是在镜像外打包生成的,即生成更新配置文件的处理过程并非如前文所述的将静态配置文件打包发送至镜像中的处理过程,使得处于镜像外的更新配置文件可读且可更改。
在本实施例中,服务器在生成更新配置文件后,还可以生成目标服务的更新指令,以使得服务器对目标服务进行更新。
在其中一个实施例中,参考图4,接收终端对目标服务的更新选取指令,可以包括:
步骤S402,将目标服务注册至服务订阅***中,并订阅终端对目标服务的更新。
具体地,服务器在启动目标服务后,可以将目标服务注册至服务订阅***中,例如,注册至Redis中,并订阅服务订阅***终端对目标服务的更新。例如,服务器将目标服务注册至Redis后,可以订阅Redis中对该目标服务进行更新的频道,当终端对该目标服务进行更新时,则服务器可以接受到redis发动的更新选取指令,即服务订阅***发送的更新选取指令。
步骤S404,接收服务订阅***发送的更新选取指令,更新选取指令为服务订阅***在接收到终端对目标服务进行更新选取时生成,终端对目标服务进行更新选取包括通过终端管理页面对服务标识、服务配置以及服务环境中至少一项进行选择并更新。
在本实施例中,服务器通过静态配置文件启动目标服务后,可以通过终端界面展示启动后的目标服务以及可以展示对目标服务进行操作的终端管理页面。
进一步,用户可以通过对终端界面展示的终端管理页面上的服务标识、服务配置以及服务环境中至少一项进行选择,以确定对所述目标服务进行更新,以生成对应的更新选取指令。
上述实施例中,通过将目标服务注册至服务订阅***,然后接受服务订阅***发送的更新选取指令,从而可以通过服务订阅***监听终端对目标服务的更新,以便基于更新选取指令及时对目标服务进行更新,提升目标服务的更新效率。
在其中一个实施例中,根据更新后的配置数据生成更新配置文件之前,还可以包括:获取更新后的配置数据的更新完成时间。
其中,更新完成时间是指前文所述的用户通过终端管理页面对配置数据进行更新操作完成后,触发终端管理页面上的更新完成控件的触发时间。
在本实施例中,终端根据用户对更新完成控件的触发生成更新完成指令时,可以对应获取用户对该更新完成控件的触发时间,并将该触发时间与更新完成指令一并发送至服务器。
在本实施例中,根据更新后的配置数据生成更新配置文件,可以包括:将更新完成时间作为更新后的版本信息,并基于更新后的版本信息以及更新后的配置数据,生成更新配置文件。
在本实施例中,服务器在获取到该触发时间后,可以将该触发时间作为版本信息,并基于更新后的配置数据,生成更新配置文件。
具体地,服务器可以将触发时间和更新后的配置数据一并打包,以生成以更新完成时间作为版本信息的更新配置文件。
本领域技术人员可以理解的是,更新配置文件的打包是在镜像外进行的,生成的更新配置文件是镜像外的配置文件,与镜像内的静态配置文件存在不同。
在其中一个实施例中,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务之前,还可以包括:获取静态配置文件的版本信息以及更新后的版本信息;根据版本信息判断更新配置文件的版本是否高于静态配置文件的版本;当确定更新配置文件的版本高于静态配置文件的版本时,则继续获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在本实施例中,服务器在生成更新配置文件后,对服务器而言,有多个配置文件可以用于启动目标服务,即处于镜像内的静态配置文件以及处于镜像外的更新配置文件。此时,服务器在对目标服务进行热加载更新的时候,需要从镜像内的静态配置文件以及镜像外的更新配置文件中确定对目标服务进行更新的配置文件。
具体地,服务器可以根据镜像内静态配置文件的版本信息以及镜像外更新配置文件的版本信息进行比较,并在确定更新配置文件的版本高于静态配置文件的版本时,获取更新配置文件,已加载更新配置文件,实现对目标服务进行热加载更新。
在本实施例中,服务器根据镜像内静态配置文件的版本信息以及镜像外更新配置文件的版本信息进行比较,可以是比较作为不同版本信息的时间,通过时间确定哪一个配置文件的版本更高。例如,时间更接近于当前时间的配置文件的版本更高,时间远离于当前时间的配置文件的版本更低,进而根据确定的配置文件进行更新。
上述实施例中,通过将更新完成时间作为版本信息打包至更新配置文件中,然后根据静态配置文件以及更新配置文件的版本信息进行版本比较,并在确定更新配置文件的版本高于静态配置文件的版本时,获取更新配置文件,从而,可以从时间维度上确定对应目标服务的最新版配置文件,提升目标服务更新的准确性。
在其中一个实施例中,上述方法还可以包括:将启动指令、静态配置文件、更新指令以及更新配置文件中的至少一个上传至区块链节点中进行存储。
其中,区块链是指分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Block chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
具体地,区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在本实施例中,服务器可以将启动指令、静态配置文件、更新指令以及更新配置文件中的一个或者多个数据上传并存储于区块链的节点中,以保证数据的私密性和安全性。
上述实施例中,通过将启动指令、静态配置文件、更新指令以及更新配置文件中至少一个上传至区块链并存储于区块链的节点中,从而可以保障存储至区块链节点中数据的私密性,可以提升数据的安全性。
应该理解的是,虽然图2~图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2~图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种服务热加载更新装置,包括:启动指令接收模块100、目标服务启动模块200、检测模块300和热加载更新模块400,其中:
启动指令接收模块100,用于接收对目标服务的启动指令。
目标服务启动模块200,用于根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务。
检测模块300,用于检测是否接收到对目标服务的更新指令。
热加载更新模块400,用于当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在其中一个实施例中,上述装置还可以包括:
静态配置文件获取模块,用于在接收对目标服务的启动指令之前,获取预先编译的静态配置文件。
完成时间获取模块,用于获取静态配置文件编译完成的完成时间。
打包模块,用于将完成时间作为静态配置文件的版本信息,并将版本信息与静态配置文件打包发送至镜像中。
在其中一个实施例中,上述装置还可以包括:
更新选取指令接收模块,用于基于静态配置文件启动目标服务之后,接收终端对目标服务的更新选取指令。
配置数据更新模块,用于根据更新选取指令,获取对应目标服务的配置数据,并接收终端对配置数据的更新,得到更新后的配置数据。
更新完成指令接收模块,用于接收终端发送的更新完成指令,更新完成指令基于对终端的终端界面上的更新完成控件的触发生成。
更新配置文件生成模块,用于基于更新完成指令,根据更新后的配置数据生成更新配置文件,并生成更新指令。
在其中一个实施例中,更新选取指令接收模块可以包括:
注册与订阅子模块,用于将目标服务注册至服务订阅***中,并订阅终端对目标服务的更新。
更新选取指令接收子模块,用于接收服务订阅***发送的更新选取指令,更新选取指令为服务订阅***在接收到终端对目标服务进行更新选取时生成,终端对目标服务进行更新选取包括通过终端管理页面对服务标识、服务配置以及服务环境中至少一项进行选择并更新。
在其中一个实施例中,上述装置还可以包括:
更新完成时间获取模块,用于根据更新后的配置数据生成更新配置文件之前,获取更新后的配置数据的更新完成时间。
在本实施例中,更新配置文件生成模块还用于将更新完成时间作为更新后的版本信息,并基于更新后的版本信息以及更新后的配置数据,生成更新配置文件。
在其中一个实施例中,上述装置还可以包括:
版本信息获取模块,用于获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务之前,获取静态配置文件的版本信息以及更新后的版本信息。
版本判定模块,用于根据版本信息判断更新配置文件的版本是否高于静态配置文件的版本;当确定更新配置文件的版本高于静态配置文件的版本时,则继续获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在其中一个实施例中,上述装置还可以包括:
存储模块,用于将启动指令、静态配置文件、更新指令以及更新配置文件中的至少一个上传至区块链节点中进行存储。
关于服务热加载更新装置的具体限定可以参见上文中对于服务热加载更新方法的限定,在此不再赘述。上述服务热加载更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储启动指令、静态配置文件、更新指令以及更新配置文件等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种服务热加载更新方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收对目标服务的启动指令;根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务;检测是否接收到对目标服务的更新指令;当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在其中一个实施例中,处理器执行计算机程序时实现接收对目标服务的启动指令之前,还可以实现以下步骤:获取预先编译的静态配置文件;获取静态配置文件编译完成的完成时间;将完成时间作为静态配置文件的版本信息,并将版本信息与静态配置文件打包发送至镜像中。
在其中一个实施例中,处理器执行计算机程序时实现基于静态配置文件启动目标服务之后,还可以实现以下步骤:接收终端对目标服务的更新选取指令;根据更新选取指令,获取对应目标服务的配置数据,并接收终端对配置数据的更新,得到更新后的配置数据;接收终端发送的更新完成指令,更新完成指令基于对终端的终端界面上的更新完成控件的触发生成;基于更新完成指令,根据更新后的配置数据生成更新配置文件,并生成更新指令。
在其中一个实施例中,处理器执行计算机程序时实现接收终端对目标服务的更新选取指令,可以包括:将目标服务注册至服务订阅***中,并订阅终端对目标服务的更新;接收服务订阅***发送的更新选取指令,更新选取指令为服务订阅***在接收到终端对目标服务进行更新选取时生成,终端对目标服务进行更新选取包括通过终端管理页面对服务标识、服务配置以及服务环境中至少一项进行选择并更新。
在其中一个实施例中,处理器执行计算机程序时实现根据更新后的配置数据生成更新配置文件之前,还可以实现以下步骤:获取更新后的配置数据的更新完成时间。
在本实施例中,处理器执行计算机程序时实现根据更新后的配置数据生成更新配置文件,可以包括:将更新完成时间作为更新后的版本信息,并基于更新后的版本信息以及更新后的配置数据,生成更新配置文件。
在其中一个实施例中,处理器执行计算机程序时实现获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务之前,还可以实现以下步骤:获取静态配置文件的版本信息以及更新后的版本信息;根据版本信息判断更新配置文件的版本是否高于静态配置文件的版本;当确定更新配置文件的版本高于静态配置文件的版本时,则继续获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在其中一个实施例中,处理器执行计算机程序时还可以实现以下步骤:将启动指令、静态配置文件、更新指令以及更新配置文件中的至少一个上传至区块链节点中进行存储。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收对目标服务的启动指令;根据启动指令,获取配置于镜像中的静态配置文件,并基于静态配置文件启动目标服务;检测是否接收到对目标服务的更新指令;当检测到更新指令时,获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在其中一个实施例中,计算机程序被处理器执行时实现接收对目标服务的启动指令之前,还可以实现以下步骤:获取预先编译的静态配置文件;获取静态配置文件编译完成的完成时间;将完成时间作为静态配置文件的版本信息,并将版本信息与静态配置文件打包发送至镜像中。
在其中一个实施例中,计算机程序被处理器执行时实现基于静态配置文件启动目标服务之后,还可以实现以下步骤:接收终端对目标服务的更新选取指令;根据更新选取指令,获取对应目标服务的配置数据,并接收终端对配置数据的更新,得到更新后的配置数据;接收终端发送的更新完成指令,更新完成指令基于对终端的终端界面上的更新完成控件的触发生成;基于更新完成指令,根据更新后的配置数据生成更新配置文件,并生成更新指令。
在其中一个实施例中,计算机程序被处理器执行时实现接收终端对目标服务的更新选取指令,可以包括:将目标服务注册至服务订阅***中,并订阅终端对目标服务的更新;接收服务订阅***发送的更新选取指令,更新选取指令为服务订阅***在接收到终端对目标服务进行更新选取时生成,终端对目标服务进行更新选取包括通过终端管理页面对服务标识、服务配置以及服务环境中至少一项进行选择并更新。
在其中一个实施例中,计算机程序被处理器执行时实现根据更新后的配置数据生成更新配置文件之前,还可以实现以下步骤:获取更新后的配置数据的更新完成时间。
在本实施例中,计算机程序被处理器执行时实现根据更新后的配置数据生成更新配置文件,可以包括:将更新完成时间作为更新后的版本信息,并基于更新后的版本信息以及更新后的配置数据,生成更新配置文件。
在其中一个实施例中,计算机程序被处理器执行时实现获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务之前,还可以实现以下步骤:获取静态配置文件的版本信息以及更新后的版本信息;根据版本信息判断更新配置文件的版本是否高于静态配置文件的版本;当确定更新配置文件的版本高于静态配置文件的版本时,则继续获取配置于镜像外的对应目标服务的更新配置文件,并基于更新配置文件更新目标服务。
在其中一个实施例中,计算机程序被处理器执行时还可以实现以下步骤:将启动指令、静态配置文件、更新指令以及更新配置文件中的至少一个上传至区块链节点中进行存储。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种服务热加载更新方法,其特征在于,所述方法包括:
接收对目标服务的启动指令;
根据所述启动指令,获取配置于镜像中的静态配置文件,并基于所述静态配置文件启动所述目标服务;
检测是否接收到对所述目标服务的更新指令;
当检测到所述更新指令时,获取配置于镜像外的对应所述目标服务的更新配置文件,并基于所述更新配置文件更新所述目标服务。
2.根据权利要求1所述的方法,其特征在于,所述接收对目标服务的启动指令之前,还包括:
获取预先编译的静态配置文件;
获取所述静态配置文件编译完成的完成时间;
将所述完成时间作为所述静态配置文件的版本信息,并将所述版本信息与所述静态配置文件打包发送至所述镜像中。
3.根据权利要求1所述的方法,其特征在于,所述基于所述静态配置文件启动所述目标服务之后,还包括:
接收终端对所述目标服务的更新选取指令;
根据所述更新选取指令,获取对应所述目标服务的配置数据,并接收终端对所述配置数据的更新,得到更新后的配置数据;
接收所述终端发送的更新完成指令,所述更新完成指令基于对所述终端的终端界面上的更新完成控件的触发生成;
基于所述更新完成指令,根据所述更新后的配置数据生成更新配置文件,并生成所述更新指令。
4.根据权利要求3所述的方法,其特征在于,所述接收终端对所述目标服务的更新选取指令,包括:
将所述目标服务注册至服务订阅***中,并订阅所述终端对所述目标服务的更新;
接收所述服务订阅***发送的更新选取指令,所述更新选取指令为所述服务订阅***在接收到所述终端对所述目标服务进行更新选取时生成,所述终端对所述目标服务进行更新选取包括通过终端管理页面对服务标识、服务配置以及服务环境中至少一项进行选择并更新。
5.根据权利要求3所述的方法,其特征在于,所述根据所述更新后的配置数据生成更新配置文件之前,还包括:
获取所述更新后的配置数据的更新完成时间;
所述根据所述更新后的配置数据生成更新配置文件,包括:
将所述更新完成时间作为更新后的版本信息,并基于所述更新后的版本信息以及所述更新后的配置数据,生成更新配置文件。
6.根据权利要求5所述的方法,其特征在于,所述获取配置于镜像外的对应所述目标服务的更新配置文件,并基于所述更新配置文件更新所述目标服务之前,还包括:
获取所述静态配置文件的版本信息以及所述更新后的版本信息;
根据所述版本信息判断所述更新配置文件的版本是否高于所述静态配置文件的版本;
当确定所述更新配置文件的版本高于所述静态配置文件的版本时,则继续获取配置于镜像外的对应所述目标服务的更新配置文件,并基于所述更新配置文件更新所述目标服务。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
将所述启动指令、所述静态配置文件、所述更新指令以及所述更新配置文件中的至少一个上传至区块链节点中进行存储。
8.一种服务热加载更新装置,其特征在于,所述装置包括:
启动指令接收模块,用于接收对目标服务的启动指令;
目标服务启动模块,用于根据所述启动指令,获取配置于镜像中的静态配置文件,并基于所述静态配置文件启动所述目标服务;
检测模块,用于检测是否接收到对所述目标服务的更新指令;
热加载更新模块,用于当检测到所述更新指令时,获取配置于镜像外的对应所述目标服务的更新配置文件,并基于所述更新配置文件更新所述目标服务。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6或7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6或7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011468220.9A CN112527357A (zh) | 2020-12-14 | 2020-12-14 | 服务热加载更新方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011468220.9A CN112527357A (zh) | 2020-12-14 | 2020-12-14 | 服务热加载更新方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112527357A true CN112527357A (zh) | 2021-03-19 |
Family
ID=74999624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011468220.9A Pending CN112527357A (zh) | 2020-12-14 | 2020-12-14 | 服务热加载更新方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527357A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113179183A (zh) * | 2021-04-29 | 2021-07-27 | 杭州迪普科技股份有限公司 | 服务开关状态控制装置及方法 |
CN114237754A (zh) * | 2021-12-20 | 2022-03-25 | 中国平安财产保险股份有限公司 | 一种数据加载方法、装置、电子设备以及存储介质 |
CN114465887A (zh) * | 2021-12-23 | 2022-05-10 | 杭州溪塔科技有限公司 | 一种基于git的区块链配置管理方法和装置 |
WO2024114125A1 (zh) * | 2022-11-30 | 2024-06-06 | 华为云计算技术有限公司 | 更新配置信息的方法、装置、***及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044999A1 (en) * | 2002-08-30 | 2004-03-04 | Gibson Mason C. | Subscription-based program module installation and update system and method |
CN106789249A (zh) * | 2016-12-22 | 2017-05-31 | 北京五八信息技术有限公司 | 热更新方法、客户端及服务器 |
CN108304201A (zh) * | 2017-09-14 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 对象更新方法、装置及设备 |
CN108563461A (zh) * | 2018-03-20 | 2018-09-21 | 聚好看科技股份有限公司 | 一种从镜像中提取配置文件的方法、装置及*** |
CN108600282A (zh) * | 2017-11-30 | 2018-09-28 | 深圳市牛鼎丰科技有限公司 | 微服务发布方法、装置、存储介质和计算机设备 |
CN110413346A (zh) * | 2019-07-30 | 2019-11-05 | 中国工商银行股份有限公司 | 一种参数更新方法及装置 |
CN110780914A (zh) * | 2018-07-31 | 2020-02-11 | ***通信集团浙江有限公司 | 服务发布方法及装置 |
CN110780888A (zh) * | 2019-10-09 | 2020-02-11 | 北京市天元网络技术股份有限公司 | 用于部署云数据库的方法 |
CN111352635A (zh) * | 2019-04-16 | 2020-06-30 | 深圳市鸿合创新信息技术有限责任公司 | 一种部署微服务的方法及装置、电子设备 |
CN111427600A (zh) * | 2020-03-20 | 2020-07-17 | 成都千立网络科技有限公司 | 一种基于docker的平台***部署升级方法及*** |
CN111552496A (zh) * | 2020-05-07 | 2020-08-18 | 上海道客网络科技有限公司 | 一种基于添加临时容器实现无缝升级边车的***与方法 |
-
2020
- 2020-12-14 CN CN202011468220.9A patent/CN112527357A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044999A1 (en) * | 2002-08-30 | 2004-03-04 | Gibson Mason C. | Subscription-based program module installation and update system and method |
CN106789249A (zh) * | 2016-12-22 | 2017-05-31 | 北京五八信息技术有限公司 | 热更新方法、客户端及服务器 |
CN108304201A (zh) * | 2017-09-14 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 对象更新方法、装置及设备 |
CN108600282A (zh) * | 2017-11-30 | 2018-09-28 | 深圳市牛鼎丰科技有限公司 | 微服务发布方法、装置、存储介质和计算机设备 |
CN108563461A (zh) * | 2018-03-20 | 2018-09-21 | 聚好看科技股份有限公司 | 一种从镜像中提取配置文件的方法、装置及*** |
CN110780914A (zh) * | 2018-07-31 | 2020-02-11 | ***通信集团浙江有限公司 | 服务发布方法及装置 |
CN111352635A (zh) * | 2019-04-16 | 2020-06-30 | 深圳市鸿合创新信息技术有限责任公司 | 一种部署微服务的方法及装置、电子设备 |
CN110413346A (zh) * | 2019-07-30 | 2019-11-05 | 中国工商银行股份有限公司 | 一种参数更新方法及装置 |
CN110780888A (zh) * | 2019-10-09 | 2020-02-11 | 北京市天元网络技术股份有限公司 | 用于部署云数据库的方法 |
CN111427600A (zh) * | 2020-03-20 | 2020-07-17 | 成都千立网络科技有限公司 | 一种基于docker的平台***部署升级方法及*** |
CN111552496A (zh) * | 2020-05-07 | 2020-08-18 | 上海道客网络科技有限公司 | 一种基于添加临时容器实现无缝升级边车的***与方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113179183A (zh) * | 2021-04-29 | 2021-07-27 | 杭州迪普科技股份有限公司 | 服务开关状态控制装置及方法 |
CN114237754A (zh) * | 2021-12-20 | 2022-03-25 | 中国平安财产保险股份有限公司 | 一种数据加载方法、装置、电子设备以及存储介质 |
CN114237754B (zh) * | 2021-12-20 | 2024-06-07 | 中国平安财产保险股份有限公司 | 一种数据加载方法、装置、电子设备以及存储介质 |
CN114465887A (zh) * | 2021-12-23 | 2022-05-10 | 杭州溪塔科技有限公司 | 一种基于git的区块链配置管理方法和装置 |
CN114465887B (zh) * | 2021-12-23 | 2024-01-23 | 杭州溪塔科技有限公司 | 一种基于git的区块链配置管理方法和装置 |
WO2024114125A1 (zh) * | 2022-11-30 | 2024-06-06 | 华为云计算技术有限公司 | 更新配置信息的方法、装置、***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112527357A (zh) | 服务热加载更新方法、装置、计算机设备和存储介质 | |
CN108573371B (zh) | 数据审批方法、装置、计算机设备和存储介质 | |
CN110008118B (zh) | 页面数据测试方法、装置、计算机设备和存储介质 | |
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
CN109039751B (zh) | 配置路由的方法、装置、计算机设备和存储介质 | |
CN109726134B (zh) | 接口测试方法和*** | |
CN109144487B (zh) | 进件业务开发方法、装置、计算机设备和存储介质 | |
CN110866198A (zh) | 静态资源缓存方法、***、装置、计算机设备和存储介质 | |
CN110633160A (zh) | 接口调用方法、装置、计算机设备和存储介质 | |
WO2020233092A1 (zh) | 智能合约调用方法、装置、设备和存储介质 | |
CN111563365B (zh) | 试验标准工单修改信息处理方法、装置和计算机设备 | |
CN111324905A (zh) | 影像数据标注方法、装置、计算机设备和存储介质 | |
CN112099972A (zh) | 基于rpa机器人的办公文件处理方法、装置、设备和存储介质 | |
CN109257426B (zh) | 业务线资源加载方法、装置、计算机设备和存储介质 | |
CN111309379A (zh) | 项目生成方法、装置、计算机设备和存储介质 | |
CN112380130A (zh) | 基于调用依赖关系的应用测试方法和装置 | |
CN112882769A (zh) | 技能包数据处理方法、装置、计算机设备和存储介质 | |
CN113515322B (zh) | 应用程序加载方法、装置、计算机设备和可读存储介质 | |
CN110531984B (zh) | 代码编译方法、装置、***、计算机设备和存储介质 | |
CN108389124B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111209061A (zh) | 用户信息的填写方法、装置、计算机设备和存储介质 | |
CN112433925A (zh) | 基于人工智能的日志生成方法、装置、计算机设备和介质 | |
CN116560621A (zh) | 基板管理控制器芯片适配方法、***、设备和介质 | |
CN110134475B (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 |