CN112596771A - 一种不间断服务升级的方法及系统 - Google Patents

一种不间断服务升级的方法及系统 Download PDF

Info

Publication number
CN112596771A
CN112596771A CN202011387387.2A CN202011387387A CN112596771A CN 112596771 A CN112596771 A CN 112596771A CN 202011387387 A CN202011387387 A CN 202011387387A CN 112596771 A CN112596771 A CN 112596771A
Authority
CN
China
Prior art keywords
service
upgrading
upgrade
plug
uninterrupted
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
Application number
CN202011387387.2A
Other languages
English (en)
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.)
Beijing Wondersoft Technology Co Ltd
Original Assignee
Beijing Wondersoft 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 Beijing Wondersoft Technology Co Ltd filed Critical Beijing Wondersoft Technology Co Ltd
Priority to CN202011387387.2A priority Critical patent/CN112596771A/zh
Publication of CN112596771A publication Critical patent/CN112596771A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Abstract

本发明提出了一种不间断服务升级的方法和系统,所述方法将服务升级功能拆分为多个服务进程,使用共享内存来存储进程信息以及进程之间的交互信息;当升级服务收到升级请求信息后,启动不间断服务升级流程,修改进程状态,旧业务处理进程将升级过程中需要处理的业务数据放入共享内存,仅保留业务入口线程;新业务入口线程,直接从共享内存中获取所述业务数据;处理完所有的业务数据之后,再关闭旧业务入口线程,服务升级完成。本发明的技术方案在升级运行过程中,不会间断业务的执行,而且升级速度较快,解决了当前不能较好地实现业务不间断升级的技术问题。

Description

