CN110597531B - 分布式的模块升级方法、装置及存储介质 - Google Patents
分布式的模块升级方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110597531B CN110597531B CN201910716847.2A CN201910716847A CN110597531B CN 110597531 B CN110597531 B CN 110597531B CN 201910716847 A CN201910716847 A CN 201910716847A CN 110597531 B CN110597531 B CN 110597531B
- Authority
- CN
- China
- Prior art keywords
- upgrading
- node
- jar package
- test
- module
- 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
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
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及云技术,提供一种分布式的模块升级方法、装置及存储介质,方法包括:根据功能分类从系统中解耦出与目标功能模块对应的基础功能模块;将目标功能模块部署在预设的节点上,并建立目标功能模块与主机之间的通信;主机接收到针对某一目标功能模块的升级请求,主机按照预设的测试规则测试升级JAR包,以测试该升级JAR包;主机根据各个节点的运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;主机向最优升级节点发送JAR包更替请求,最优升级节点下载升级JAR包,完成升级。由于解耦出的基础功能模块与其他功能模块的耦合度低,故通过本发明发起对目标功能模块的升级并不会对其他功能模块产生比较大的影响。
Description
技术领域
本发明涉及云技术,具体说,涉及分布式的模块升级方法、装置及存储介质。
背景技术
目前,对于一个项目的公共功能,例如,携程其具有机票预订、酒店预订等多个公共功能,其每个公共功能通常都是应用一个jar包进行导入,并内部调用,从而执行其功能。但这种方案不方便升级,只要有新的功能的接入(升级)则需要排期发布版本、时间周期长,而且业务倾入性强。另外,还可以采用微服务将一个项目分解为多个服务,微服务形式会有单主机单服务和单主机多服务两种方案,其中,单主机单服务导致瓶颈或资源浪费,单主机多服务导致服务太多管理困难,而且,对于微服务的方式,拆分出的各个服务是分别注册到Eureka或Zeekeeper等注册中心,这都导致服务升级不够完善。
发明内容
为解决以上技术问题,本发明提供一种分布式的模块升级方法,应用于电子装置,包括:
A、根据功能分类从系统中解耦出与各目标功能模块分别对应的基础功能模块,并设置各目标功能模块与主机的通信参数,其中,目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各目标功能模块之间通过基础功能模块的所述通信接口通信;
B、将基础功能模块部署在预设的节点上,并使得各节点通过目标功能模块的通信参数建立节点与主机之间的通信;
C、主机接收到针对某一目标功能模块的升级请求,主机按照预设的测试规则测试升级JAR包其中,升级请求包括目标功能模块的升级JAR包及该升级JAR包的参数信息,且升级JAR包的参数信息包括JAR包的版本参数;
D、主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;
E、主机向最优升级节点发送针对目标功能模块的JAR包更替请求,其中,该JAR包更替请求包括升级JAR包的版本号,以及升级JAR包的下载路径;
F、最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级。
本发明还提供一种分布式的模块升级装置,包括:
解耦模块,用于根据功能分类从系统中解耦出与各目标功能模块对应的多个基础功能模块,其中,目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各基础功能模块之间通过所述通信接口通信;
节点部署模块,用于将基础功能模块部署在预设的节点上,并使得各节点通过目标功能模块的通信参数建立节点与主机之间的通信;
测试模块,用于使在主机接收到针对某一目标功能模块的升级请求后,按照预设的测试规则测试升级JAR包,以测试该升级JAR包;
最优升级节点确定模块,用于使主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;
升级模块,用于使主机向最优升级节点发送针对目标功能模块的JAR包更替请求,该JAR包更替请求包括升级JAR包的版本号,以及升级JAR包的下载路径,最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级。
本发明还提供一种电子装置,该电子装置包括:存储器和处理器,所述存储器中存储有分布式的模块升级程序,所述分布式的模块升级程序被所述处理器执行时实现如下步骤:
A、根据功能分类从系统中解耦出与各目标功能模块分别对应的基础功能模块,并设置各目标功能模块与主机的通信参数,其中,目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各目标功能模块之间通过基础功能模块的所述通信接口通信;
B、将基础功能模块部署在预设的节点上,并使得各节点通过目标功能模块的通信参数建立节点与主机之间的通信;
C、主机接收到针对某一目标功能模块的升级请求,主机按照预设的测试规则测试升级JAR包其中,升级请求包括目标功能模块的升级JAR包及该升级JAR包的参数信息,且升级JAR包的参数信息包括JAR包的版本参数;
D、主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;
E、主机向最优升级节点发送针对目标功能模块的JAR包更替请求,其中,该JAR包更替请求包括升级JAR包的版本号,以及升级JAR包的下载路径;
F、最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现如上所述的分布式的模块升级方法。
在本发明中,将基础功能模块从系统中解耦出来并将解耦出来的基础功能模块部署在指定的节点上,由于解耦出的基础功能模块与其他功能模块的耦合度低,故通过本发明发起对目标功能模块的升级并不会对其他功能模块产生比较大的影响,同时,由于节点的可设置数量比基于微服务框架中Zeekeeper注册中心可允许注册模块数量要多的多,故可以避免Zeekeeper注册中心的注册瓶颈问题。
附图说明
通过结合下面附图对其实施例进行描述,本发明的上述特征和技术优点将会变得更加清楚和容易理解。
图1是表示本发明实施例的分布式的模块升级方法的流程图;
图2是表示本发明实施例的基础功能模块和节点关系示意图;
图3是表示本发明实施例的分布式的模块升级程序的程序模块示意图。
具体实施方式
下面将参考附图来描述本发明所述的分布式的模块升级方法、装置及存储介质的实施例。本领域的普通技术人员可以认识到,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式或其组合对所描述的实施例进行修正。因此,附图和描述在本质上是说明性的,而不是用于限制权利要求的保护范围。此外,在本说明书中,附图未按比例画出,并且相同的附图标记表示相同的部分。
图1示出本实施例中分布式的模块升级方法的流程图,图2是本实施例中基础功能模块和节点关系示意图。下面结合图1和图2来说明本实施例的分布式的模块升级方法,包括如下步骤:
A、根据预设的功能分类从系统中解耦出与各目标功能模块分别对应的多个基础功能模块,并设置各目标功能模块与主机的通信参数,其中,目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各基础功能模块之间通过所述通信接口通信。
所述目标功能模块是指系统中包含的具有一个或多个功能的模块,而一个目标功能模块则可能包含有多个基础功能模块,每个基础功能模块都具有通信接口。例如,携程APP包括酒店预订、机票预订、旅游定制等多个目标功能模块,其中机票预订模块又根据节点数分出多个基础功能模块,这些基础功能模块通过通信接口通信。
B、将目标功能模块通过基础功能模块部署在预设的多个节点上,并使得各节点通过目标功能模块的通信参数建立节点与主机之间的通信。具体说,对应每个节点,都部署有基础功能模块。其中,结点是指网络连接的端点,结点可以是处理器、控制器或工作站。结点随其功能不同而各不相同,可以通过链路互联在一起,在网络中作为控制点。比如,机票预订模块的基础功能模块都分别设置在不同的节点上。
C、当主机接收到针对某一目标功能模块的升级请求,主机按照预设的测试规则测试升级JAR包,以测试该升级JAR包,其中,升级请求包括目标功能模块的升级JAR包及该升级JAR包的参数信息,且升级JAR包的参数信息包括JAR包的版本参数。其中,主机接收到的升级请求中还可以包括升级JAR包的部署信息,其中,部署信息可以包括可支持系统信息、JAR的编码规则、JAR包依赖组件的标识。
优选地,主机使用Hadoop Test类调用升级JAR包,并使用TestDFSIO类测试升级JAR包。其中,TestDFSIO类包括TestDFSIO write子类和TestDFSIO read子类,TestDFSIO类通过mapReduce作业来并发的执行读写升级JAR包,其中,mapReduce作业包括至少一个map任务,且该map用于读或写升级JAR包中的每个文件并输出读或写每个文件所产生的执行信息;从而可以统计执行信息并输出升级JAR包的IO(输入和输出)性能测试结果。
D、主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;
E、主机向最优升级节点发送针对目标功能模块的JAR包更替请求,其中,该JAR包更替请求包括升级JAR包的版本号,以及升级JAR包的下载路径;
F、最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级,优选地,主机还生成目标功能模块的更新提示。
例如,携程APP的机票预订模块的多个功能模块都分别设置在不同的节点上,而机票预订模块与主机之间通信。即机票预订模块、酒店预订模块、旅游定制模块都与主机之间通信。当要针对机票预订模块进行升级时,主机先测试升级JAR包,然后根据各基础功能模块对应的节点的实时运行参数、历史运行参数及测试结果从所有节点中选出最优的节点,进行升级JAR包的操作,从而完成机票预订模块的升级。
在一个可选实施中,主机接收到升级请求时,主机按照预设的测试规则测试升级JAR包的步骤包括:
将升级JAR放入虚拟测试环境中进行测试,其中,虚拟测试环境包括若干个测试指令,且若干个测试指令至少包括试加载测试指令、版本测试指令、卸载测试指令、多个功能测试指令;
虚拟测试环境依次按照试加载测试、版本测试、卸载测试、功能测试的顺序对升级JAR包进行测试。
进一步地,虚拟测试环境执行试加载测试的过程包括:
调用实时测试用例运行升级JAR包并实时获取主机的CPU的实时状态信息和内存的实时占用信息,具体说,使用nnbench类测试升级JAR包的节点负载,其中,nnbench类会多次重复执行实时测试用例,用于检查升级JAR包在节点的运行是否可重复以及运行是否高效;
根据CPU的实时状态信息和内存的实时占用信息判断该升级JAR包是否会导致某个节点出现过载,若是,则停止测试输出测试报告,若不是,则触发版本测试程序。
再具体地,根据该CPU的实时状态信息和内存的实时占用信息判断该升级JAR包是否会导致某个节点出现过载的具体判断过程可以是:依次判断该CPU的负载率是否大于预设负载阈值、该内存的使用量是否大于预设使用量阈值,若两次判断的结果均为是,则确定该升级JAR包会导致某个节点出现过载。
需要说明的是,预设负载阈值和预设使用量阈值为技术人员根据主机所管理的全部节点的CPU性能参数和内存参数设置定,且该预设负载阈值和预设使用量阈值也是预先存储在主机中。优选地,该预设负载阈值和预设使用量阈值保存在xml格式的配置文件中,当主机中的虚拟测试环境需要使用该预设负载阈值和预设使用量阈值时,通过xml文件解析器解析该配置文件并从中获取该预设负载阈值和预设使用量阈值。
进一步地,版本测试的步骤包括:判断JAR包的版本号是否满足预设版本号迭代规则,若是,则执行版本的安全性测试,若不是则停止测试,
其中,版本的安全性测试步骤包括:从该升级JAR包的参数信息获取该升级JAR的加密认证密钥,接着,按照加密规则解析该加密认证密钥,最后,根据该加密认证密钥的解析结果判断该升级JAR包是否具有安全性,即若该加密认证密钥能够被解析正确,则确定该升级JAR包具有安全性。
进一步地,卸载测试的过程为:将升级JAR包卸载并保存该升级JAR包的运行数据;接者,读取原始运行数据并将该升级JAR包的运行数据与原始运行数据进行比对并判断指定数据项的数值是否一致,若是,则确定当该升级JAR包满足兼容性要求,即该升级JAR卸载后,并不会影响默认版本JAR包的运行。
进一步地,功能测试可以包括步骤:调用测试用例执行功能函数并获取执行结果;接着,将该执行结果与函数名对应的值域进行比较,若执行结果没有在该值域内,则确定该功能函数测试失败。需要说明的是,虚拟环境中有多个测试用例,每个测试用例对应不同的功能函数。并且,若一个功能函数涉及通过接口获取外部数据的,虚拟环境将从测试接口中获取外部数据,其中,该测试接口包括了测试所需的部分或全部的外部数据。
在一个可选实施中,主机确定目标功能模块的最优升级节点的步骤包括:
从升级JAR包的测试结果提取该升级JAR包的环境依赖数据,其中,环境依赖数据至少包括节点负载数据、节点接口数据、节点操作系统数据;
根据节点负载数据从多个节点中筛选出多个负载满足该升级JAR包运行的节点作为备用节点;
将每个备用节点的节点接口数据、操作系统参数与该升级JAR包的节点接口要求、节点操作系统要求进行比对,从而确定满足升级JAR包的要求的最优升级节点。
需要说明的是,主机根据各个节点的实时运行参数及历史运行参数及测试结果从若干个节点中选出目标功能模块的最优升级节点这一步骤,能够从若干个升级节点中找到当前负载最小的节点升级该JAR包,这样可以提高每个节点的负载利用率且可减低升级该JAR包对用户的当前使用造成的影响,因为,通常负载率高的节点通常是当前为用户提供服务的主要节点,而在该节点涉节点升级该JAR容易对用户当前的使用造成影响,例如,导致节点的崩溃。
在本发明中,每个升级JAR包的功能通常不一样,进一步的,其对数据接口的依赖程度也不一样,即有的升级JAR包与其他的功能模块的数据交互较少,有的升级JAR包与其他的功能模块的数据交互较多,而本发明能够根据目标升级JAR包的测试结果确定该升级JAR包所涉及的数据交互项,进而根据该升级JAR包的数据交互项目将该升级JAR包放在能够最低限定满足其数据交互项的节点,以确保该升级JAR包的统一性。而现有技术中,通常会在每个节点都部署数据接口,进而部署升级JAR包任意选一个节点,这样就会造成节点资源的浪费,且由于每个区域的节点对应的网络资源是不同的,故这样还可能会将升级JAR包部署在网络资源交差的节点,进而导致该升级JAR包在实际运行时,对用户的操作指令响应慢等问题。
在一个可选实施中,当主机判断没有最优节点时,主机接收节点增加请求,其中,节点增加请求包括节点增加数量、节点的操作系统类型、节点的环境参数;
主机使用虚拟器并根据节点增加数量创建虚拟机;
主机根据节点的操作系统类型设置虚拟机的操作系统;
主机根据节点的环境参数设置虚拟机的部署参数。
在一个可选实施中,为了进一步减低目标功能模块的修改不影响到其他功能模块,本发明的方法还可以包括以下操作步骤:
在主机中创建项目管理器,其中,该项目管理器用于管理被公用的基础功能模块;
当主机接收到升级请求后,主机修改存储在项目管理器中的目标功能模块的版本号。
本发明还提供一种分布式的模块升级装置,包括解耦模块501、节点部署模块502、测试模块503、最优升级节点确定模块504、升级模块505。
其中,解耦模块501用于根据功能分类从系统中解耦出与各目标功能模块对应的多个基础功能模块,其中,目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各基础功能模块之间通过所述通信接口通信;
节点部署模块502用于将基础功能模块部署在预设的节点上,并使得各节点通过目标功能模块的通信参数建立节点与主机之间的通信;
测试模块503用于使在主机接收到针对某一目标功能模块的升级请求后,按照预设的测试规则测试升级JAR包,以测试该升级JAR包;
最优升级节点确定模块504用于使主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;
升级模块505用于使主机向最优升级节点发送针对目标功能模块的JAR包更替请求,该JAR包更替请求包括升级JAR包的版本号,以及升级JAR包的下载路径,最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级。
另外,本发明还提供一种电子装置,图2示出了电子装置的硬件架构。本实施例中,所述电子装置2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,所述电子装置2至少包括,但不限于,可通过系统总线相互通信连接的存储器21、处理器22。其中:所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置2的内部存储单元,例如该电子装置2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置2的外部存储设备,例如该电子装置2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置2的操作系统和各类应用软件,例如所述分布式的模块升级程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置2的总体操作,例如执行与所述电子装置2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的分布式的模块升级程序等。
需要指出的是,图2仅示出了具有组件21-22的电子装置2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
包含可读存储介质的存储器21中可以包括操作系统、分布式的模块升级程序50等。处理器22执行存储器21中分布式的模块升级程序50时实现以上分布式的模块升级方法所述的步骤。在本实施例中,存储于存储器21中的所述分布式的模块升级程序可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并可由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。例如,图3示出了所述分布式的模块升级程序的程序模块示意图,该实施例中,所述分布式的模块升级程序50可以被分割为解耦模块501、节点部署模块502、测试模块503、最优升级节点确定模块504、升级模块505。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述分布式的模块升级程序在所述电子装置2中的执行过程。以下描述将具体介绍所述程序模块的具体功能。
解耦模块501用于根据预设的功能分类从系统中解耦出与目标功能模块对应的多个基础功能模块,并设置目标功能模块与主机的通信参数。目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各基础功能模块之间通过所述通信接口通信。
节点部署模块502用于将目标功能模块通过基础功能模块部署在预设的多个节点上,并使得各节点通过目标功能模块的通信参数建立目标功能模块与主机之间的通信。
测试模块503用于使主机按照预设的测试规则测试升级JAR包,以测试该升级JAR包。
最优升级节点确定模块504用于使主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点。
升级模块505用于使主机向最优升级节点发送针对目标功能模块的JAR包更替请求,最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等等中的任意一种或者几种的任意组合。所述计算机可读存储介质中包括分布式的模块升级程序等,所述分布式的模块升级程序50被处理器22执行时实现如下操作:
A、根据预设的功能分类从系统中解耦出与目标功能模块对应的多个基础功能模块,并设置目标功能模块与主机的通信参数,其中,目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各基础功能模块之间通过所述通信接口通信。
B、将目标功能模块通过基础功能模块部署在预设的多个节点上,并使得各节点通过目标功能模块的通信参数建立目标功能模块与主机之间的通信。具体说,对应每个节点,都部署有基础功能模块。
C、当主机接收到针对某一目标功能模块的升级请求,主机按照预设的测试规则测试升级JAR包,以测试该升级JAR包。
D、主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;
E、主机向最优升级节点发送针对目标功能模块的JAR包更替请求,其中,该JAR包更替请求包括升级JAR包的版本号,以及升级JAR包的下载路径;
F、最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级。
本发明之计算机可读存储介质的具体实施方式与上述分布式的模块升级方法以及电子装置2的具体实施方式大致相同,在此不再赘述。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式的模块升级方法,应用于电子装置,其特征在于,包括:
A、根据功能分类从系统中解耦出与各目标功能模块分别对应的基础功能模块,并设置各目标功能模块与主机的通信参数,其中,目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各目标功能模块之间通过基础功能模块的所述通信接口通信;
B、将基础功能模块部署在预设的节点上,并使得各节点通过目标功能模块的通信参数建立节点与主机之间的通信;
C、主机接收到针对某一目标功能模块的升级请求,主机按照预设的测试规则测试升级JAR包,其中,升级请求包括目标功能模块的升级JAR包及该升级JAR包的参数信息,且升级JAR包的参数信息包括JAR包的版本参数;
D、主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;
E、主机向最优升级节点发送针对目标功能模块的JAR包更替请求,其中,该JAR包更替请求包括升级JAR包的版本号,以及升级JAR包的下载路径;
F、最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级。
2.根据权利要求1所述的分布式的模块升级方法,其特征在于,主机接收到升级请求时,主机按照预设的测试规则测试升级JAR包的步骤包括:
将升级JAR包放入虚拟测试环境中进行测试,其中,虚拟测试环境包括多个测试指令,且多个测试指令至少包括试加载测试指令、版本测试指令、卸载测试指令、多个功能测试指令;
虚拟测试环境依次按照试加载测试、版本测试、卸载测试、功能测试的顺序对升级JAR包进行测试。
3.根据权利要求2所述的分布式的模块升级方法,其特征在于,虚拟测试环境执行试加载测试的过程包括:
调用实时测试用例运行升级JAR包并实时获取主机的CPU的实时状态信息和内存的实时装置信息;
根据CPU的实时状态信息和内存的实时装置信息判断该升级JAR包是否会导致某个节点出现过载,若是,则停止测试输出测试报告,若不是,则触发版本测试程序;
版本测试的步骤包括:判断JAR包的版本号是否满足预设版本号迭代规则,若是,则执行版本的安全性测试,若不是则停止测试,
其中,版本的安全性测试步骤包括:从该升级JAR包的参数信息获取该升级JAR的加密认证密钥,接着,按照加密规则解析该加密认证密钥,最后,根据该加密认证密钥的解析结果判断该升级JAR包是否具有安全性,即若该加密认证密钥能够被解析正确,则确定该升级JAR包具有安全性;
卸载测试的过程为:将升级JAR包卸载并保存该升级JAR包的运行数据;接者,读取原始运行数据并将该升级JAR包的运行数据与原始运行数据进行比对并判断指定数据项的数值是否一致,若是,则确定当该升级JAR包满足兼容性要求,即该升级JAR包 卸载后,并不会影响默认版本JAR包的运行;
功能测试包括如下步骤:调用测试用例执行功能函数并获取执行结果;接着,将该执行结果与函数名对应的值域进行比较,若执行结果没有在该值域内,则确定该功能函数测试失败。
4.根据权利要求3所述的分布式的模块升级方法,其特征在于,执行试加载测试过程中,根据CPU的实时状态信息和内存的实时占用信息判断升级JAR包是否会导致某个节点出现过载的判断过程是:依次判断CPU的负载率是否大于预设负载阈值、内存的使用量是否大于预设使用量阈值,若两次判断的结果均为是,则确定该升级JAR包会导致某个节点出现过载。
5.根据权利要求3所述的分布式的模块升级方法,其特征在于,执行试加载测试过程中,使用nnbench类调用实时测试用例来测试升级JAR包的节点负载。
6.根据权利要求1所述的分布式的模块升级方法,其特征在于,主机确定目标功能模块的最优升级节点的步骤包括:
从升级JAR包的测试结果提取该升级JAR包的环境依赖数据,其中,环境依赖数据至少包括节点负载数据、节点接口数据、节点操作系统数据;
根据节点负载数据从多个节点中筛选出多个负载满足该升级JAR包运行的节点作为备用节点;
将每个备用节点的节点接口数据、操作系统参数与该升级JAR包的节点接口要求、节点操作系统要求进行比对,从而确定满足升级JAR包的要求的最优升级节点。
7.根据权利要求1所述的分布式的模块升级方法,其特征在于,当主机判断没有最优节点时,主机接收节点增加请求,其中,节点增加请求包括节点增加数量、节点的操作系统类型、节点的环境参数;
主机使用虚拟器并根据节点增加数量创建虚拟机;
主机根据节点的操作系统类型设置虚拟机的操作系统;
主机根据节点的环境参设置虚拟机的部署参数。
8.一种分布式的模块升级装置,其特征在于,包括:
解耦模块,用于根据功能分类从系统中解耦出与各目标功能模块对应的多个基础功能模块,其中,目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各基础功能模块之间通过所述通信接口通信;
节点部署模块,用于将基础功能模块部署在预设的节点上,并使得各节点通过目标功能模块的通信参数建立节点与主机之间的通信;
测试模块,用于使在主机接收到针对某一目标功能模块的升级请求后,按照预设的测试规则测试升级JAR包,以测试该升级JAR包;
最优升级节点确定模块,用于使主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;
升级模块,用于使主机向最优升级节点发送针对目标功能模块的JAR包更替请求,该JAR包更替请求包括升级JAR包的版本号,以及升级JAR包的下载路径,最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级。
9.一种电子装置,其特征在于,该电子装置包括:存储器和处理器,所述存储器中存储有分布式的模块升级程序,所述分布式的模块升级程序被所述处理器执行时实现如下步骤:
A、根据功能分类从系统中解耦出与各目标功能模块分别对应的基础功能模块,并设置各目标功能模块与主机的通信参数,其中,目标功能模块的解耦过程包括根据预设的数据通信规则设置基础功能模块的通信接口,各目标功能模块之间通过基础功能模块的所述通信接口通信;
B、将基础功能模块部署在预设的节点上,并使得各节点通过目标功能模块的通信参数建立节点与主机之间的通信;
C、主机接收到针对某一目标功能模块的升级请求,主机按照预设的测试规则测试升级JAR包其中,升级请求包括目标功能模块的升级JAR包及该升级JAR包的参数信息,且升级JAR包的参数信息包括JAR包的版本参数;
D、主机根据各个节点的实时运行参数、历史运行参数及测试结果从所有节点中选出该目标功能模块的最优升级节点;
E、主机向最优升级节点发送针对目标功能模块的JAR包更替请求,其中,该JAR包更替请求包括升级JAR包的版本号,以及升级JAR包的下载路径;
F、最优升级节点根据下载路径下载升级JAR包,并更替目标功能模块的旧JAR包,完成目标功能模块的升级。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现如权利要求1-7任一项所述的分布式的模块升级方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910716847.2A CN110597531B (zh) | 2019-08-05 | 2019-08-05 | 分布式的模块升级方法、装置及存储介质 |
PCT/CN2019/117808 WO2021022713A1 (zh) | 2019-08-05 | 2019-11-13 | 分布式的模块升级方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910716847.2A CN110597531B (zh) | 2019-08-05 | 2019-08-05 | 分布式的模块升级方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110597531A CN110597531A (zh) | 2019-12-20 |
CN110597531B true CN110597531B (zh) | 2022-11-08 |
Family
ID=68853626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910716847.2A Active CN110597531B (zh) | 2019-08-05 | 2019-08-05 | 分布式的模块升级方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110597531B (zh) |
WO (1) | WO2021022713A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240715A (zh) * | 2019-12-31 | 2020-06-05 | 兰剑智能科技股份有限公司 | 设备升级方法、装置、电子设备和计算机可读介质 |
CN111966413A (zh) * | 2020-08-14 | 2020-11-20 | 北京金山云网络技术有限公司 | 一种配置方法及装置 |
US11334459B2 (en) * | 2020-08-18 | 2022-05-17 | Advantest Corporation | Flexible test systems and methods |
CN112527634B (zh) * | 2020-11-25 | 2023-06-02 | 中国联合网络通信集团有限公司 | 程序划分方法及装置、软件测试方法及平台 |
CN113885913B (zh) * | 2021-09-30 | 2022-07-29 | 珠海虎江科技有限公司 | 虚拟现实显示设备的升级方法、计算机装置及计算机可读存储介质 |
CN114003261A (zh) * | 2021-11-11 | 2022-02-01 | 北京尚医智信健康管理有限公司 | 一种软件线上升级方法、系统装置及计算机可读存储介质 |
CN114296762B (zh) * | 2021-12-29 | 2025-02-07 | 上海洛轲智能科技有限公司 | 车辆升级方法、装置、车辆和可读存储介质 |
CN114422994A (zh) * | 2022-03-29 | 2022-04-29 | 龙旗电子(惠州)有限公司 | 固件升级方法、装置及电子设备、存储介质 |
CN115658116B (zh) * | 2022-11-11 | 2023-03-28 | 苏州浪潮智能科技有限公司 | 一种存储集群升级控制方法、装置、设备及存储介质 |
CN116149707B (zh) * | 2023-02-22 | 2023-09-01 | 北京志凌海纳科技有限公司 | 分布式系统的升级风险检测和规避方法及装置 |
CN116501359B (zh) * | 2023-06-29 | 2023-09-15 | 深圳和润达科技有限公司 | 对设备进行自适应远程升级的方法、装置、系统及介质 |
CN118519665A (zh) * | 2024-07-23 | 2024-08-20 | 福建时代星云科技有限公司 | 一种系统自动升级的方法 |
CN118567699B (zh) * | 2024-08-01 | 2024-11-05 | 杭州新中大科技股份有限公司 | 一种组件版本升级方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201607A (zh) * | 2016-07-04 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种软件版本的升级方法及设备 |
CN108667641A (zh) * | 2017-03-30 | 2018-10-16 | 杭州海康威视数字技术股份有限公司 | 分布式系统升级方法、分布式系统及升级管理设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040030768A1 (en) * | 1999-05-25 | 2004-02-12 | Suban Krishnamoorthy | Unified system and method for downloading code to heterogeneous devices in distributed storage area networks |
US10754494B2 (en) * | 2015-06-23 | 2020-08-25 | Dell Products, L.P. | Method and control system providing one-click commissioning and push updates to distributed, large-scale information handling system (LIHS) |
CN105589928A (zh) * | 2015-12-02 | 2016-05-18 | 中国银联股份有限公司 | 用于分布式数据处理系统的模拟测试方法 |
CN105389191B (zh) * | 2015-12-11 | 2018-11-02 | 北京奇虎科技有限公司 | 一种基于局域网的软件升级方法、装置和系统 |
CN107133063A (zh) * | 2017-03-10 | 2017-09-05 | 西安中科创达软件有限公司 | 一种定制化的软件升级方法及移动终端 |
CN108334370B (zh) * | 2017-05-26 | 2021-02-09 | 中国电子科技集团公司第四十一研究所 | 一种分布式测试系统的软件自动增量更新升级方法 |
CN108632375B (zh) * | 2018-05-09 | 2021-04-27 | 四川华创世纪科技有限公司 | 一种针对分布式部署服务软件程序的在线升级方法 |
CN108768758A (zh) * | 2018-08-31 | 2018-11-06 | 郑州云海信息技术有限公司 | 分布式存储系统在线升级方法、装置、设备及存储介质 |
-
2019
- 2019-08-05 CN CN201910716847.2A patent/CN110597531B/zh active Active
- 2019-11-13 WO PCT/CN2019/117808 patent/WO2021022713A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201607A (zh) * | 2016-07-04 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种软件版本的升级方法及设备 |
CN108667641A (zh) * | 2017-03-30 | 2018-10-16 | 杭州海康威视数字技术股份有限公司 | 分布式系统升级方法、分布式系统及升级管理设备 |
Non-Patent Citations (1)
Title |
---|
基于P2P的VOD资源发布和更新系统设计与实现;阮伟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20080715(第07期);I136-189 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021022713A1 (zh) | 2021-02-11 |
CN110597531A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597531B (zh) | 分布式的模块升级方法、装置及存储介质 | |
US8762977B2 (en) | Mobile device software management method and apparatus | |
CN114006815B (zh) | 云平台节点的自动化部署方法、装置、节点及存储介质 | |
CN112685410A (zh) | 业务规则校验方法、装置、计算机设备及存储介质 | |
CN117170803A (zh) | 生成信创操作系统流水线的方法、电子设备及存储介质 | |
CN114489676A (zh) | 源代码的处理方法、系统、存储介质及电子设备 | |
CN111538542B (zh) | 一种系统配置方法及相关装置 | |
CN115544518A (zh) | 漏洞扫描引擎实现方法、装置、漏洞扫描方法及电子设备 | |
CN112564979B (zh) | 构建任务的执行方法、装置、计算机设备和存储介质 | |
EP3321808A1 (en) | Verification system and verification method | |
CN112667441A (zh) | 基于容错功能的业务模块调度方法、系统及存储介质 | |
CN116755719A (zh) | 应用组件的数据处理方法、装置和数据处理系统 | |
CN110825452A (zh) | 一种多云管理的云服务适配模块管理方法 | |
CN115357257A (zh) | 一种安装文件生成方法、系统、计算设备及存储介质 | |
CN108694048A (zh) | 一种批量发布服务的实现方法 | |
CN109582464B (zh) | 一种云平台管理多种虚拟化平台的方法和装置 | |
CN113760244A (zh) | 一种基于c语言方式实现多入口多接口的方法及系统 | |
CN113515299A (zh) | 软件开发工具包sdk热升级方法、装置、设备及存储介质 | |
CN112817574A (zh) | 变量数据加工方法、装置、电子设备和存储介质 | |
CN117472516B (zh) | 虚拟资源调度方法、装置、集群系统、电子设备和介质 | |
CN114942801B (zh) | 基于fsm的应用发布任务处理方法、装置及电子设备 | |
CN112667491A (zh) | 虚拟机的功能测试方法及装置 | |
CN109683926B (zh) | 网络组件更新方法、装置、设备及计算机可读存储介质 | |
US20240095148A1 (en) | Automatic assignment of changed permissions for diagnostic purposes for work container instances that have already been started | |
CN111078358B (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 |