服务器升级方法、装置、计算机设备和存储介质
文献发布时间:2023-06-19 09:46:20
技术领域
本申请涉及云部署领域,尤其涉及一种服务器升级方法、装置、计算机设备和存储介质。
背景技术
微服务架构是一种从单体应用架构进化而来的软件架构,其将功能多样的单体应用拆解为多个小模块,便于从业务上细化功能和拆分团队维护以及解耦进行高效迭代,极大程度提升了业务团队和技术团队工作效率。
对于技术团队来说,微服务架构最大的难题在于微服务集群的迭代升级部署。由于各个微服务集群中的服务器与外部客户端之间需要保证实时的服务调用,因此如何在服务器的升级过程中,保证微服务集群的可靠性和稳定性成为亟需解决的问题。
发明内容
本申请提供了一种服务器升级方法、装置、计算机设备和存储介质,通过在升级前将待升级服务器从负载组件列表中删除,并在升级成功后将待升级服务器添加至负载组件列表,以使升级成功后的待升级服务器对外提供服务调用,提高了微服务集群在升级过程中的可靠性和稳定性。
第一方面,本申请提供了一种服务器升级方法,所述方法包括:
根据升级请求确定微服务集群中的待升级服务器,并将所述待升级服务器从负载组件列表中删除,其中,所述负载组件列表包括至少一台当前可对外提供服务调用的服务器;
生成关闭应用程序指令,将所述关闭应用程序指令与预设的升级数据包发送至所述待升级服务器,以使所述待升级服务器根据所述关闭应用程序指令进行关闭应用程序并在关闭完成后根据所述升级数据包进行升级;
根据所述待升级服务器的升级状态信息判断所述待升级服务器是否升级成功,当确定所述待升级服务器升级成功时,则将升级成功后的所述待升级服务器添加至所述负载组件列表中。
第二方面,本申请还提供了一种服务器升级装置,所述装置包括:
待升级服务器确定模块,用于根据升级请求确定微服务集群中的待升级服务器,并将所述待升级服务器从负载组件列表中删除,其中,所述负载组件列表包括至少一台当前可对外提供服务调用的服务器;
服务器升级模块,用于生成关闭应用程序指令,将所述关闭应用程序指令与预设的升级数据包发送至所述待升级服务器,以使所述待升级服务器根据所述关闭应用程序指令进行关闭应用程序并在关闭完成后根据所述升级数据包进行升级;
升级状态判断模块,用于根据所述待升级服务器的升级状态信息判断所述待升级服务器是否升级成功时,当确定所述待升级服务器升级成功,则将升级成功后的所述待升级服务器添加至所述负载组件列表中。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的服务器升级方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的服务器升级方法。
本申请公开了一种服务器升级方法、装置、计算机设备和存储介质,通过根据升级请求确定微服务集群中的待升级服务器,并将待升级服务器从负载组件列表中删除,可以使得待升级服务器停止接收新的服务调用请求;通过将关闭应用程序指令与预设的升级数据包发送至待升级服务器,可以使得待升级服务器根据关闭应用程序指令进行关闭应用程序并在关闭完成后根据升级数据包进行升级,并在待升级服务器升级成功时,将升级成功后的待升级服务器添加至负载组件列表中,使得升级成功后的待升级服务器对外提供服务调用,提高了微服务集群在升级过程中的可靠性和稳定性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种服务器升级方法的示意性流程图;
图2是本申请实施例提供的生成升级请求的子步骤的示意性流程图;
图3是本申请实施例提供的一种确定待升级服务器的示意图;
图4是本申请实施例提供的检测待升级服务器是否完成关闭应用程序的子步骤的示意性流程图;
图5是本申请实施例提供的检测待升级服务器是否完成关闭应用程序的交互示意图;
图6是本申请实施例提供的判断待升级服务器是否升级成功的子步骤的示意性流程图;
图7是本申请实施例提供的检测待升级服务器是否升级成功的交互示意图;
图8是本申请实施例提供的一种服务器升级装置的示意性框图;
图9是本申请实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种服务器升级方法、装置、计算机设备和存储介质。其中,该服务器升级方法可以应用于服务器中,通过在升级前将待升级服务器从负载组件列表中删除,并在升级成功后将待升级服务器添加至负载组件列表,以使升级成功后的待升级服务器对外提供服务调用,提高了微服务集群在升级过程中的可靠性和稳定性。
其中,服务器可以为独立的服务器,也可以为服务器集群。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
如图1所示,服务器升级方法包括步骤S10至步骤S30。
步骤S10、根据升级请求确定微服务集群中的待升级服务器,并将所述待升级服务器从负载组件列表中删除,其中,所述负载组件列表包括至少一台当前可对外提供服务调用的服务器。
需要说明的是,本申请实施例提供的服务器升级方法可以应用于升级部署服务器中。其中,升级部署服务器用于对微服务架构中的各微服务集群中的应用服务器进行升级处理。
示例性的,微服务架构可以包括服务注册中心、管控台页面、发布组件以及负载均衡组件等等。其中,发布组件可以作为升级部署服务器,用于对应用服务器进行升级。服务注册中心记录了服务和服务地址的映射关系,用于实现不同的微服务集群中的应用服务器的服务注册。负载均衡组件用于将应用服务器添加至负载组件列表或删除负载组件列表中的应用服务器,其中,负载组件列表中的应用服务器用于对外提供服务调用。管控台页面用于接收或发送各种指令或请求。
示例性的,微服务架构包括多个微服务集群,每个微服务集群包括多个服务器。可以理解的是,服务注册中心、管控台页面以及负载均衡组件可以是单独的一台服务器,可以是升级部署服务器中的其中一个组件。
在一些实施例中,在根据升级请求确定微服务集群中的待升级服务器之前,还需要生成升级请求。
请参阅图2,图2是本申请实施例提供的生成升级请求的子步骤的示意性流程图,具体可以包括以下步骤S101和步骤S102。
步骤S101、当接收到滚动发布请求时,根据所述滚动发布请求中的集群名称确定所述微服务集群。
需要说明的是,在本申请实施例中,用户可以通过服务注册中心发起对微服务集群的滚动发布请求;服务器注册中心在接收到滚动发布请求时,将滚动发布请求经管控台页面转发到发布组件,以使发布组件根据滚动发布请求对微服务集群进行升级。其中,滚动发布请求包括需要升级的微服务集群的集群名称。
示例性的,可以接收管控台页面转发的滚动发布请求,根据滚动发布请求中的集群名称确定需要升级的微服务集群。
需要说明的是,滚动发布是指将需要升级的微服务集群中的多台服务器按顺序升级。
步骤S102、根据所述滚动发布请求生成所述升级请求。
示例性的,在接收到滚动发布请求之后,可以根据滚动发布请求生成升级请求。需要说明的是,升级请求用于对需要升级的微服务集群中的多台服务器进行升级。其中,微服务集群中的多台服务器可以是应用服务器,可以是其他功能的服务器。
请参阅图2,步骤S10中根据升级请求确定微服务集群中的待升级服务器的子步骤,具体可以包括以下步骤S103。
步骤S103、基于预设的均衡负载策略,根据所述升级请求依次将所述微服务集群中的服务器确定为所述待升级服务器。
示例性的,预设的均衡负载策略可以包括但不限于随机、轮询、加权轮询、IP Hash以及最少连接数等策略。
请参阅图3,图3是本申请实施例提供的一种确定待升级服务器的示意图。如图3所示,若微服务集群包括服务器A、服务器B以及服务器C等等,则可以基于轮询策略将服务器A确定为待升级服务器。等待服务器A升级完毕,再将微服务集群的下一个服务器确定为待升级服务器。
在一些实施例中,在根据升级请求确定微服务集群中的待升级服务器之后,还可以包括:备份待升级服务器的应用数据包,将得到的备份数据包存储至本地数据库或区块链中。
需要说明的是,通过备份待升级服务器的应用数据包,可以在待升级服务器在升级失败后,根据备份的应用数据包恢复待升级服务器至升级前的状态。通过将备份数据包存储在区块链中,可以保证备份数据包的私密和安全性。
在一些实施例中,在根据升级请求确定微服务集群中的待升级服务器之后,可以将待升级服务器从负载组件列表中删除。
其中,负载组件列表包括至少一台当前可对外提供服务调用的服务器。需要说明的是,将待升级服务器从负载组件列表中删除后,使得待升级服务器无法继续接收新的服务调用请求,只能处理已接收的服务调用请求。
通过将待升级服务器从负载组件列表中删除,可以使得新的服务调用请求无法到达待升级服务器,从而可以避免在待升级服务器的升级过程中,出现服务调用请求的报错。
步骤S20、生成关闭应用程序指令,将所述关闭应用程序指令与预设的升级数据包发送至所述待升级服务器,以使所述待升级服务器根据所述关闭应用程序指令进行关闭应用程序并在关闭完成后根据所述升级数据包进行升级。
示例性的,在对待升级服务器进行升级之前,需要关闭待升级服务器中的应用程序。
如图3所示,可以在确定微服务集群中的待升级服务器之后,生成一个关闭应用程序指令;然后将关闭应用程序指令与预设的升级数据包括发送至待升级服务器。其中,关闭应用程序指令可以表示为shutdown。
需要说明的是,待升级服务器可以对外提供关机接口,待升级服务器可以通过关机接口接收关闭应用程序指令,并通过关机接口返回关闭应答码。示例性的,关机接口可以表示为Http://ip:port/shutdown。
通过向待升级服务器发送关闭应用程序指令,可以使得待升级服务器根据关闭应用程序指令等待应用程序处理完待处理请求后再关闭应用程序,达到优雅关机的效果,避免在应用程序未处理完待处理请求就停止,导致出现服务报错。
在本申请实施例中,可以预先获取预设的升级数据包。示例性的,可以连接代码库,获取最新数据包进行压缩和加密,将加密后的数据包作为升级数据包。其中,代码库可以包括SVN(Subversion)或GIT等版本控制系统中的代码库。
在一些实施方式中,可以将升级数据包发送至待升级服务器的指定路径,以使待升级服务器对升级数据包进行解密和升级部署。
在本申请实施例中,待升级服务器在接收到关闭应用程序指令与升级数据包之后,需要根据关闭应用程序指令等待当前的待处理请求处理完毕后,再关闭应用程序指令并根据升级数据包进行升级。其中,待处理请求是指未处理的服务调用请求。
在一些实施例中,在将关闭应用程序指令与预设的升级数据包发送至待升级服务器之后,还可以包括:接收待升级服务器返回的关闭应答码,并检测待升级服务器是否完成关闭应用程序;当确定待升级服务器完成关闭应用程序时,记录待升级服务器的关闭完成时刻。
需要说明的是,待升级服务器在接收到关闭应用程序指令之后,需要向升级部署服务器返回一个关闭应答码。其中,关闭应答码表示待升级服务器已接收到关闭应用程序指令,正在关闭应用程序中。
示例性的,关闭应答码可以表示为503,当然,也可以是其它代码。
在本申请实施例中,在接收到待升级服务器返回的关闭应答码之后,需要检测待升级服务器是否完成关闭应用程序。
请参阅图4,图4是本申请实施例提供的检测待升级服务器是否完成关闭应用程序的子步骤的示意性流程图,具体可以包括以下步骤S201至步骤S203。
步骤S201、确定所述待升级服务器的等待关闭时长,在所述等待关闭时长内持续向所述待升级服务器发送关闭应用程序指令。
需要说明的是,待升级服务器在接收到关闭应用程序指令之后,并不一定会立即关闭应用程序。当待升级服务器中存在未处理完毕的服务调用请求时,需要先处理服务调用请求,再进行关闭应用程序。因此,从待升级服务器收到关闭应用程序指令到待升级服务器完成关闭应用程序这一段时间,可以当作等待关闭时长。
在一些实施例中,确定待升级服务器的等待关闭时长,可以包括:获取待升级服务器的待处理请求的个数,并确定待处理请求的处理时间;根据待处理请求对应的个数与处理时间,确定待升级服务器对应的等待关闭时长。
示例性的,待处理请求可以有至少一个,其中,每个待处理请求对应的处理时间可以相同也可以不相同。当然,待升级服务器中也可能不存在待处理请求,当不存在待处理请求时,待升级服务器在接收到关闭应用程序指令后会立即关闭应用程序。
示例性的,根据每个待处理请求对应的处理时间之和,确定为待升级服务器对应的等待关闭时长。
请参阅图5,图5是本申请实施例提供的检测待升级服务器是否完成关闭应用程序的交互示意图。如图5所示,可以在等待关闭时长内实时或定时向待升级服务器发送关闭应用程序指令,以使待升级服务器根据关闭应用程序指令返回关闭应答码。
步骤S202、当接收到所述待升级服务器返回所述关闭应答码时,确定所述待升级服务器未完成关闭应用程序。
示例性的,当接收到待升级服务器返回关闭应答码时,说明待升级服务器正在关闭应用程序中,因此可以确定待升级服务器未完成关闭应用程序。
示例性的,关闭应答码可以是503。
步骤S203、当未接收到所述待升级服务器返回所述关闭应答码时,确定所述待升级服务器完成关闭应用程序。
示例性的,当未接收到待升级服务器返回关闭应答码时,说明待升级服务器已经关闭应用程序,因此可以确定待升级服务器完成关闭应用程序。
可以理解的是,当待升级服务器完成关闭应用程序后,则无法与升级部署服务器进行通信连接,通信状态为网络超时;因此,无法接收到待升级服务器返回关闭应答码。
在一些实施方式中,当确定待升级服务器完成关闭应用程序时,需要记录待升级服务器的关闭完成时刻。例如,关闭完成时刻表示为T0。
在本申请实施例中,待升级服务器在关闭应用程序完成后根据升级数据包进行升级。示例性的,待升级服务器的升级过程,可以包括:提取预先存储的升级数据包,对升级数据包进行解压,得到解压后的数据包;执行解压后的数据包,以将解压后的数据包安装在待升级服务器中。
通过接收待升级服务器返回的关闭应答码,并检测待升级服务器是否完成关闭应用程序,可以在确定待升级服务器完成关闭应用程序时,记录待升级服务器的关闭完成时刻。
步骤S30、根据所述待升级服务器的升级状态信息判断所述待升级服务器是否升级成功,当确定所述待升级服务器升级成功时,则将升级成功后的所述待升级服务器添加至所述负载组件列表中。
请参阅图6,图6是步骤S30中根据待升级服务器的升级状态信息判断待升级服务器是否升级成功的子步骤的示意性流程图,具体可以包括以下步骤S301至步骤S304。
步骤S301、获取所述待升级服务器的关闭完成时刻以及历史升级时间,根据所述关闭完成时刻与所述历史升级时间确定所述待升级服务器的升级完成时刻。
示例性的,可以在检测到待升级服务器完成关闭应用程序时,记录待升级服务器的关闭完成时刻。例如,关闭完成时刻为T0。
示例性的,可以获取数据库存储的待升级服务器的历史升级时间。
在一些实施例中,在根据关闭完成时刻与历史升级时间确定待升级服务器的升级完成时刻,可以将关闭完成时刻T0与历史升级时间的最大值之和,确定为待升级服务器的升级完成时刻。其中,升级完成时刻可以表示为T1。
在另一些实施例中,可以将关闭完成时刻T0与历史升级时间的平均值之和,确定为待升级服务器的升级完成时刻T1。
通过获取待升级服务器的关闭完成时刻以及历史升级时间,可以根据关闭完成时刻与历史升级时间确定待升级服务器的升级完成时刻,后续可以基于升级完成时刻判断待升级服务器是否升级成功。
步骤S302、基于预设的健康检测接口,向所述待升级服务器发送检测指令,以使所述待升级服务器在升级完成后根据所述检测指令返回预设状态码。
需要说明的是,待升级服务器还可以对外提供健康检测接口,升级部署服务器可以通过健康检测接口检测待升级服务器是否完成升级。示例性的,健康检测接口可以表示为:Http://ip/checkHealth。
示例性的,升级状态信息可以包括预设状态码;例如,预设状态码可以是200。
请参阅图7,图7是本申请实施例提供的检测待升级服务器是否升级成功的交互示意图。如图7所示,可以基于预设的健康检测接口,向待升级服务器发送检测指令,以使待升级服务器在升级完成后根据检测指令返回预设状态码。
需要说明的是,在向待升级服务器发送检测指令,出现网络连接超时,则可以确定待升级服务器并未完成升级,因此接收不到待升级服务器返回的预设状态码。
步骤S303、当接收到所述待升级服务器返回所述预设状态码,确定所述待升级服务器升级成功。
示例性的,当接收到待升级服务器返回预设状态码200时,表示待升级服务器升级成功。
示例性的,当在升级完成时刻T1内接收到待升级服务器返回的预设状态码时,可以确定待升级服务器升级成功;
示例性的,当在到达升级完成时刻T1后且在预设等待时间内接收到待升级服务器返回的预设状态码时,可以确定待升级服务器升级成功。
其中,预设等待时间可以根据实际情况设定,具体数值在此不作限定。
步骤S304、当在到达所述升级完成时刻后且在预设等待时长内未收到所述待升级服务器返回所述预设状态码,确定所述待升级服务器升级失败。
示例性的,当在到达升级完成时刻T1后且在预设等待时间内未接收到待升级服务器返回的预设状态码时,可以确定待升级服务器升级失败。
通过基于预设的健康检测接口,向待升级服务器发送检测指令,可以根据待升级服务器是否返回预设状态码进行判断待升级服务器是否升级成功。
在一些实施例中,当确定待升级服务器升级成功时,则将升级成功后的待升级服务器添加至负载组件列表中。从而,使得完成升级后的待升级服务器可以接收服务调用请求。例如,接收浏览器或APP的服务调用请求。
通过将完成升级后的待升级服务器添加至负载组件列表中,可以使得完成升级后的待升级服务器继续接收服务调用请求,提高了微服务集群在升级过程中的可靠性和稳定性。
在一些实施例中,当确定待升级服务器升级成功之后,还可以包括:将数据库存储的备份数据包删除。在确定待升级服务器升级成功后,将待升级服务器对应的备份数据包删除,可以节省存储空间。
在一些实施例中,在确定待升级服务器升级失败之后,还可以包括:对升级失败的待升级服务器执行回滚操作,以使升级失败的待升级服务器恢复至升级前的状态。
需要说明的是,回滚操作是指程序或数据处理错误,将程序或数据恢复到上一次正确状态的操作。其中,回滚包括程序回滚和数据回滚等类型。
示例性的,执行回滚操作,可以包括:获取数据库或区块链存储的升级失败的待升级服务器对应的备份数据包;将备份数据包发送至待升级服务器中,以使待升级服务器根据备份数据包进行数据恢复或程序恢复。
通过执行回滚操作,可以使得升级失败的待升级服务器恢复至升级前的状态,从而保证微服务集群的可靠性和稳定性。
上述实施例提供的服务器升级方法,通过备份待升级服务器的应用数据包,可以在待升级服务器在升级失败后,根据备份的应用数据包恢复待升级服务器至升级前的状态;通过将待升级服务器从负载组件列表中删除,可以使得新的服务调用请求无法到达待升级服务器,从而可以避免在待升级服务器的升级过程中,出现服务调用请求的报错;通过向待升级服务器发送关闭应用程序指令,可以使得待升级服务器根据关闭应用程序指令在处理完待处理请求后进行关闭应用程序,达到优雅关机的效果,避免在未处理完待处理请求就关闭应用程序,导致出现服务报错;通过接收待升级服务器返回的关闭应答码,并检测待升级服务器是否完成关闭应用程序,可以在确定待升级服务器完成关闭应用程序时,记录待升级服务器的关闭完成时刻;通过获取待升级服务器的关闭完成时刻以及历史升级时间,可以根据关闭完成时刻与历史升级时间确定待升级服务器的升级完成时刻,后续可以基于升级完成时刻判断待升级服务器是否升级成功;通过基于预设的健康检测接口,向待升级服务器发送检测指令,可以根据待升级服务器是否返回预设状态码进行判断待升级服务器是否升级成功;通过将完成升级后的待升级服务器添加至负载组件列表中,可以使得完成升级后的待升级服务器继续接收服务调用请求,提高了微服务集群在升级过程中的可靠性和稳定性;通过执行回滚操作,可以使得升级失败的待升级服务器恢复至升级前的状态,从而保证微服务集群的可靠性和稳定性。
请参阅图8,图8是本申请实施例还提供一种服务器升级装置1000的示意性框图,该服务器升级装置用于执行前述的服务器升级方法。其中,该服务器升级装置可以配置于服务器。
如图8所示,该服务器升级装置1000,包括:待升级服务器确定模块1001、服务器升级模块1002和升级状态判断模块1003。
待升级服务器确定模块1001,用于根据升级请求确定微服务集群中的待升级服务器,并将所述待升级服务器从负载组件列表中删除,其中,所述负载组件列表包括至少一台当前可对外提供服务调用的服务器;
服务器升级模块1002,用于生成关闭应用程序指令,将所述关闭应用程序指令与预设的升级数据包发送至所述待升级服务器,以使所述待升级服务器根据所述关闭应用程序指令进行关闭应用程序并在关闭完成后根据所述升级数据包进行升级;
升级状态判断模块1003,用于根据所述待升级服务器的升级状态信息判断所述待升级服务器是否升级成功时,当确定所述待升级服务器升级成功,则将升级成功的所述待升级服务器添加至所述负载组件列表中。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。
请参阅图9,图9是本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器或终端。
请参阅图9,该计算机设备包括通过系统总线连接的处理器和存储器,其中,存储器可以包括非易失性存储介质和内存储器。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种服务器升级方法。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
根据升级请求确定微服务集群中的待升级服务器,并将所述待升级服务器从负载组件列表中删除,其中,所述负载组件列表包括至少一台当前可对外提供服务调用的服务器;生成关闭应用程序指令,将所述关闭应用程序指令与预设的升级数据包发送至所述待升级服务器,以使所述待升级服务器根据所述关闭应用程序指令进行关闭应用程序并在关闭完成后根据所述升级数据包进行升级;根据所述待升级服务器的升级状态信息判断所述待升级服务器是否升级成功,当确定所述待升级服务器升级成功时,则将升级成功后的所述待升级服务器添加至所述负载组件列表中。
在一个实施例中,所述处理器在实现根据所述升级请求确定微服务集群中的待升级服务器之前,还用于实现:
当接收到滚动发布请求时,根据所述滚动发布请求中的集群名称确定所述微服务集群;根据所述滚动发布请求生成所述升级请求。
在一个实施例中,所述处理器在实现根据所述升级请求确定微服务集群中的待升级服务器时,用于实现:
基于预设的均衡负载策略,根据所述升级请求依次将所述微服务集群中的服务器确定为所述待升级服务器。
在一个实施例中,所述处理器在实现根据所述升级请求确定微服务集群中的待升级服务器之后,还用于实现:
备份所述待升级服务器的应用数据包,将得到的备份数据包存储至本地数据库或区块链中。
在一个实施例中,所述处理器在实现将所述关闭应用程序指令与预设的升级数据包发送至所述待升级服务器之后,还用于实现:
接收所述待升级服务器返回的关闭应答码,并检测所述待升级服务器是否完成关闭应用程序;当确定所述待升级服务器完成关闭应用程序时,记录所述待升级服务器的关闭完成时刻。
在一个实施例中,所述处理器在实现检测所述待升级服务器是否完成关闭应用程序时,用于实现:
确定所述待升级服务器的等待关闭时长,在所述等待关闭时长内持续向所述待升级服务器发送关闭应用程序指令;当接收到所述待升级服务器返回所述关闭应答码时,确定所述待升级服务器未完成关闭应用程序;当未接收到所述待升级服务器返回所述关闭应答码时,确定所述待升级服务器完成关闭应用程序。
在一个实施例中,所述处理器在实现确定所述待升级服务器的等待关闭时长时,用于实现:
获取所述待升级服务器的待处理请求的个数,并确定所述待处理请求的处理时间;根据所述待处理请求对应的个数与处理时间,确定所述待升级服务器对应的等待关闭时长。
在一个实施例中,所述升级状态信息包括预设状态码;所述处理器在实现根据所述待升级服务器的升级状态信息判断所述待升级服务器是否升级成功时,用于实现:
获取所述待升级服务器的关闭完成时刻以及历史升级时间,根据所述关闭完成时刻与所述历史升级时间确定所述待升级服务器的升级完成时刻;基于预设的健康检测接口,向所述待升级服务器发送检测指令,以使所述待升级服务器在升级完成后根据所述检测指令返回预设状态码;当接收到所述待升级服务器返回所述预设状态码,确定所述待升级服务器升级成功;当在到达所述升级完成时刻后且在预设等待时长内未收到所述待升级服务器返回所述预设状态码,确定所述待升级服务器升级失败。
在一个实施例中,所述处理器在实现确定所述待升级服务器升级失败之后,还用于实现:
对升级失败的所述待升级服务器执行回滚操作,以使升级失败的所述待升级服务器恢复至升级前的状态。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项服务器升级方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字卡(Secure Digital Card,SD Card),闪存卡(Flash Card)等。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
- 服务器升级方法、装置、计算机设备和存储介质
- 网络设备升级方法、升级服务器、终端设备及存储介质