一种不间断服务升级的方法及系统
技术领域
本发明涉及计算机信息技术领域,尤其涉及为服务器提供升级服务的方法。
背景技术
随着互联网技术的快速发展,web应用也在不断地升级。升级,就是一个软件替换之前的一个或多个部分、甚至全部的软件,其本质是让一个软件替换另外一个软件来提供服务,这就需要业务不间断进行发布更新。在软件开发中,为了方便对软件进行功能扩展,可以采用插件方式进行开发,将软件所要实现的一个一个功能封装在插件中,一个插件对应着一个或多个功能模块,最后将各个插件集成在软件主程序包中一同发布。
在网络服务应用中,服务器部分主要有两部分来完成,一部分是网络连接,提供网络连接服务;另外一部分是具体的业务或是数据,典型的为文件存储服务器,数据库服务器。由于业务增加、服务增加,软件修改bug等多方面的原因,需要对正在运行的服务升级,而现实对业务要求是每天24小时不间断提供服务,图1示出了邮件DLP系统不间断服务架构图,邮件DLP系统是对邮件系统的邮件进行24小时不间断的敏感信息扫描,现有技术中,对服务升级主要有两类,一类是中断服务的升级,另外一类是将服务通过负载均衡动态转移到其它同类服务器,目标服务器通过离线方式升级。第一类的中断服务的升级,典型的是停止服务,重新升级服务,再启动。第二类的不中断服务的升级,通过负载均衡调度器,将需要升级的目标服务器上的服务调度到其他的同类服务器上,这种方式对环境要求高,配置复杂。
发明内容
为克服现有技术中存在的问题,本申请采用了功能服务插件化、动态化的方法,插件的代码仅由应用程序按需加载,使程序能够对存储器提出更小的要求并且更快地启动,在升级运行过程中,不会间断业务的执行,升级速度较快,系统能够平滑升级,减少了升级给用户带来不便和损失。
具体地,本发明提出了一种不间断服务升级的方法,包括以下步骤:
S1.发送升级服务请求
Web升级管理平台接收推送的升级文件,根据进程服务文件自动寻找对应的升级进程和适配的插件版本,在确定有文件需要升级后,对需要升级的进程发送升级服务请求;
S2.启动不间断服务升级
第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,保留第一业务入口线程;启动第二业务入口线程,直接从共享内存中获取所述业务数据;处理完所有的业务数据之后,再关闭第一业务入口线程,服务升级完成;
S3.维护服务插件
在服务升级完毕后,执行服务插件维护。
可选地,所述步骤S2包括:
S21.启动不间断升级过程,修改进程状态标识为升级中;
S22.第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,之后关闭第一业务处理模块,仅保留第一业务入口线程;
S23.启动第二业务处理进程、第二业务处理模块和第二业务入口线程,第二业务入口线程从共享内存中获取第一业务处理进程的的业务数据;
S24.判断共享内存中的业务数据是否被全部获取并处理完毕,如果是,则关闭第一业务入口线程和第一业务处理进程,新旧业务处理进程切换完毕,完成服务升级。
本发明还提出了一种不间断服务升级的系统,包括:
Web升级管理平台,其被配置为:自动检测升级文件服务请求,在确定有文件需要升级时,导入待升级的进程服务文件,根据进程服务文件自动寻找对应的升级进程和适配的插件版本;
请求模块,其被配置为:利用升级进程向需要升级的文件发送升级请求,启动文件升级,修改进程状态为升级中;
升级模块,其被配置为:
第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,保留第一业务入口线程;启动第二业务入口线程,直接从共享内存中获取所述业务数据;处理完所有的业务数据之后,再关闭第一业务入口线程,服务升级完成;
插件维护模块,其被配置为:在升级完毕后,执行服务插件维护。
回退模块,其被配置为升级不成功的情况下,根据用户选择的回退版本进行升级回退。
此外,本发明还提出了一种计算机可读存储介质,其中存储有多条指令;由处理器加载并执行本发明的不间断服务升级的方法。
附图说明
图1显示了邮件DLP系统不间断服务架构图;
图2为本发明的不间断服务升级的方法的流程图;
图3显示了不间断服务升级过程;
图4显示了服务插件维护流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2示出了本发明的不间断服务升级的方法的流程图。
本发明提出了一种不间断服务升级的方法,包括以下步骤:
S1.Web升级管理平台自动检测升级文件服务请求,在确定有文件需要升级时,导入待升级的进程服务文件,根据进程服务文件寻找对应的升级进程和适配的插件版本。
Web管理平台升级管理中导入需要升级的进程服务文件。管理平台会根据进程的文件的MD5来找到对应的升级进程。升级请求中的文件信息主要包括待升级软件中所包含各个文件的文件名和版本信息,还可以进一步包括各个文件的HASH值和相对路径等信息。
S2.启动不间断服务升级
第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,保留第一业务入口线程;启动第二业务入口线程,直接从共享内存中获取所述业务数据;处理完所有的业务数据之后,再关闭第一业务入口线程,服务升级完成。
图3显示了不间断服务升级过程,具体包括以下步骤:
S21.启动不间断升级过程,修改进程状态标识为升级中;
S22.第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,之后关闭第一业务处理模块,仅保留第一业务入口线程;
S23.启动第二业务处理进程、第二业务处理模块和第二业务入口线程,第二业务入口线程从共享内存中获取第一业务处理进程的的业务数据;
S24.判断共享内存中的业务数据是否被全部获取并处理完毕,如果是,则关闭第一业务入口线程和第一业务处理进程,新旧业务处理进程切换完毕,完成服务升级。启动不间断服务升级过程后,插件管理器调用旧进程的插件接口,插入拦截器,跟踪文件升级期间的所有调用。
在执行服务升级流程时,需要对插件升级包进行校验,所述插件升级包中包括校验文件,用于校验插件安装包的完整性。校验文件中记录了校验码、插件编号、插件名称和插件下载地址等。校验码是服务器端对插件文件进行计算后获得的计算值,比如,服务器端对插件文件进行MD5计算,那么获得的MD5值可作为校验码使用,服务器将获得的MD5值与插件文件一起保存,将校验码保存在校验文件中。根据插件编号和插件名称判断服务器段的缓存目录中是否存在插件文件,每一个插件名称子目录下都保存着若干插件编号对应的插件文件。对插件安装包完整性校验完毕之后,查询插件的版本,判断当前版本是否为最新版本,若是,则不执行升级操作,若否,则使用所述最新版本进行升级操作。若升级失败,需要进行版本回退。
创建共享内存(Share Memory),该共享内存用于在目标用户态文件系统运行过程中持续的保存和记录文件系统的状态信息。通过对所述共享内存进行解析,从所述共享内存中提取进程的状态信息,基于提取到的状态信息运行新进程。通过共享内存持久化保存用户态文件系统的状态信息,能够避免丢失文件系统数据。这样,当监测到新进程启动并且进入正常运行状态后,新进程会继承使用存储在共享内存中的相关数据。
S3.维护服务插件
在服务升级完毕后,执行服务插件维护。
所述执行服务插件维护包括:遍历服务插件安装目录,若插件的MD5校验与当前不一致,则加载插件至哈希表,旧插件挂载至哈希项下链表;当遍历完成后,遍历哈希链表,当引用为0时,卸载链表项对应旧插件。
本发明还提出了一种不间断服务升级的系统,包括:
Web升级管理平台,其被配置为:自动检测升级文件服务请求,在确定有文件需要升级时,导入待升级的进程服务文件,根据进程服务文件自动寻找对应的升级进程和适配的插件版本;
请求模块,其被配置为:利用升级进程向需要升级的文件发送升级请求,启动文件升级,修改进程状态为升级中;
升级模块,其被配置为:
启动不间断服务升级过程,修改进程状态标识为升级中;
第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,之后关闭第一业务处理模块,仅保留第一业务入口线程;
启动第二业务处理进程、第二业务处理模块和第二业务入口线程,第二业务入口线程从共享内存中获取第一业务处理进程的的业务数据;
判断共享内存中的业务数据是否被全部获取并处理完毕,如果是,则关闭第一业务入口线程和第一业务处理进程,新旧业务处理进程切换完毕,完成服务升级;
插件维护模块,其被配置为:在升级完毕后,执行服务插件维护。
回退模块,其被配置为升级不成功的情况下,根据用户选择的回退版本进行升级回退。
图4示除了插件维护模块执行服务插件维护的流程:遍历服务插件安装目录,若插件的MD5校验与当前不一致,则加载插件至哈希表,旧插件挂载至哈希项下链表;当遍历完成后,遍历哈希链表,当引用为0时,卸载链表项对应旧插件。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,实体机服务器,或者网络云服务器等,需安装Windows或者Windows Server操作系统)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (10)

