一种服务发布方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种服务发布方法、装置及电子设备。
背景技术
分布式集群(也称分布式系统)是由一组通过网络进行通信、相互协调工作以对外提供指定服务的多个分布式节点(以下简称节点)组成的系统。在实际应用中,常需要在分布式集群中发布替换版本的目标服务以替换原始版本的目标服务,例如,需要对分布式集群中已有的服务进行升级。在分布式集群中发布替换版本的目标服务的过程大致为:在分布式集群的节点中部署目标服务的替换版本,并将原本访问原始版本的目标服务的流量切换至替换版本的目标服务上,以及在流量切换的过程中,如果识别到替换版本的目标服务存在不能顺利处理流量的风险,则将流量又从替换版本切换回原始版本。其中,将流量从替换版本切换回原始版本的过程常被称为回滚。
现有的目标服务发布方法存在流量切换过程不够平缓、回滚时间长等缺陷,发布效果不理想,亟需改进。
发明内容
本申请实施例提供了一种服务发布方法、装置及电子设备,以改善在分布式集群中发布替换版本的目标服务的效果。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提出了一种服务发布方法,所述方法包括:
配置目标分布式集群中目标节点的比例,所述目标分布式集群的节点中部署有目标服务的原始版本和替换版本,且所述目标分布式集群中的一个节点提供所述原始版本的目标服务和所述替换版本的目标服务之一,所述目标节点为提供所述替换版本的目标服务的节点;
监控配置所述比例后的预设时段内,对包含所述比例目标节点的所述目标分布式集群中目标服务的调用结果;
在所述调用结果为正常时,配置增大所述比例,并继续监控所述预设时段内的所述调用结果,直至所述比例达到第一预设值;
在所述调用结果为异常时,将所述比例配置为零。
第二方面,提出了一种服务发布装置,所述装置包括:
比例配置模块,用于配置目标分布式集群中目标节点的比例,所述目标分布式集群的节点中部署有目标服务的原始版本和替换版本,且所述目标分布式集群中的一个节点提供所述原始版本的目标服务和所述替换版本的目标服务之一,所述目标节点为提供所述替换版本的目标服务的节点;
监控模块,用于监控配置所述比例后的预设时段内,对包含所述比例目标节点的所述目标分布式集群中目标服务的调用结果;
比例增大模块,用于在所述调用结果为正常时,配置增大所述比例,并继续监控所述预设时段内的所述调用结果,直至所述比例达到第一预设值;
回滚模块,用于在所述调用结果为异常时,将所述比例配置为零。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
配置目标分布式集群中目标节点的比例,所述目标分布式集群的节点中部署有目标服务的原始版本和替换版本,且所述目标分布式集群中的一个节点提供所述原始版本的目标服务和所述替换版本的目标服务之一,所述目标节点为提供所述替换版本的目标服务的节点;
监控配置所述比例后的预设时段内,对包含所述比例目标节点的所述目标分布式集群中目标服务的调用结果;
在所述调用结果为正常时,配置增大所述比例,并继续监控所述预设时段内的所述调用结果,直至所述比例达到第一预设值;
在所述调用结果为异常时,将所述比例配置为零。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
配置目标分布式集群中目标节点的比例,所述目标分布式集群的节点中部署有目标服务的原始版本和替换版本,且所述目标分布式集群中的一个节点提供所述原始版本的目标服务和所述替换版本的目标服务之一,所述目标节点为提供所述替换版本的目标服务的节点;
监控配置所述比例后的预设时段内,对包含所述比例目标节点的所述目标分布式集群中目标服务的调用结果;
在所述调用结果为正常时,配置增大所述比例,并继续监控所述预设时段内的所述调用结果,直至所述比例达到第一预设值;
在所述调用结果为异常时,将所述比例配置为零。
由以上本申请实施例提供的技术方案可见,本申请实施例提供的方案至少具备如下一种技术效果:一方面,由于是根据对包含目标节点的目标分布式集群中目标服务的调用结果,逐渐地提高目标节点的比例,其中目标节点为目标分布式集群中提供替换版本的目标服务的节点,因此,可以实现调用目标分布式系统中的目标服务的流量由原始版本平滑、缓慢地切换至替换版本的目的;另一方面,由于目标分布式集群中的节点中同时部署有目标服务的原始版本和替换版本,因此,通过将目标节点的比例配置为零,即可实现回滚,这种回滚方式耗时较短,回滚速度块,最终改善了替换版本的目标服务的发布效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本说明书实施例提供的服务发布方法的一种应用场景下的架构示意图。
图2是本说明书实施例提供的服务发布方法的流程示意图之一。
图3是本说明书实施例提供的服务发布方法的流程示意图之二。
图4是本说明书实施例提供的一种电子设备的结构示意图。
图5是本说明书实施例提供的服务发布装置的结构示意图之一。
图6是本说明书实施例提供的服务发布装置的结构示意图之二。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了改善服务发布效果,本说明书实施例提供一种服务发布方法及装置,该方法和装置可以应用于对分布式集群进行管理和控制的配置中心中,该配置中心在硬件上可以由终端设备或服务器实现。
首先,为了便于从整体上理解本说明书实施例提供的一种服务发布方案,下面先结合图1对本说明书实施例提供的服务发布方案在一种示例性地应用场景下的架构进行说明。
如图1所示,在一种应用场景下,本说明书实施例提供的服务发布方案的架构包括服务调用方11、配置中心12和目标分布式集群13。其中,服务调用方11可以包括一个或多个服务器,例如可以包括服务器1、服务器2、服务器3至服务器N;目标分布式集群中13可以包括多个分布式节点(以下简称节点),例如可以包括节点1、节点2、节点3至节点M。
在图1中,服务调用方11调用目标分布式集群13中的服务的过程大致为:①目标分布式集群13中的节点向配置中心12注册该节点中部署的目标服务的版本;②服务调用方11向配置中心12发送调用目标分布式集群13中的服务的调用请求;③配置中心12接收到所述调用请求之后,向服务调用方11反馈目标分布式集群13的节点列表,该节点列表中包含了目标分布式集群13的节点及该节点对应提供的服务的版本;④服务调用方11基于接收到的节点列表,确定目标分布式集群13中处理所述调用请求的处理节点,并将所述调用请求发送给目标分布式集群13中的所述处理节点,以使所述处理节点对所述调用请求进行处理。
在本说明书实施例中,在目标分布式集群中发布替换版本的目标服务的过程中,将原本调用原始版本的目标服务的流量切换至替换版本的目标服务的过程由配置中心控制,也即流量切换由配置中心控制。
需要说明的是,在本说明书实施例中,目标分布式集群可以是任何需要发布替换版本的目标服务以替换原始版本的目标服务的分布式集群。
在图1所示的架构的基础上,下面结合附图2至图3对本说明书实施例提供的一种服务发布方法进行详细的说明。
如图2所示,本说明书实施例提供的一种服务发布方法,可以应用于图1所示的配置中心,该方法可以包括如下步骤:
步骤202、配置目标分布式集群中目标节点的比例,所述目标分布式集群的节点中部署有目标服务的原始版本和替换版本,且所述目标分布式集群中的一个节点提供所述原始版本的目标服务和所述替换版本的目标服务之一,所述目标节点为提供所述替换版本的目标服务的节点。
在本说明书实施例中,可以在目标分布式系统中的节点中同时部署目标服务的原始版本和替换版本,部署后,目标分布式系统中的节点可以通过图1中的步骤①向配置中心注册该节点中已部署的目标服务的版本。这样做的好处在于,配置中心可以选择控制目标分布式集群中的节点提供哪个版本的目标服务,而不需要目标分布式集群中的节点通过部署一个版本下线另一个版本来控制该节点对外提供哪个版本的服务。例如,不需要目标分布式集群中的节点部署替换版本的目标服务并下线原始版本的目标服务,以对外提供替换版本的目标服务;再如,也不需要目标分布式集群中的节点下线替换版本的目标服务并重新部署原始版本的目标服务,以重新对外提供原始版本的目标服务。
在本说明书实施例中,原始版本的目标服务可以是某一服务的低级版本,相应的替换版本的目标服务可以该服务的升级版本;或者,原始版本的服务可以第一服务,而替换版本的目标服务可以是第二服务,第一服务与第二服务不同,这种场景针对是需要将目标分布式集群中的第一服务替换为第二服务,并且将原先访问第一服务的流量切换至第二服务的场景。
在第一个例子中,结合图1可知,在分布式集群13中的节点通过步骤①向配置中心12注册完该节点中部署的替换版本的目标服务和原始版本的目标服务之后,服务调用方11通过步骤②向配置中心12发送目标服务的调用请求之前,也即在将原本访问原始版本的目标服务的流量切换至替换版本的目标服务之前,步骤202所要实现的内容可以包括:将目标分布式集群中目标节点的比例配置为零。
在第二个例子中,如果当前时刻目标分布式集群中目标节点的比例大于零,也即已经开始将原本访问原始版本的目标服务的流量切换至替换版本的目标服务,且流量切换过程中未出现异常情况,则步骤202所要实现的内容可以包括:基于当前时刻与目标时刻之间的时间间隔,配置增大所述比例。具体的,可以在所述时间间隔增大预设步长时,将所述比例增大第二预设值。例如,可以在所述时间间隔每增大30min时,将所述比例增大10%。其中,第二预设值小于第一预设值。
进一步地,参考图1可知,在上述两个例子的基础上,步骤202还可以包括:将包含所述比例的目标节点的目标分布式系统的节点列表,反馈给调用目标分布式集群中的目标服务的服务调用方,以使所述服务调用方基于该节点列表确定目标分布式集群中处理来自该服务调用方的调用请求的处理节点。
步骤204、监控配置所述比例后的预设时段内,对包含所述比例目标节点的所述目标分布式集群中目标服务的调用结果。
其中,预设时段的长度可以任意设置,本说明书实施例对此不做限制。
作为一个例子,步骤204可以包括如下子步骤:
子步骤1、在所述预设时段内,接收来自服务调用方的针对所述目标分布式集群中目标服务的调用请求。
子步骤2、向所述服务调用方反馈所述目标分布式集群的节点列表,所述节点列表中包含所述比例的目标节点,所述节点列表用于所述服务调用方确定所述目标分布式集群中处理所述调用请求的处理节点。
其中,服务调用方可以基于接收到的节点列表,随机选择目标分布式集群中的一个节点作为处理所述调用请求的处理节点,并通过图1中的步骤④将调用请求发送给该处理节点,以对该调用请求对应的业务进行处理。
例如,假设目标分布式集群中包含10个节点,其中目标节点的比例为10%,则配置中心可以向服务调用方反馈如表1所示的一个节点列表。
表1
节点标识 |
对外提供的服务 |
1 |
替换版本的目标服务 |
2 |
原始版本的目标服务 |
3 |
原始版本的目标服务 |
4 |
原始版本的目标服务 |
5 |
原始版本的目标服务 |
6 |
原始版本的目标服务 |
7 |
原始版本的目标服务 |
8 |
原始版本的目标服务 |
9 |
原始版本的目标服务 |
10 |
原始版本的目标服务 |
可以理解,虽然服务调用方是随机地从配置中心反馈的节点列表中选择处理目标服务的调用请求的处理节点,但是,在本说明书实施例中,随着替换版本的目标服务的发布进程的推移,节点列表中目标节点的比例是不断增加的,这使得随着发布进程的推移,服务调用方从节点列表中选择目标节点作为处理节点的概率不断增大,进而可以实现流量的缓慢切换,直至切换完毕。
子步骤3、监控所述处理节点对所述调用请求的处理结果。
一般情况,该处理结果可以为是否成功处理所述调用请求对应的业务的信息。
子步骤4、基于所述处理结果确定所述调用结果。
如果所述处理结果为是否成功处理所述调用请求对应的业务的信息,则在所述处理结果为成功处理所述调用请求对应的业务的信息时,确定所述调用结果为正常;在所述处理结果为处理所述调用请求对应的业务失败的信息时,确定所述调用结果为异常。
步骤206、在所述调用结果为正常时,配置增大所述比例,并继续监控所述预设时段内的所述调用结果,直至所述比例达到第一预设值。
其中,第一预设值通常为100%,也即当目标分布式集群中目标节点的比例达到100%时,说明已经完成了流量切换,在目标分布式系统中发布目标服务的过程已经完成。
与步骤202中所举的第二个例子类似,在步骤206中,所述配置增大所述比例可以包括:基于当前时刻与目标时刻之间的时间间隔,配置增大所述比例。其中,所述比例与所述时间间隔正相关,所述目标时刻为将所述比例配置为零的时刻。
更进一步地,基于当前时刻与目标时刻之间的时间间隔,配置增大所述比例可以包括:所述时间间隔每增大预设步长,将所述比例增大第二预设值。例如,可以在所述时间间隔每增大30min时,将所述比例增大10%。其中,第二预设值小于第一预设值。
可以理解,第二预设值越小,配置中心配置的目标分布式集群中目标节点的比例增大的幅度越小,使得切流过程越平缓。
且在步骤206中,配置增大所述比例,并继续监控所述预设时段内的所述调用结果,直至所述比例达到第一预设值,可以理解为是不断循环执行步骤204,直至所述比例达到第一预设值。
步骤208、在所述调用结果为异常时,将所述比例配置为零。
可以理解,将目标分布式集群中的目标节点的比例配置为零,意味着将目标分布式集群中的节点全部配置为提供原始版本的目标服务,其目的在于,当将原本访问原始版本的目标服务的流量切换至替换版本的目标服务出现异常时,快速地切换回原始版本的目标服务,也即快速地实现本说明书背景技术所说的回滚。
本说明书实施例提供的一种服务发布方法,一方面,由于是根据对包含目标节点的目标分布式集群中目标服务的调用结果,逐渐地提高目标节点的比例,其中目标节点为目标分布式集群中提供替换版本的目标服务的节点,因此,可以实现调用目标分布式系统中的目标服务的流量由原始版本平滑、缓慢地切换至替换版本的目的;另一方面,由于目标分布式集群中的节点中同时部署有目标服务的原始版本和替换版本,因此,通过将目标节点的比例配置为零,即可实现回滚,这种回滚方式耗时较短,回滚速度块,最终改善了替换版本的目标服务的发布效果。
此外,与相关技术中的服务发布方法相比,本说明书实施例提供的一种服务发布方法在服务发布的过程中,由于目标分布式集群中的节点中同时部署有目标服务的原始版本和替换版本,使得目标分布式集群中的所有节点都处于可调用状态,不存在部分节点空闲或停机的情况(例如在蓝绿发布中,部分节点处于不提供服务的空闲状态),因此,不存在节点资源浪费的情况,资源利用率高。
可选地,在另一实施例中,如图3所示,本说明书实施例提供的一种服务发布方法还可以包括如下步骤:
步骤210、在所述比例达到第一预设值,且所述调用结果为正常时,确定完成所述替换版本的目标服务在所述目标分布式集群中的发布。
其中,第一预设值为100%。
步骤210旨在说明,当目标分布式集群中目标节点的比例达到100%,且达到100%后的预设时段内,监控得到的所述调用结果为正常,则可以确定流量切换完毕,完成所述替换版本的目标服务在所述目标分布式集群中的发布。
可选地,在又一实施例中,如图3所示,在上述步骤210之后,本说明书实施例提供的一种服务发布方法,还可以包括:
步骤212、在确定完成所述替换版本的目标服务在所述目标分布式集群中的发布之后,向所述目标分布式集群的节点发送提示信息,所述提示信息用于提示所述目标分布式集群的节点下线所述原始版本的目标服务。
通过本实施例,可以在替换版本的目标服务发布完成之后,下线目标分布式集群的节点中部署的原始版本的目标服务,保留替换版本的目标服务,这可以节省目标分布式集群中的节点资源。
以上是对本说明书提供一种服务发布方法的说明,下面对本说明书提供的电子设备进行介绍。
图4是本说明书的一个实施例提供的电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成服务发布装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
配置目标分布式集群中目标节点的比例,所述目标分布式集群的节点中部署有目标服务的原始版本和替换版本,且所述目标分布式集群中的一个节点提供所述原始版本的目标服务和所述替换版本的目标服务之一,所述目标节点为提供所述替换版本的目标服务的节点;
监控配置所述比例后的预设时段内,对包含所述比例目标节点的所述目标分布式集群中目标服务的调用结果;
在所述调用结果为正常时,配置增大所述比例,并继续监控所述预设时段内的所述调用结果,直至所述比例达到第一预设值;
在所述调用结果为异常时,将所述比例配置为零。
上述如本说明书图2-3所示实施例揭示的服务发布方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图2-3的服务发布方法,本说明书在此不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2-3所示实施例的方法,并具体用于执行以下操作:
配置目标分布式集群中目标节点的比例,所述目标分布式集群的节点中部署有目标服务的原始版本和替换版本,且所述目标分布式集群中的一个节点提供所述原始版本的目标服务和所述替换版本的目标服务之一,所述目标节点为提供所述替换版本的目标服务的节点;
监控配置所述比例后的预设时段内,对包含所述比例目标节点的所述目标分布式集群中目标服务的调用结果;
在所述调用结果为正常时,配置增大所述比例,并继续监控所述预设时段内的所述调用结果,直至所述比例达到第一预设值;
在所述调用结果为异常时,将所述比例配置为零。
下面对本说明书提供的一种服务发布装置进行说明。
图5是本说明书提供的服务发布装置500的结构示意图。请参考图5,在一种软件实施方式中,服务发布装置500可包括:比例配置模块501、监控模块502、比例增大模块503和回滚模块504。
比例配置模块501,用于配置目标分布式集群中目标节点的比例,所述目标分布式集群的节点中部署有目标服务的原始版本和替换版本,且所述目标分布式集群中的一个节点提供所述原始版本的目标服务和所述替换版本的目标服务之一,所述目标节点为提供所述替换版本的目标服务的节点。
在第一个例子中,在将原本访问原始版本的目标服务的流量切换至替换版本的目标服务之前,比例配置模块501可用于:将目标分布式集群中目标节点的比例配置为零。
在第二个例子中,如果当前时刻目标分布式集群中目标节点的比例大于零,也即已经开始将原本访问原始版本的目标服务的流量切换至替换版本的目标服务,且流量切换过程中未出现异常情况,则比例配置模块501可用于:基于当前时刻与目标时刻之间的时间间隔,配置增大所述比例。具体的,可以在所述时间间隔增大预设步长时,将所述比例增大第二预设值。
进一步地,在上述两个例子的基础上,比例配置模块501还可用于:将包含所述比例的目标节点的目标分布式系统的节点列表,反馈给调用目标分布式集群中的目标服务的服务调用方,以使所述服务调用方基于该节点列表确定目标分布式集群中处理来自该服务调用方的调用请求的处理节点。
监控模块502,用于监控配置所述比例后的预设时段内,对包含所述比例目标节点的所述目标分布式集群中目标服务的调用结果。
其中,预设时段的长度可以任意设置,本说明书实施例对此不做限制。
作为一个例子,监控模块502可以包括:请求接收子模块、节点列表反馈子模块、监控子模块和调用结果确定子模块。
请求接收子模块,用于在所述预设时段内,接收来自服务调用方的针对所述目标分布式集群中目标服务的调用请求。
节点列表反馈子模块,用于向所述服务调用方反馈所述目标分布式集群的节点列表,所述节点列表中包含所述比例的目标节点,所述节点列表用于所述服务调用方确定所述目标分布式集群中处理所述调用请求的处理节点。
其中,服务调用方可以基于接收到的节点列表,随机选择目标分布式集群中的一个节点作为处理所述调用请求的处理节点,并通过图1中的步骤④将调用请求发送给该处理节点,以对该调用请求对应的业务进行处理。
可以理解,虽然服务调用方是随机地从配置中心反馈的节点列表中选择处理目标服务的调用请求的处理节点,但是,在本说明书实施例中,随着替换版本的目标服务的发布进程的推移,节点列表中目标节点的比例是不断增加的,这使得随着发布进程的推移,服务调用方从节点列表中选择目标节点作为处理节点的概率不断增大,进而可以实现流量的缓慢切换,直至切换完毕。
监控子模块,用于监控所述处理节点对所述调用请求的处理结果。
一般情况,该处理结果可以为是否成功处理所述调用请求对应的业务的信息。
调用结果确定子模块,用于基于所述处理结果确定所述调用结果。
如果所述处理结果为是否成功处理所述调用请求对应的业务的信息,则在所述处理结果为成功处理所述调用请求对应的业务的信息时,确定所述调用结果为正常;在所述处理结果为处理所述调用请求对应的业务失败的信息时,确定所述调用结果为异常。
比例增大模块503,用于在所述调用结果为正常时,配置增大所述比例,并继续监控所述预设时段内的所述调用结果,直至所述比例达到第一预设值。
其中,第一预设值通常为100%,也即当目标分布式集群中目标节点的比例达到100%时,说明已经完成了流量切换,在目标分布式系统中发布目标服务的过程已经完成。
作为一个例子,比例增大模块503可以用于:基于当前时刻与目标时刻之间的时间间隔,配置增大所述比例。其中,所述比例与所述时间间隔正相关,所述目标时刻为将所述比例配置为零的时刻。
更进一步地,基于当前时刻与目标时刻之间的时间间隔,配置增大所述比例可以包括:所述时间间隔每增大预设步长,将所述比例增大第二预设值。
回滚模块504,用于在所述调用结果为异常时,将所述比例配置为零。
可以理解,将目标分布式集群中的目标节点的比例配置为零,意味着将目标分布式集群中的节点全部配置为提供原始版本的目标服务,其目的在于,当将原本访问原始版本的目标服务的流量切换至替换版本的目标服务出现异常时,快速地切换回原始版本的目标服务,也即快速地实现本说明书背景技术所说的回滚。
本说明书实施例提供的一种服务发布装置500,一方面,由于是根据对包含目标节点的目标分布式集群中目标服务的调用结果,逐渐地提高目标节点的比例,其中目标节点为目标分布式集群中提供替换版本的目标服务的节点,因此,可以实现调用目标分布式系统中的目标服务的流量由原始版本平滑、缓慢地切换至替换版本的目的;另一方面,由于目标分布式集群中的节点中同时部署有目标服务的原始版本和替换版本,因此,通过将目标节点的比例配置为零,即可实现回滚,这种回滚方式耗时较短,回滚速度块,最终改善了替换版本的目标服务的发布效果。
此外,与相关技术中的服务发布方案相比,本说明书实施例提供的一种服务发布装置500在服务发布的过程中,由于目标分布式集群中的节点中同时部署有目标服务的原始版本和替换版本,使得目标分布式集群中的所有节点都处于可调用状态,不存在部分节点空闲或停机的情况(例如在蓝绿发布中部分节点处于不提供服务的空闲状态),因此,不存在节点资源浪费的情况,资源利用率高。
可选地,在另一实施例中,如图6所示,本说明书实施例提供的一种服务发布装置500还可以包括:确定模块505。
确定模块505,用于在所述比例达到第一预设值,且所述调用结果为正常时,确定完成所述替换版本的目标服务在所述目标分布式集群中的发布。
其中,第一预设值为100%。
该实例旨在说明,当目标分布式集群中目标节点的比例达到100%,且达到100%后的预设时段内,监控得到的所述调用结果为正常,则可以确定流量切换完毕,完成所述替换版本的目标服务在所述目标分布式集群中的发布。
可选地,在又一实施例中,如图6所示,本说明书实施例提供的一种服务发布装置500还可以包括:提示模块506。
提示模块506,用于在确定完成所述替换版本的目标服务在所述目标分布式集群中的发布之后,向所述目标分布式集群的节点发送提示信息,所述提示信息用于提示所述目标分布式集群的节点下线所述原始版本的目标服务。
通过本实施例,可以在替换版本的目标服务发布完成之后,下线目标分布式集群的节点中部署的原始版本的目标服务,保留替换版本的目标服务,这可以节省目标分布式集群中的节点资源。
需要说明的是,服务发布装置500能够实现图2-3的方法实施例的方法,具体可参考图2-3所示实施例的服务发布方法,不再赘述。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。