CN110795120B - 软件升级方法及相关装置 - Google Patents
软件升级方法及相关装置 Download PDFInfo
- Publication number
- CN110795120B CN110795120B CN201910906972.XA CN201910906972A CN110795120B CN 110795120 B CN110795120 B CN 110795120B CN 201910906972 A CN201910906972 A CN 201910906972A CN 110795120 B CN110795120 B CN 110795120B
- Authority
- CN
- China
- Prior art keywords
- target
- server
- servers
- test
- target servers
- 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
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种软件升级方法及相关装置,其中,所述方法包括:确定所述应用服务器中需要升级的N个目标服务器;对所述N个目标服务器编号,生成所述N个目标服务器的状态表;向测试服务器发送携带升级代码的升级指令;通过多个特定账号对所述测试服务器进行测试;若测试通过,向所述N个目标服务器中除所述测试服务器之外的N‑1个目标服务器发送所述升级代码;按照所述状态表中的编号顺序通过所述升级代码对所述N‑1个目标服务器进行服务升级。通过该软件升级方法可在客户无感知的情况下完成整个服务的升级,最大限度的保证用户的使用,最小化的减少软件升级带来的影响。
Description
技术领域
本申请涉及计算机软件领域,特别涉及一种软件升级方法及相关装置。
背景技术
目前常见的用于生产环境的软件服务升级方法有“蛮力发布”、“蓝绿发布”、“金丝雀发布”、“滚动发布”等。若采用已有的升级发布方案,不可避免的会造成硬件资源的浪费、服务中断等,情况严重的影响用户的正常使用。
发明内容
本申请实施例提供了一种软件升级方法及相关装置,可在客户无感知的情况下完成整个服务的升级,最大限度的保证用户的使用,最小化的减少软件升级带来的影响。
第一方面,本申请实施例提供一种软件升级方法,应用于服务器集群系统中的负载均衡服务器,所述服务器集群系统包括负载均衡服务器和应用服务器,所述方法包括:
确定所述应用服务器中需要升级的N个目标服务器,N为正整数;
对所述N个目标服务器编号,生成所述N个目标服务器的状态表,所述状态表包括目标服务器的名称、所述目标服务器的编号、所述目标服务器的状态;
向测试服务器发送携带升级代码的升级指令,其中,所述升级指令用于使所述测试服务器在处理完目标请求后通过所述升级代码进行目标应用的服务升级,所述测试服务器为所述状态表中第一个目标服务器,所述目标请求为针对目标服务的请求;
通过多个特定账号对所述测试服务器进行测试;
若测试通过,向所述N个目标服务器中除所述测试服务器之外的N-1个目标服务器发送所述升级代码;
按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级。
本申请实施例的第二方面提供了一种软件升级装置,应用于服务器集群系统中的负载均衡服务器,所述服务器集群系统包括负载均衡服务器和应用服务器,所述软件升级装置包括处理单元和通信单元,其中,
所述处理单元,用于确定所述应用服务器中需要升级的N个目标服务器,N为正整数;以及用于对所述N个目标服务器编号,生成所述N个目标服务器的状态表,所述状态表包括目标服务器的名称、所述目标服务器的编号、所述目标服务器的状态;以及用于通过所述通讯单元向测试服务器发送携带升级代码的升级指令,其中,所述升级指令用于使所述测试服务器在处理完目标请求后通过所述升级代码进行目标应用的服务升级,所述测试服务器为所述状态表中第一个目标服务器,所述目标请求为针对目标服务的请求;以及用于通过多个特定账号对所述测试服务器进行测试;以及用于若测试通过,向所述N个目标服务器中除所述测试服务器之外的N-1个目标服务器发送所述升级代码;以及用于按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级。
本申请实施例的第三方面提供一种负载均衡服务器,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如本申请实施例第一方面和第二方面中的步骤指令。
本申请实施例的第四方面提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面和第二方面中所描述的部分或全部步骤。
本申请实施例的第五方面提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面和第二方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,本申请中,负载均衡服务器通过确定所述应用服务器中需要升级的N个目标服务器,N为正整数;对所述N个目标服务器编号,生成所述N个目标服务器的状态表;向测试服务器发送携带升级代码的升级指令;通过多个特定账号对所述测试服务器进行测试;若测试通过,向所述N个目标服务器中除所述测试服务器之外的N-1个目标服务器发送所述升级代码;按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级。可见,本申请中的负载均衡服务器可在客户无感知的情况下完成整个服务的升级,最大限度的保证用户的使用,最小化的减少软件升级带来的影响。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种软件升级方法的流程示意图;
图2是本申请实施例提供的选取备用服务器的示意图;
图3为本申请实施例提供的一种负载均衡服务器的结构示意图;
图4为本申请实施例提供了一种软件升级装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的电子装置可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(user equipment,UE),移动台(mobile station,MS),负载均衡服务器设备(terminal device)等等。为方便描述,上面提到的设备统称为电子装置。
请参阅图1,图1是本申请实施例提供的一种软件升级方法的流程示意图,应用于服务器集群系统中的负载均衡服务器,所述服务器集群系统包括负载均衡服务器和应用服务器,所述方法包括:
101、确定所述应用服务器中需要升级的N个目标服务器,N为正整数。
其中,本申请实施例需要升级的对象包括软件(应用程序)或系统,当升级对象为软件时,可以是整个软件的升级,也可以是该软件其中的一个功能或若干个功能的升级,目前大部分软件功能都较多,同一个软件中的不同功能可以通过不同的服务器集群来实现,同一个服务器集群中所有的服务器或者一部分服务器可能只实现该软件的一种功能,如登录、支付等,例如,服务器集群1包括服务器1、服务器2和服务器3,服务器集群2包括服务器A、服务器B和服务器C,其中服务器1和服务器2提供登录服务,服务器A、服务器B和服务器C提供支付服务。当软件功能较少时,可通过一个集群系统中的不同应用服务器实现其所有功能。
当负载均衡服务器检测到系统中有目标软件的一个服务的升级版本时,确定服务器集群系统中提供该服务的应用服务器,即为目标服务器,然后部署升级环境。
负载均衡服务器用于负载均衡,具体而言,不同的目标服务器带宽不同,目标服务器用于接收目标请求的端口数量也不同,所以不同的目标服务器可接收的目标请求数量也不同。负载均衡服务器实时获取服务器集群系统中各个目标服务器的状态,即各个目标服务器当前处理的目标请求数量和等待处理的目标请求数量,根据上述获取的数据将目标请求分配至各个目标服务器中进行处理,以确保负载均衡。
102、对所述N个目标服务器编号,生成所述N个目标服务器的状态表,所述状态表包括目标服务器的名称、所述目标服务器的编号、所述目标服务器的状态。
如下表1所示,表1是状态表,在状态表中,对各个目标服务器进行命名并编号,并显示各个目标服务器当前的状态,其状态包括三种:已升级、升级中和未升级,显然,在还未升级前,状态表中各个目标服务器的状态均为未升级,当目标服务器的状态显示为升级中时,负载均衡服务器不再将目标请求路由至该目标服务器中,当状态表中同时存在已升级和未升级的目标服务器时,上述两种状态的目标服务器都可接收目标请求,负载均衡服务器会将目标请求优先路由至已升级的目标服务器中,以使用户获得更好的使用体验。
表1状态表
名称 | 编号 | 状态 |
服务器1 | 1 | 已升级 |
服务器2 | 2 | 已升级 |
…… | …… | …… |
服务器x | x | 升级中 |
服务器x+1 | x+1 | 未升级 |
…… | …… | …… |
103、向测试服务器发送携带升级代码的升级指令,其中,所述升级指令用于使所述测试服务器在处理完目标请求后通过所述升级代码进行目标应用的服务升级,所述测试服务器为所述状态表中第一个目标服务器,所述目标请求为针对目标服务的请求。
其中,服务升级是通过将升级程序(升级代码)部署到目标服务器上得以实现的,部署包括安装和重启的过程,安装时间根据程序的大小而不同,一次重启大概需要2min,因此,若一个集群中目标服务器较多,则整个升级的过程耗时较长。在目标服务器数量较少且用户请求量较少时,可选择同时对目标服务器进行升级。在目标服务器数量较多且用户请求量较多时,可获取用户对该服务的使用时间表,根据使用时间表找到用户对该服务使用的低谷时间,在低谷时间对该服务进行升级,从而减少服务器集群系统的压力,更进一步的,可将状态表中的目标服务器根据需求分为若干组依次进行服务升级,例如,将所有的目标服务器分为三组,在完成对第一组目标服务器进行服务升级之后,然后对第二组目标服务器统一进行服务升级,最后对第三组目标服务器进行服务升级。在完成升级后,目标服务器中同时存在目标服务之前版本的程序和升级程序。
本申请实施例中在升级之前支持优雅停机,即目标服务器在停止服务前会处理完所有已经到达的目标请求且不会再接收新的请求,因此可以停止需要升级的任意一个服务。在部署完升级代码后,测试服务器生成升级响应,并将升级响应发送给负载均衡服务器,使其在接收升级响应后对测试服务器进行测试。
104、通过多个特定账号对所述测试服务器进行测试。
其中,多个特定账号为内部指定账号,专用于测试,之前已将多个特定账号写入负载均衡服务器的配置文件中。以登录服务为例说明,使用特定账号登录做测试时,一旦检测到用户账号与配置文件中存储的特定账号一致,负载均衡服务器将用户的登录请求路由至测试服务器中,通过测试服务器来处理该请求,若检测到用户账号与配置文件中存储的特定账号均不匹配,认为该用户账号为普通账号,将其请求路由至其他目标服务器中进行处理。
105、若测试通过,向所述N个目标服务器中除所述测试服务器之外的N-1个目标服务器发送所述升级代码。
其中,收集测试服务器对目标请求的处理结果,处理结果包括响应速度、处理失败率、系统性能值等,根据处理结果判断测试是否通过。若测试通过,删除测试服务器中目标服务之前版本的程序,仅保留升级程序,以此避免存储空间的浪费。
在测试通过后,需要对所有目标服务器进行服务升级,若每次升级时都将升级程序(升级代码)与升级指令一起发送,将会增大系统处理的压力以及出错概率,因此,此处在测试通过后,将升级程序统一分发至各个目标服务器中。
106、按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级。
其中,如前所述,可按照状态表中的编号顺序依次对N-1个目标服务器执行升级操作,也可对N-1个目标服务器分组执行升级操作,升级操作包括更改需要升级的目标服务器在状态表中的状态,安装升级程序和重启服务。在所有目标服务器都完成服务升级之后,负载均衡服务器将切换至系统正常运行状态。
可以看出,在本申请实施例中,负载均衡服务器通过确定所述应用服务器中需要升级的N个目标服务器,N为正整数;对所述N个目标服务器编号,生成所述N个目标服务器的状态表;向测试服务器发送携带升级代码的升级指令;通过多个特定账号对所述测试服务器进行测试;若测试通过,向所述N个目标服务器中除所述测试服务器之外的N-1个目标服务器发送所述升级代码;按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级。可见,本申请中的负载均衡服务器可在客户无感知的情况下完成整个服务的升级,最大限度的保证用户的使用,最小化的减少软件升级带来的影响。
在一个可能的示例中,所述对所述N个目标服务器编号,生成所述N个目标服务器的状态表,包括:
根据负载均衡列表获取所述N个目标服务器中每个目标服务器需要处理的所述目标请求的数量;
根据每个目标服务器需要处理的所述目标请求的数量对所述N个目标服务器编号,生成所述状态表,其中,所述状态表中所述N个目标服务器的状态都为未升级。
其中,因为目标请求数量越多,处理完请求所需的时间就越长,所以在根据每个目标服务器需要处理的所述目标请求的数量对所述N个目标服务器编号时,可将需要处理的所述目标请求的数量少的目标服务器的编号安排在目标请求数量多的目标服务器的前面,可以为目标请求数量多的目标服务器预留更多时间用于处理目标请求。
可见,根据各个目标服务器处理的目标请求的数量来决定其升级先后顺序,可以使升级更加有序的进行。
在一个可能的示例中,所述通过多个特定账号对所述测试服务器进行测试,包括:
接收所述目标请求,将所述目标请求的用户账号与所述多个特定账号进行比对;
若所述用户账号与所述多个特定账号中的一个匹配,将来自所述用户账号的所述目标请求路由至所述测试服务器中,通过所述用户账号对所述测试服务器进行冒烟测试。
其中,冒烟测试是版本验证测试,主要确认新的服务版本中是否存在致命性错误,升级后的功能是否可以正常运行。冒烟测试可以节约测试的时间成本,减少测试轮数。以登录服务为例,冒烟测试主要检测其登录界面以及登录方法是否变化。
可见,通过特定账号对测试服务器进行冒烟测试,可以在保证用户服务不间断的同时,有效的检测出升级程序中可能出现的致命错误。
在一个可能的示例中,在所述向测试服务器发送携带升级代码的升级指令之前,所述方法还包括:
将所述状态表中所述测试服务器的状态更改为升级中,以使所述测试服务器在服务升级完成之前不再接收所述目标请求。
在一个可能的示例中,所述方法还包括:
若所述测试不通过,删除所述测试服务器中的所述升级代码,将所述状态表中所述测试服务器的状态更改为未升级,以使所述测试服务器接收所述目标请求。
其中,若测试不通过,测试服务器将向负载均衡服务器发送升级失败信息,负载均衡服务器接收升级失败信息后,将删除测试服务器中的升级代码,回退还原目标服务之前版本的升级程序,并更改测试服务器的状态,将目标请求重新路由至测试服务器。
可见,即使测试不通过,本实施例中提供的升级方法依然可以回退至之前的版本,避免了升级不成功而无法回退的事故。
在一个可能的示例中,所述方法还包括:
若所述测试通过,将所述状态表中所述测试服务器的状态更改为已升级,以使所述测试服务器可接收并处理所述目标请求。
其中,若所述测试通过,删除测试服务器中目标服务之前版本的升级代码。当状态表中同时存在已升级和未升级的目标服务器时,上述两种状态的目标服务器都可接收目标请求,以登录服务为例,该登录服务的升级在与登录页面的更新,用户登录后看到的登录页面可能是之前的登录页面,也可能是升级后的登录页面,具体取决于用户的登录请求被路由到已升级的目标服务器还是未升级的目标服务器上。
可见,本实施例中的负载均衡服务器可实时检测各个目标服务器的状态,并根据其状态更新状态表,以此确定是否将目标服务路由至目标服务器中。
在一个可能的示例中,所述方法还包括:
若在所述N-1个目标服务器的服务升级期间,所述目标请求的数量大于N-1个目标服务器可接收的数量,选取至少一个备用服务器,在所述至少一个备用服务器上部署所述升级代码,将所述至少一个备用服务器的信息加入所述状态表中,以使所述至少一个备用服务器接收所述目标请求;
其中,所述至少一个备用服务器属于所述服务器集群系统或属于关联服务器集群系统,所述关联服务器集群系统的应用服务器中部署了所述目标应用的其他服务。
其中,在N-1个目标服务器中的一个目标服务器进行服务升级时,可以接收目标请求的目标服务器为剩下未升级以及已升级的N-1个目标服务器,若此时目标请求量超过这N-1个目标服务器可处理的请求数量,为了不影响用户体验,可选取备用服务器接收超出的目标请求,如图2所示,图2是本申请实施例提供的选取备用服务器的示意图,当N=3时,服务器集群系统1中目标服务器为服务器1、服务器2和服务器3,服务器4不服务于目标应用,若目标请求量超过3个服务器可接收的数量,负载均衡服务器A可将携带升级代码的部署指令发送至服务器4,在服务器4上安装并运行目标应用的升级代码,即与目标服务有关的程序,同时,给服务器4编号,将服务器4的名称、编号和状态添加进状态表中,从而服务器4可作为备用服务器接收目标请求;当N=4时,服务器集群系统1中所有的应用服务器都是目标服务器,为目标应用提供目标服务,如登录服务,同时,存在服务器集群系统2(关联服务器集群系统)为目标应用提供其他请求量较少的服务,如评价服务,服务器集群系统2包括服务器a和服务器b,若此时目标请求量超过服务器集群系统1中4个服务器可接收的数量,负载均衡服务器A可向负载均衡服务器B发送请求,使得负载均衡服务器B将其中的一个服务器(如服务器a)分配给负载均衡服务器A作为备用服务器,负载均衡服务器A在服务器a上部署完目标服务的程序之后,将超出的目标请求分发给服务器a处理,从而缓解服务器集群系统1的处理压力,解决系统负荷过量的问题。其中,负载均衡服务器B也可以是与目标应用无关的集群系统。
可见,本实施例中对于在服务升级过程中可能出现的目标请求过量的问题提出了多种可行的解决办法,保证了目标服务器服务升级的连续性,有效的缓解了系统压力,提高用户体验。
与上述实施例一致的,请参阅图3,图3为本申请实施例提供的一种负载均衡服务器的结构示意图,如图所示,包括处理器、输入设备、输出设备和存储器,处理器、输入设备、输出设备和存储器相互连接,其中,存储器用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,上述程序包括用于执行以下步骤的指令:
确定所述应用服务器中需要升级的N个目标服务器,N为正整数;
对所述N个目标服务器编号,生成所述N个目标服务器的状态表,所述状态表包括目标服务器的名称、所述目标服务器的编号、所述目标服务器的状态;
向测试服务器发送携带升级代码的升级指令,其中,所述升级指令用于使所述测试服务器在处理完目标请求后通过所述升级代码进行目标应用的服务升级,所述测试服务器为所述状态表中第一个目标服务器,所述目标请求为针对目标服务的请求;
通过多个特定账号对所述测试服务器进行测试;
若测试通过,向所述N个目标服务器中除所述测试服务器之外的N-1个目标服务器发送所述升级代码;
按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级。
可选的,在所述对所述N个目标服务器编号,生成所述N个目标服务器的状态表方面,上述程序包括用于执行以下步骤的指令:
根据负载均衡列表获取所述N个目标服务器中每个目标服务器需要处理的所述目标请求的数量;
根据每个目标服务器需要处理的所述目标请求的数量对所述N个目标服务器编号,生成所述状态表,其中,所述状态表中所述N个目标服务器的状态都为未升级。
可选的,在所述通过多个特定账号对所述测试服务器进行测试方面,上述程序包括用于执行以下步骤的指令:
接收所述目标请求,将所述目标请求的用户账号与所述多个特定账号进行比对;
若所述用户账号与所述多个特定账号中的一个匹配,将来自所述用户账号的所述目标请求路由至所述测试服务器中,通过所述用户账号对所述测试服务器进行冒烟测试。
可选的,在所述向测试服务器发送携带升级代码的升级指令之前,上述程序包括用于执行以下步骤的指令:
将所述状态表中所述测试服务器的状态更改为升级中,以使所述测试服务器在服务升级完成之前不再接收所述目标请求。
可选的,上述程序包括用于执行以下步骤的指令:
若所述测试不通过,删除所述测试服务器中的所述升级代码,将所述状态表中所述测试服务器的状态更改为未升级,以使所述测试服务器接收所述目标请求。
可选的,上述程序包括用于执行以下步骤的指令:
若所述测试通过,将所述状态表中所述测试服务器的状态更改为已升级,以使所述测试服务器可接收并处理所述目标请求。
可选的,上述程序包括用于执行以下步骤的指令:
若在所述N-1个目标服务器的服务升级期间,所述目标请求的数量大于N-1个目标服务器可接收的数量,选取至少一个备用服务器,在所述至少一个备用服务器上部署所述升级代码,将所述至少一个备用服务器的信息加入所述状态表中,以使所述至少一个备用服务器接收所述目标请求;
其中,所述至少一个备用服务器属于所述服务器集群系统或属于关联服务器集群系统,所述关联服务器集群系统的应用服务器中部署了所述目标应用的其他服务。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,负载均衡服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对负载均衡服务器进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
与上述一致的,请参阅图4,图4为本申请实施例提供了一种软件升级装置的结构示意图。如图4所示,所述软件升级装置包括通讯单元401和处理单元402,其中,
所述处理单元402,用于确定所述应用服务器中需要升级的N个目标服务器,N为正整数;以及用于对所述N个目标服务器编号,生成所述N个目标服务器的状态表,所述状态表包括目标服务器的名称、所述目标服务器的编号、所述目标服务器的状态;以及用于通过所述通讯单元401向测试服务器发送携带升级代码的升级指令,其中,所述升级指令用于使所述测试服务器在处理完目标请求后通过所述升级代码进行目标应用的服务升级,所述测试服务器为所述状态表中第一个目标服务器,所述目标请求为针对目标服务的请求;以及用于通过多个特定账号对所述测试服务器进行测试;以及用于若测试通过,向所述N个目标服务器中除所述测试服务器之外的N-1个目标服务器发送所述升级代码;以及用于按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级。
可选的,在所述对所述N个目标服务器编号,生成所述N个目标服务器的状态表方面,所述处理单元402具体用于:
根据负载均衡列表获取所述N个目标服务器中每个目标服务器需要处理的所述目标请求的数量;
根据每个目标服务器需要处理的所述目标请求的数量对所述N个目标服务器编号,生成所述状态表,其中,所述状态表中所述N个目标服务器的状态都为未升级。
可选的,在所述通过多个特定账号对所述测试服务器进行测试方面,所述处理单元402具体用于:
接收所述目标请求,将所述目标请求的用户账号与所述多个特定账号进行比对;
若所述用户账号与所述多个特定账号中的一个匹配,将来自所述用户账号的所述目标请求路由至所述测试服务器中,通过所述用户账号对所述测试服务器进行冒烟测试。
可选的,在所述向测试服务器发送携带升级代码的升级指令之前,所述处理单元402具体用于:
将所述状态表中所述测试服务器的状态更改为升级中,以使所述测试服务器在服务升级完成之前不再接收所述目标请求。
可选的,所述处理单元402具体用于:
若所述测试不通过,删除所述测试服务器中的所述升级代码,将所述状态表中所述测试服务器的状态更改为未升级,以使所述测试服务器接收所述目标请求。
可选的,所述处理单元402具体用于:
若所述测试通过,将所述状态表中所述测试服务器的状态更改为已升级,以使所述测试服务器可接收并处理所述目标请求。
可选的,所述处理单元402具体用于:
若在所述N-1个目标服务器的服务升级期间,所述目标请求的数量大于N-1个目标服务器可接收的数量,选取至少一个备用服务器,在所述至少一个备用服务器上部署所述升级代码,将所述至少一个备用服务器的信息加入所述状态表中,以使所述至少一个备用服务器接收所述目标请求;
其中,所述至少一个备用服务器属于所述服务器集群系统或属于关联服务器集群系统,所述关联服务器集群系统的应用服务器中部署了所述目标应用的其他服务。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种软件升级方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种软件升级方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在申请明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种软件升级方法,其特征在于,应用于服务器集群系统中的负载均衡服务器,所述服务器集群系统包括负载均衡服务器和应用服务器,所述方法包括:
确定所述应用服务器中需要升级的N个目标服务器,N为正整数;
根据负载均衡列表获取所述N个目标服务器中每个目标服务器需要处理的目标请求的数量,所述目标请求为针对目标服务的请求;
根据每个目标服务器需要处理的所述目标请求的数量对所述N个目标服务器编号,生成状态表,其中,所述目标服务器需要处理的目标请求的数量越少,所述目标服务器的编号越小,所述状态表中所述N个目标服务器的状态都为未升级,所述状态表包括目标服务器的名称、所述目标服务器的编号、所述目标服务器的状态;
向测试服务器发送携带升级代码的升级指令,其中,所述升级指令用于使所述测试服务器在处理完所述目标请求后通过所述升级代码进行目标应用的服务升级,所述测试服务器为所述状态表中第一个目标服务器;
接收所述目标请求,将所述目标请求的用户账号与多个特定账号进行比对;
若所述用户账号与所述多个特定账号中的一个匹配,将来自所述用户账号的所述目标请求路由至所述测试服务器中,通过所述用户账号对所述测试服务器进行冒烟测试;
若测试通过,向所述N个目标服务器中除所述测试服务器之外的N-1个目标服务器发送所述升级代码;
获取所述N个目标服务器的目标请求数量,若所述N小于第一预设阈值,或所述N个目标服务器的目标请求量小于第二预设阈值,则按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级;
若所述N不小于所述第一预设阈值,且所述N个目标服务器的目标请求量不小于所述第二预设阈值,则获取所述N个目标服务器的目标请求时段表,根据所述N个目标服务器的目标请求时段表确定所述目标请求数量最少的第一时段,并在所述第一时段按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级。
2.根据权利要求1所述的方法,其特征在于,在所述向测试服务器发送携带升级代码的升级指令之前,所述方法还包括:
将所述状态表中所述测试服务器的状态更改为升级中,以使所述测试服务器在服务升级完成之前不再接收所述目标请求。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述测试不通过,删除所述测试服务器中的所述升级代码,将所述状态表中所述测试服务器的状态更改为未升级,以使所述测试服务器接收所述目标请求。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述测试通过,将所述状态表中所述测试服务器的状态更改为已升级,以使所述测试服务器可接收并处理所述目标请求。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在所述N-1个目标服务器的服务升级期间,所述目标请求的数量大于N-1个目标服务器可接收的数量,选取至少一个备用服务器,在所述至少一个备用服务器上部署所述升级代码,将所述至少一个备用服务器的信息加入所述状态表中,以使所述至少一个备用服务器接收所述目标请求;
其中,所述至少一个备用服务器属于所述服务器集群系统或属于关联服务器集群系统,所述关联服务器集群系统的应用服务器中部署了所述目标应用的其他服务。
6.一种软件升级装置,其特征在于,应用于服务器集群系统中的负载均衡服务器,所述服务器集群系统包括负载均衡服务器和应用服务器,所述软件升级装置包括处理单元和通信单元,其中,
所述处理单元,用于确定所述应用服务器中需要升级的N个目标服务器,N为正整数;根据负载均衡列表获取所述N个目标服务器中每个目标服务器需要处理的目标请求的数量,所述目标请求为针对目标服务的请求;根据每个目标服务器需要处理的所述目标请求的数量对所述N个目标服务器编号,生成状态表,其中,所述目标服务器需要处理的目标请求的数量越少,所述目标服务器的编号越小,所述状态表中所述N个目标服务器的状态都为未升级,所述状态表包括目标服务器的名称、所述目标服务器的编号、所述目标服务器的状态;以及用于通过通讯单元向测试服务器发送携带升级代码的升级指令,其中,所述升级指令用于使所述测试服务器在处理完所述目标请求后通过所述升级代码进行目标应用的服务升级,所述测试服务器为所述状态表中第一个目标服务器;以及用于接收所述目标请求,将所述目标请求的用户账号与多个特定账号进行比对;以及用于若所述用户账号与所述多个特定账号中的一个匹配,将来自所述用户账号的所述目标请求路由至所述测试服务器中,通过所述用户账号对所述测试服务器进行冒烟测试;以及用于若测试通过,向所述N个目标服务器中除所述测试服务器之外的N-1个目标服务器发送所述升级代码;以及用于获取所述N个目标服务器的目标请求数量,若所述N小于第一预设阈值,或所述N个目标服务器的目标请求量小于第二预设阈值,则按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级;以及用于若所述N不小于所述第一预设阈值,且所述N个目标服务器的目标请求量不小于所述第二预设阈值,则获取所述N个目标服务器的目标请求时段表,根据所述N个目标服务器的目标请求时段表确定所述目标请求数量最少的第一时段,并在所述第一时段按照所述状态表中的编号顺序通过所述升级代码对所述N-1个目标服务器进行服务升级。
7.一种负载均衡服务器,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-5任一项所述的方法中的步骤的指令。
8.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906972.XA CN110795120B (zh) | 2019-09-24 | 2019-09-24 | 软件升级方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906972.XA CN110795120B (zh) | 2019-09-24 | 2019-09-24 | 软件升级方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110795120A CN110795120A (zh) | 2020-02-14 |
CN110795120B true CN110795120B (zh) | 2023-07-28 |
Family
ID=69439622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910906972.XA Active CN110795120B (zh) | 2019-09-24 | 2019-09-24 | 软件升级方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795120B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414181B (zh) * | 2020-03-19 | 2023-11-14 | 中诚信征信有限公司 | 网络产品的服务升级方法、装置、服务器及存储介质 |
CN111880852B (zh) * | 2020-07-28 | 2022-06-07 | 平安科技(深圳)有限公司 | 操作系统初始化方法、系统、计算机设备及存储介质 |
CN112433863A (zh) * | 2020-11-18 | 2021-03-02 | 平安消费金融有限公司 | 微服务调用方法、装置、终端设备以及存储介质 |
CN112446714A (zh) * | 2020-12-11 | 2021-03-05 | 上海中通吉网络技术有限公司 | 快递售后工单处理系统的服务器升级方法、装置及设备 |
CN113364615B (zh) * | 2021-06-01 | 2023-01-31 | 北京沃东天骏信息技术有限公司 | 滚动升级的方法、装置、设备和计算机可读介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100536415C (zh) * | 2006-09-26 | 2009-09-02 | 腾讯科技(深圳)有限公司 | 一种Web服务系统升级方法及系统 |
CN105897457A (zh) * | 2015-12-09 | 2016-08-24 | 乐视云计算有限公司 | 服务器群组的服务升级方法及系统 |
CN105653318A (zh) * | 2015-12-24 | 2016-06-08 | 北京奇虎科技有限公司 | 软件升级方法、装置及系统 |
CN108881030B (zh) * | 2018-06-07 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 灰度发布场景下的路由方法及装置 |
CN109347652A (zh) * | 2018-08-31 | 2019-02-15 | 北京奇艺世纪科技有限公司 | 服务器集群的服务管理方法和装置 |
CN109445825A (zh) * | 2018-11-09 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种服务器集群系统更新升级的方法和装置 |
CN109857424A (zh) * | 2018-12-20 | 2019-06-07 | 航天信息股份有限公司 | 服务器集群的应用升级方法及装置 |
-
2019
- 2019-09-24 CN CN201910906972.XA patent/CN110795120B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110795120A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795120B (zh) | 软件升级方法及相关装置 | |
CN108847982B (zh) | 一种分布式存储集群及其节点故障切换方法和装置 | |
CN108633311A (zh) | 一种基于调用链的并发控制的方法、装置及控制节点 | |
CN107465562B (zh) | 一种ctdb自定义分配虚拟ip的方法、装置、设备 | |
CN107659948B (zh) | 一种控制ap接入的方法及装置 | |
CN109819023B (zh) | 分布式事务处理方法及相关产品 | |
CN108984349A (zh) | 主节点选举方法及装置、介质和计算设备 | |
CN114356557B (zh) | 一种集群扩容方法及装置 | |
CN109597800B (zh) | 一种日志分发方法及装置 | |
CN109002354A (zh) | 一种基于OpenStack的计算资源容量弹性伸缩方法及系统 | |
CN111274135B (zh) | 一种openstack的计算节点高可用测试方法 | |
CN106790610B (zh) | 一种云系统消息分发方法,装置和系统 | |
CN106301967B (zh) | 一种数据同步方法及带外管理设备 | |
CN110019481A (zh) | 内存数据库访问方法、装置、设备及介质 | |
CN111866210A (zh) | 一种虚拟ip均衡分配方法、系统、终端及存储介质 | |
CN106776034A (zh) | 一种任务批处理计算方法、主站计算机及系统 | |
CN116954863A (zh) | 数据库调度方法、装置、设备及存储介质 | |
CN109558152A (zh) | 系统灰度发布时流量切换方法、装置、介质及电子设备 | |
CN110086660B (zh) | 一种数据处理方法及装置 | |
CN110677353B (zh) | 数据访问方法及系统 | |
CN113242302A (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
CN111106945B (zh) | 一种vnf实例化方法、装置、设备及存储介质 | |
CN112350894A (zh) | 一种服务节点的性能测试方法、装置、设备及存储介质 | |
CN111949216A (zh) | 云平台存储卷自动扩容的方法、系统、终端及存储介质 | |
CN113220491B (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 |