1.一种不间断服务升级的方法,其特征在于,包括以下步骤:
S1.发送升级服务请求
Web升级管理平台接收推送的升级文件,根据进程服务文件自动寻找对应的升级进程和适配的插件版本,在确定有文件需要升级后,对需要升级的进程发送升级服务请求;
S2.启动不间断服务升级
第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,保留第一业务入口线程;启动第二业务入口线程,直接从共享内存中获取所述业务数据;处理完所有的业务数据之后,再关闭第一业务入口线程,服务升级完成;
S3.维护服务插件
在服务升级完毕后,执行服务插件维护。
2.根据权利要求1所述的不间断服务升级的方法,其特征在于,在步骤S1中,所述自动寻找,包括:
Web升级管理平台根据进程服务文件的MD5值来寻找对应的升级进程。
3.根据权利要求1所述的不间断服务升级的方法,其特征在于,所述步骤S2具体包括:
S21.启动不间断升级过程,修改进程状态标识为升级中;
S22.第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,之后关闭第一业务处理模块,仅保留第一业务入口线程;
S23.启动第二业务处理进程、第二业务处理模块和第二业务入口线程,第二业务入口线程从共享内存中获取第一业务处理进程的的业务数据;
S24.判断共享内存中的业务数据是否被全部获取并处理完毕,如果是,则关闭第一业务入口线程和第一业务处理进程,新旧业务处理进程切换完毕,完成服务升级。
4.根据权利要求1所述的不间断服务升级的方法,其特征在于,在步骤S2中:
启动不间断服务升级过程后,插件管理器调用所述第一业务处理进程的插件接口,插入拦截器,跟踪文件升级期间的所有调用。
5.根据权利要求1所述的不间断服务升级的方法,其特征在于,在所述步骤S2中:
在执行升级流程时校验插件升级包,所述插件升级包中包括校验文件,用于校验插件安装包的完整性。
6.如权利要求5所述的不间断服务升级的方法,其特征在于,在所述步骤S2中:
在对所述插件安装包的完整性校验完毕之后,查询插件的版本,判断当前版本是否为最新版本,若是,则不执行升级操作,若否,则使用所述最新版本进行升级操作。
7.如权利要求6所述的不间断服务升级的方法,其特征在于:
若升级失败,则进行版本回退。
8.如权利要求1所述的所述的不间断服务升级的方法,其特征在于,所述步骤S3中:
执行服务插件维护包括:遍历服务插件安装目录,若插件的MD5校验与当前不一致,则加载插件至哈希表,旧插件挂载至哈希项下链表;当遍历完成后,遍历哈希链表,当引用为0时,卸载链表项对应旧插件。
9.一种不间断服务升级的系统,其特征在于,包括:
Web升级管理平台,其被配置为:自动检测升级文件服务请求,在确定有文件需要升级时,导入待升级的进程服务文件,根据进程服务文件自动寻找对应的升级进程和适配的插件版本;
请求模块,其被配置为:利用升级进程向需要升级的文件发送升级请求,启动文件升级,修改进程状态为升级中;
升级模块,其被配置为:
第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,保留第一业务入口线程;启动第二业务入口线程,直接从共享内存中获取所述业务数据;处理完所有的业务数据之后,再关闭第一业务入口线程,服务升级完成;
插件维护模块,其被配置为:在升级完毕后,执行服务插件维护;
回退模块,其被配置为升级不成功的情况下,根据用户选择的回退版本进行升级回退。
10.根据权利要求9所述的不间断服务升级的系统,其特征在于,所述升级模块,具体被配置为:
启动不间断服务升级过程,修改进程状态标识为升级中;
第一业务处理进程将升级过程中需要处理的业务数据放入共享内存,之后关闭第一业务处理模块,仅保留第一业务入口线程;
启动第二业务处理进程、第二业务处理模块和第二业务入口线程,第二业务入口线程从共享内存中获取第一业务处理进程的的业务数据;
判断共享内存中的业务数据是否被全部获取并处理完毕,如果是,则关闭第一业务入口线程和第一业务处理进程,新旧业务处理进程切换完毕,完成服务升级。
CN202011387387.2A 2020-12-01 2020-12-01 一种不间断服务升级的方法及系统 Pending CN112596771A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011387387.2A CN112596771A (zh) 2020-12-01 2020-12-01 一种不间断服务升级的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011387387.2A CN112596771A (zh) 2020-12-01 2020-12-01 一种不间断服务升级的方法及系统

Publications (1)

Publication Number Publication Date
CN112596771A true CN112596771A (zh) 2021-04-02

Family

ID=75187500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011387387.2A Pending CN112596771A (zh) 2020-12-01 2020-12-01 一种不间断服务升级的方法及系统

Country Status (1)

Country Link
CN (1) CN112596771A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254397A (zh) * 2021-06-15 2021-08-13 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN113656059A (zh) * 2021-10-21 2021-11-16 北京联盛德微电子有限责任公司 嵌入式软件系统
CN114553693A (zh) * 2022-02-21 2022-05-27 上海哔哩哔哩科技有限公司 网关升级方法及装置
CN116166299A (zh) * 2023-04-04 2023-05-26 深圳云豹智能有限公司 软件升级方法、装置、存储介质、芯片及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677433A (zh) * 2016-03-15 2016-06-15 深圳创维-Rgb电子有限公司 服务器程序热升级的方法及装置
US20170192884A1 (en) * 2015-12-30 2017-07-06 Roku, Inc. Providing rolling updates of distributed systems with a shared cache
CN108021378A (zh) * 2016-11-03 2018-05-11 阿里巴巴集团控股有限公司 升级系统、基于虚拟机的升级方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170192884A1 (en) * 2015-12-30 2017-07-06 Roku, Inc. Providing rolling updates of distributed systems with a shared cache
CN105677433A (zh) * 2016-03-15 2016-06-15 深圳创维-Rgb电子有限公司 服务器程序热升级的方法及装置
CN108021378A (zh) * 2016-11-03 2018-05-11 阿里巴巴集团控股有限公司 升级系统、基于虚拟机的升级方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254397A (zh) * 2021-06-15 2021-08-13 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN113254397B (zh) * 2021-06-15 2021-10-15 成都统信软件技术有限公司 一种数据检查方法及计算设备
CN113656059A (zh) * 2021-10-21 2021-11-16 北京联盛德微电子有限责任公司 嵌入式软件系统
CN114553693A (zh) * 2022-02-21 2022-05-27 上海哔哩哔哩科技有限公司 网关升级方法及装置
CN114553693B (zh) * 2022-02-21 2024-03-26 上海哔哩哔哩科技有限公司 网关升级方法及装置
CN116166299A (zh) * 2023-04-04 2023-05-26 深圳云豹智能有限公司 软件升级方法、装置、存储介质、芯片及电子设备

Similar Documents

Publication Publication Date Title
CN112596771A (zh) 一种不间断服务升级的方法及系统
CN106991035B (zh) 一种基于微服务架构的主机监控系统
CN103150231B (zh) 计算机开机的方法与计算机系统
EP2210183B1 (en) Managing updates to create a virtual machine facsimile
KR100915564B1 (ko) 실행하는 동안 애플리케이션을 업그레이드하기 위한 방법,소프트웨어 및 장치
US10635473B2 (en) Setting support program, setting support method, and setting support device
US9928059B1 (en) Automated deployment of a multi-version application in a network-based computing environment
US20140082027A1 (en) Registry Emulation
CN105373396A (zh) 插件平台中的插件更新方法和装置
CN107220074A (zh) 对支撑层软件功能的访问、升级方法及装置
CN111897558A (zh) 容器集群管理系统Kubernetes升级方法和装置
CN110502264A (zh) 系统升级方法、终端及可读存储介质
CN112015448A (zh) 一种基于空中下载技术的系统升级方法及装置
CN111736876A (zh) 客户端更新控制方法、装置、存储介质及服务器
CN117056115B (zh) 应用程序的修复方法和装置、存储介质及电子设备
US9176974B1 (en) Low priority, multi-pass, server file discovery and management
US11573779B2 (en) Creating and upgrading of solutions for deployment in a virtualized computing environment
CN112199104B (zh) 一种软件升级方法、装置、电子设备和存储介质
CN113703823A (zh) 一种bmc固件升级方法、装置、电子设备及存储介质
CN111880828B (zh) 一种在Secure Boot环境中批量升级多板卡驱动的方法
CN115964061A (zh) 插件更新方法、装置、电子设备和计算机可读存储介质
CN113515291A (zh) 设备在线升级方法和装置
EP1160666A2 (en) Switching versions of software in a system background
CN112905341A (zh) 分布式负载均衡服务信息持续继承方法及装置
CN111736863A (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