微服务灰度发布方法及装置

文档序号:1963494 发布日期:2021-12-14 浏览:21次 >En<

阅读说明:本技术 微服务灰度发布方法及装置 (Micro-service gray level publishing method and device ) 是由 秦小飞 郭剑霓 曾琳铖曦 吴海英 蒋宁 于 2021-09-17 设计创作,主要内容包括:本申请公开一种微服务灰度发布方法及装置,涉及互联网技术领域。本申请的方法包括:接收目标客户端发送的微服务使用请求,其中,所述微服务使用请求中包含所述目标客户端对应的客户端信息;根据预置规则和所述客户端信息确定所述微服务使用请求对应的目标请求标签;根据所述目标请求标签确定所述微服务使用请求对应的目标实例标签,并根据所述目标实例标签确定所述微服务使用请求对应的目标服务器;将所述微服务使用请求转发至所述目标服务器。(The application discloses a micro-service gray scale publishing method and device, and relates to the technical field of internet. The method of the present application comprises: receiving a micro-service using request sent by a target client, wherein the micro-service using request comprises client information corresponding to the target client; determining a target request label corresponding to the micro-service use request according to a preset rule and the client information; determining a target instance label corresponding to the micro-service using request according to the target request label, and determining a target server corresponding to the micro-service using request according to the target instance label; forwarding the micro-service usage request to the target server.)

微服务灰度发布方法及装置

技术领域

本申请涉及云计算技术领域,尤其涉及一种微服务灰度发布方法及装置。

背景技术

目前,在对微服务应用进行版本更新时,通常采用灰度发布的方式进行更新,其具体过程为:服务器集群中的部分服务器运行新版本微服务实例(即灰度微服务实例),部分服务器运行老版本微服务实例(即正常微服务实例);服务器集群在接收到客户端发送的微服务使用请求,确定允许客户端使用正常微服务应用,还是使用灰度微服务应用,即确定是将接收到的微服务使用请求转发至运行正常微服务实例的服务器中,还是将接收到的微服务使用请求转发至运行灰度微服务实例的服务器中。

其中,在采用灰度发布的方式对微服务应用进行版本更新的过程中,如何合理地转发微服务使用请求是至关重要的。

发明内容

本申请实施例提供一种微服务灰度发布方法及装置,主要目的在于在采用灰度发布的方式对微服务应用进行版本更新的过程中,合理地转发微服务使用请求。

为解决上述技术问题,本申请实施例提供如下技术方案:

第一方面,本申请提供了一种微服务灰度发布方法,该方法包括:

接收目标客户端发送的微服务使用请求,其中,所述微服务使用请求中包含所述目标客户端对应的客户端信息;

根据预置规则和所述客户端信息确定所述微服务使用请求对应的目标请求标签;

根据所述目标请求标签确定所述微服务使用请求对应的目标实例标签,并根据所述目标实例标签确定所述微服务使用请求对应的目标服务器;

将所述微服务使用请求转发至所述目标服务器。

可选的,在所述接收目标客户端发送的微服务使用请求之前,所述方法包括:

设置每个版本微服务实例对应的实例标签,并设置每个所述实例标签对应的请求标签;

将每个所述实例标签与其对应的请求标签之间的映射关系存储至本地存储空间中;

所述根据所述目标请求标签确定所述微服务使用请求对应的目标实例标签,包括:

根据所述映射关系和所述目标请求标签确定所述微服务使用请求对应的目标实例标签。

可选的,所述根据所述目标实例标签确定所述微服务使用请求对应的目标服务器,包括:

在微服务注册中心处获取服务器集群中每个服务器对应的服务器信息,其中,所述服务器信息包括:所述服务器对应的元数据;

根据每个所述服务器对应的元数据确定每个所述服务器运行的微服务实例;

根据所述目标实例标签和每个所述服务器运行的微服务实例,在多个所述服务器中选取所述目标服务器。

可选的,所述服务器对应的服务器信息还包括:所述服务器对应的IP地址和端口号;所述将所述微服务使用请求转发至所述目标服务器,包括:

根据所述目标服务器对应的IP地址和端口号,将所述微服务使用请求转发至所述目标服务器。

可选的,所述客户端信息为:所述目标客户端对应的唯一身份标识,所述预置规则具体为:根据多个所述请求标签和所述唯一身份标识的第N位数字,确定所述微服务使用请求对应的目标请求标签,其中,N为小于或等于所述唯一身份标识包含数字个数的正整数。

可选的,所述客户端信息为:所述目标客户端对应的IP地址,所述预置规则具体为:根据多个所述请求标签和所述IP地址的第M位数字,确定所述微服务使用请求对应的目标请求标签,其中,M为小于或等于所述IP地址包含数字个数的正整数。

可选的,所述客户端信息为:所述目标客户端对应的用户名称,所述预置规则具体为:根据多个所述请求标签和所述用户名称包含字符的个数,确定所述微服务使用请求对应的目标请求标签。

第二方面,本申请还提供一种微服务灰度发布装置,该装置包括:

接收单元,用于接收目标客户端发送的微服务使用请求,其中,所述微服务使用请求中包含所述目标客户端对应的客户端信息;

第一确定单元,用于根据预置规则和所述客户端信息确定所述微服务使用请求对应的目标请求标签;

第二确定单元,用于根据所述目标请求标签确定所述微服务使用请求对应的目标实例标签;

第三确定单元,用于根据所述目标实例标签确定所述微服务使用请求对应的目标服务器;

转发单元,用于将所述微服务使用请求转发至所述目标服务器。

可选的,所述装置还包括:

设置单元,用于在所述接收单元接收目标客户端发送的微服务使用请求之前,设置每个版本微服务实例对应的实例标签,并设置每个所述实例标签对应的请求标签;

存储单元,用于将每个所述实例标签与其对应的请求标签之间的映射关系存储至本地存储空间中;

所述第二确定单元,具体用于根据所述映射关系和所述目标请求标签确定所述微服务使用请求对应的目标实例标签。

可选的,所述第三确定单元包括:

获取模块,用于在微服务注册中心处获取服务器集群中每个服务器对应的服务器信息,其中,所述服务器信息包括:所述服务器对应的元数据;

确定模块,用于根据每个所述服务器对应的元数据确定每个所述服务器运行的微服务实例;

选取模块,用于根据所述目标实例标签和每个所述服务器运行的微服务实例,在多个所述服务器中选取所述目标服务器。

可选的,所述服务器对应的服务器信息还包括:所述服务器对应的IP地址和端口号;

所述转发单元,具体用于根据所述目标服务器对应的IP地址和端口号,将所述微服务使用请求转发至所述目标服务器。

可选的,所述客户端信息为:所述目标客户端对应的唯一身份标识,所述预置规则具体为:根据多个所述请求标签和所述唯一身份标识的第N位数字,确定所述微服务使用请求对应的目标请求标签,其中,N为小于或等于所述唯一身份标识包含数字个数的正整数。

可选的,所述客户端信息为:所述目标客户端对应的IP地址,所述预置规则具体为:根据多个所述请求标签和所述IP地址的第M位数字,确定所述微服务使用请求对应的目标请求标签,其中,M为小于或等于所述IP地址包含数字个数的正整数。

可选的,所述客户端信息为:所述目标客户端对应的用户名称,所述预置规则具体为:根据多个所述请求标签和所述用户名称包含字符的个数,确定所述微服务使用请求对应的目标请求标签。

第三方面,本申请的实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面所述的微服务灰度发布方法。

第四方面,本申请的实施例提供了一种微服务灰度发布装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行第一方面所述的微服务灰度发布方法。

借由上述技术方案,本申请提供的技术方案至少具有下列优点:

本申请提供一种微服务灰度发布方法及装置,本申请能够在接收得到目标客户端发送的微服务使用请求后,根据预置规则和微服务使用请求包含的、目标客户端对应的客户端信息,确定微服务使用请求对应的目标请求标签;再根据微服务使用请求对应的目标请求标签和预先记录的每个实例标签与其对应的请求标签之间的映射关系,确定微服务使用请求对应的目标实例标签,并将运行目标实例标签对应微服务实例的服务器确定为目标服务器;最后,将微服务使用请求转发至目标服务器,从而使得目标客户端可以使用目标服务器中运行的微服务实例。由于,在本申请中,可以根据预置规则和目标客户端对应的客户端信息,合理地为目标客户端发送的微服务使用请求分配请求标签,并基于为微服务使用请求分配的请求标签,将微服务使用请求转发至相应的服务器中,因此,在采用灰度发布的方式对微服务应用进行版本更新的过程中,可以合理地转发微服务使用请求。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的

具体实施方式

附图说明

通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,相同或对应的标号表示相同或对应的部分,其中:

图1示出了本申请实施例提供的一种微服务灰度发布方法流程图;

图2示出了本申请实施例提供的另一种微服务灰度发布方法流程图;

图3示出了本申请实施例提供的一种服务器集群的架构示意图;

图4示出了本申请实施例提供的一种ALB程序转发微服务使用请求的流程图;

图5示出了本申请实施例提供的一种微服务灰度发布装置的组成框图;

图6示出了本申请实施例提供的另一种微服务灰度发布装置的组成框图。

具体实施方式

下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。

在相关技术中,当采用灰度发布的方式对微服务应用进行版本更新时,通常通过以下两种方式确定如何转发客户端的微服务使用请求:(1)预先在客户端中部署一段代码,由这段代码确定该客户端发送的微服务使用请求应该转发至运行正常微服务实例的服务器中,还是转发至运行灰度微服务实例的服务器中;(2)由服务器集群的网关确定接收到的微服务使用请求应该转发至运行正常微服务实例的服务器中,还是转发至运行灰度微服务实例的服务器中。

然而,(1)在客户端中部署这段代码,对客户端的原有业务代码具有侵入性,会提升客户端代码的复杂度;(2)服务器集群的网关控制转发微服务使用请求的控制粒度较粗,转发灵活性较低。

鉴于相关技术中两种转发微服务使用请求方式存在的问题,本申请实施例提供一种微服务灰度发布方法,如图1所示,该方法包括:

101、接收目标客户端发送的微服务使用请求。

其中,目标客户端为需要使用微服务应用的客户端,目标客户端发送的微服务使用请求中包含目标客户端对应的客户端信息,目标客户端对应的客户端信息可以但不限于包括:目标客户端对应的唯一身份标识、IP地址和用户名称等信息中的任意一种;其中,本发明实施例中,各个步骤中的执行主体为ALB(Application Load Balancer,应用程序负载均衡器)程序,ALB程序具有网络转发功能。

在本申请实施例中,当目标客户端需要使用微服务应用时,便会向ALB程序发送包含自身客户端信息的微服务使用请求,此时,ALB程序便能接收得到目标客户端发送的微服务使用请求。

102、根据预置规则和客户端信息确定微服务使用请求对应的目标请求标签。

其中,目标客户端发送的微服务使用请求对应的目标请求标签用于唯一标识该微服务使用请求,预置规则具体根据微服务应用对应的实例版本数量确定,例如,微服务应用包含三个版本的实例:正常微服务实例、灰度微服务实例A和灰度微服务实例B,先设置每个微服务实例对应的实例标签,即设置正常微服务实例对应的实例标签为实例标签a,设置灰度微服务实例A对应的实例标签为实例标签b,以及设置灰度微服务实例B对应的实例标签为实例标签c,再设置每个实例标签对应的请求标签,即设置实例标签a对应的请求标签为请求标签a,设置实例标签b对应的请求标签为请求标签b,以及设置实例标签c对应的请求标签为请求标签c;当微服务使用请求中包含的客户端信息为目标客户端对应的唯一身份标识时,预置规则具体可以设置为:当目标客户端对应的唯一身份标识的最后一位大于等于0、且小于3时,将请求标签a确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的最后一位大于等于3、且小于6时,将请求标签b确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的最后一位大于等于6、且小于等于9时,将请求标签c确定为微服务使用请求对应的目标请求标签。

在本申请实施例中,ALB程序在接收得到目标客户端发送的微服务使用请求后,便可根据预置规则和目标客户端对应的客户端信息确定微服务使用请求对应的目标请求标签。

103、根据目标请求标签确定微服务使用请求对应的目标实例标签,并根据目标实例标签确定微服务使用请求对应的目标服务器。

在本申请实施例中,由于,ALB程序是先设置微服务应用的每个版本微服务实例对应的实例标签,再设置每个实例标签对应的请求标签,因此,ALB程序记录有每个实例标签与其对应的请求标签之间的映射关系,从而使得ALB程序在确定微服务使用请求对应的目标请求标签后,根据微服务使用请求对应的目标请求标签和记录的映射关系便可确定微服务使用请求对应的目标实例标签,其中,多个请求标签分别用于唯一标识包含有不同客户端信息的微服务使用请求,任意一个版本微服务实例对应的实例标签用于唯一标识该版本微服务实例;并且,由于,实例标签用于标识微服务实例,因此,根据微服务使用请求对应的目标实例标签,便可确定微服务使用请求对应的目标服务器,即将运行目标实例标签对应微服务实例的服务器确定为目标服务器。

104、将微服务使用请求转发至目标服务器。

在本申请实施例中,ALB程序在确定微服务使用请求对应的目标服务器后,便可将微服务使用请求转发至目标服务器,从而使得目标客户端可以使用目标服务器中运行的微服务实例。

本申请实施例提供一种微服务灰度发布方法,本申请实施例能够在ALB程序接收得到目标客户端发送的微服务使用请求后,由ALB程序根据预置规则和微服务使用请求包含的、目标客户端对应的客户端信息,确定微服务使用请求对应的目标请求标签;再根据微服务使用请求对应的目标请求标签和预先记录的每个实例标签与其对应的请求标签之间的映射关系,确定微服务使用请求对应的目标实例标签,并将运行目标实例标签对应微服务实例的服务器确定为目标服务器;最后,将微服务使用请求转发至目标服务器,从而使得目标客户端可以使用目标服务器中运行的微服务实例。由于,在本申请实施例中,ALB程序可以根据预置规则和目标客户端对应的客户端信息,合理地为目标客户端发送的微服务使用请求分配请求标签,并基于为微服务使用请求分配的请求标签,将微服务使用请求转发至相应的服务器中,因此,在采用灰度发布的方式对微服务应用进行版本更新的过程中,ALB程序可以合理地转发微服务使用请求。

以下为了更加详细地说明,本申请实施例提供了另一种微服务灰度发布方法,具体如图2所示,该方法包括:

201、设置每个版本微服务实例对应的实例标签,并设置每个实例标签对应的请求标签,以及将每个实例标签与其对应的请求标签之间的映射关系存储至本地存储空间中。

在本申请实施例中,AL B程序需要预先设置微服务应用的每个版本微服务实例对应的实例标签,再设置每个实例标签对应的请求标签,以及将每个实例标签与其对应的请求标签之间的映射关系存储至本地存储空间中,以便后续在接收得到目标客户端发送的微服务使用请求后,根据预置规则为其分配请求标签,再根据存储的映射关系,确定微服务使用请求对应的实例标签,即确定目标客户端可以使用哪个版本的微服务实例。

202、接收目标客户端发送的微服务使用请求。

其中,关于步骤202、接收目标客户端发送的微服务使用请求,可以参考图1对应部分的描述,本发明实施例此处将不再赘述。

203、根据预置规则和客户端信息确定微服务使用请求对应的目标请求标签。

在本申请实施例中,ALB程序在接收得到目标客户端发送的微服务使用请求后,便可根据预置规则和目标客户端对应的客户端信息确定微服务使用请求对应的目标请求标签。

其中,当微服务使用请求中包含的客户端信息为目标客户端对应的唯一身份标识时,预置规则具体为:根据预先设置的多个请求标签和目标客户端对应的唯一身份标识的第N位数字,确定微服务使用请求对应的目标请求标签,其中,N为小于或等于唯一身份标识包含数字个数的正整数;当微服务使用请求中包含的客户端信息为目标客户端对应的IP地址时,预置规则具体为:根据预先设置的多个请求标签和目标客户端对应的IP地址的第M位数字,确定微服务使用请求对应的目标请求标签,其中,M为小于或等于IP地址包含数字个数的正整数;当微服务使用请求中包含的客户端信息为目标客户端对应的用户名称时,预置规则具体为:根据预先设置的多个请求标签和目标客户端对应的用户名称包含字符的个数,确定微服务使用请求对应的目标请求标签。

例如,微服务应用包含四个版本的实例:正常微服务实例、灰度微服务实例A、灰度微服务实例B和灰度微服务实例C,先设置每个微服务实例对应的实例标签,即设置正常微服务实例对应的实例标签为实例标签a,设置灰度微服务实例A对应的实例标签为实例标签b,设置灰度微服务实例B对应的实例标签为实例标签c,以及设置灰度微服务实例C对应的实例标签为实例标签d,再设置每个实例标签对应的请求标签,即设置实例标签a对应的请求标签为请求标签a,设置实例标签b对应的请求标签为请求标签b,设置实例标签c对应的请求标签为请求标签c,以及设置实例标签d对应的请求标签为请求标签d;

当微服务使用请求中包含的客户端信息为目标客户端对应的唯一身份标识时,预置规则可以设置为:当目标客户端对应的唯一身份标识的最后一位大于等于0、且小于2时,将请求标签a确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的最后一位大于等于2、且小于5时,将请求标签b确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的最后一位大于等于5、且小于7时,将请求标签c确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的最后一位大于等于7、且小于等于9时,将请求标签d确定为微服务使用请求对应的目标请求标签,预置规则还可以设置为:当目标客户端对应的唯一身份标识的第三位大于等于0、且小于2时,将请求标签a确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的第三位大于等于2、且小于5时,将请求标签b确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的第三位大于等于5、且小于7时,将请求标签c确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的第三位大于等于7、且小于等于9时,将请求标签d确定为微服务使用请求对应的目标请求标签;

当微服务使用请求中包含的客户端信息为目标客户端对应的IP地址时,预置规则可以设置为:当目标客户端对应的IP地址的最后一位大于等于0、且小于2时,将请求标签a确定为微服务使用请求对应的目标请求标签,当目标客户端对应的IP地址的最后一位大于等于2、且小于5时,将请求标签b确定为微服务使用请求对应的目标请求标签,当目标客户端对应的IP地址的最后一位大于等于5、且小于7时,将请求标签c确定为微服务使用请求对应的目标请求标签,当目标客户端对应的IP地址的最后一位大于等于7、且小于等于9时,将请求标签d确定为微服务使用请求对应的目标请求标签,预置规则还可以设置为:当目标客户端对应的IP地址的第五位大于等于0、且小于2时,将请求标签a确定为微服务使用请求对应的目标请求标签,当目标客户端对应的IP地址的第五位大于等于2、且小于5时,将请求标签b确定为微服务使用请求对应的目标请求标签,当目标客户端对应的IP地址的第五位大于等于5、且小于7时,将请求标签c确定为微服务使用请求对应的目标请求标签,当目标客户端对应的IP地址的第五位大于等于7、且小于等于9时,将请求标签d确定为微服务使用请求对应的目标请求标签;

当微服务使用请求中包含的客户端信息为目标客户端对应的用户名称时,预置规则可以设置为:当目标客户端对应的用户名称包含字符的个数小于等于2时,将请求标签a确定为微服务使用请求对应的目标请求标签,当目标客户端对应的用户名称包含字符的个数大于2、且小于等于5时,将请求标签b确定为微服务使用请求对应的目标请求标签,当目标客户端对应的用户名称包含字符的个数大于5、且小于等于7时,将请求标签c确定为微服务使用请求对应的目标请求标签,当目标客户端对应的用户名称包含字符的个数大于7时,将请求标签d确定为微服务使用请求对应的目标请求标签。

204、根据映射关系和目标请求标签确定微服务使用请求对应的目标实例标签。

在本申请实施例中,ALB程序在确定微服务使用请求对应的目标请求标签后,便可根据微服务使用请求对应的目标请求标签和步骤201中存储在本地存储空间中的映射关系,确定微服务使用请求对应的目标实例标签。

205、根据目标实例标签确定微服务使用请求对应的目标服务器。

在本申请实施例中,ALB程序在确定微服务使用请求对应的目标实例标签后,便可根据微服务使用请求对应的目标实例标签,确定微服务使用请求对应的目标服务器。

具体的,在本步骤中,ALB程序可以采用以下方式根据微服务使用请求对应的目标实例标签,确定微服务使用请求对应的目标服务器:

首先,在微服务注册中心(ES,Eureka Server)处获取服务器集群中每个服务器对应的服务器信息,其中,服务器对应的服务器信息包括:服务器对应的元数据,服务器对应的元数据中记载有服务器运行的微服务实例的版本信息,根据服务器运行的微服务实例的版本信息,能够确定服务器运行的是哪个版本的微服务实例;

其次,根据每个服务器对应的元数据确定每个服务器运行的微服务实例,即根据每个服务器对应的元数据中记载的版本信息,确定每个服务器运行的微服务实例;

最后,根据微服务使用请求对应的目标实例标签和每个服务器运行的微服务实例,在多个服务器中选取目标服务器,即将运行目标实例标签对应微服务实例的服务器确定为目标服务器,例如,微服务应用包含三个版本的实例:正常微服务实例、灰度微服务实例A和灰度微服务实例B,预先设置正常微服务实例对应的实例标签为实例标签a、灰度微服务实例A对应的实例标签为实例标签b、灰度微服务实例B对应的实例标签为实例标签c,根据前述步骤确定微服务使用请求对应的目标实例标签为实例标签a,并确定服务器集群中的服务器1-服务器10运行正常微服务实例、服务器11-服务器20运行灰度微服务实例A及服务器21-服务器30运行灰度微服务实例B,则可以将服务器1-服务器10中的任意一个服务器确定为目标服务器。

需要进行说明的是,在实际应用过程中,当存在多个服务器运行目标实例标签对应微服务实例时,可以将其中的任意一个服务器确定为目标服务器,也可以根据各个服务器的负载情况,将其中负载最低的服务器确定为目标服务器,但不限于此。

206、将微服务使用请求转发至目标服务器。

由于,在步骤205根据目标实例标签确定微服务使用请求对应的目标服务器的过程中,ALB程序在微服务注册中心处获取得到的服务器信息还包括:各个服务器对应的IP地址和端口号,因此,在本申请实施例中,ALB程序在确定微服务使用请求对应的目标服务器后,便可根据目标服务器对应的IP地址和端口号,将微服务使用请求转发至目标服务器,从而使得目标客户端可以使用目标服务器中运行的微服务实例。

示例性的,如图3所示,服务器集群中包含有运行多个版本微服务实例的多个服务器,ALB程序包含请求转发单元;ALB程序中的请求转发单元在接收得到某个客户端发送的微服务使用请求后,便可按照上述步骤203-205记载的方法,确定该微服务使用请求对应的服务器,并将该微服务使用请求转发至确定的服务器,其中,ALB程序可以在微服务注册中心处获取服务器集群中的每个服务器对应的服务器信息,如服务器对应的元数据、IP地址和端口号。

示例性的,如图4所示,微服务应用包含三个版本的实例:正常微服务实例、灰度微服务实例A和灰度微服务实例B,预先设置正常微服务实例对应的实例标签为实例标签a、灰度微服务实例A对应的实例标签为实例标签b、灰度微服务实例B对应的实例标签为实例标签c,以及设置实例标签a对应的请求标签为请求标签a、实例标签b对应的请求标签为请求标签b、实例标签c对应的请求标签为请求标签c;预置规则设置为:当目标客户端对应的唯一身份标识的最后一位大于等于0、且小于3时,将请求标签a确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的最后一位大于等于3、且小于6时,将请求标签b确定为微服务使用请求对应的目标请求标签,当目标客户端对应的唯一身份标识的最后一位大于等于6、且小于等于9时,将请求标签c确定为微服务使用请求对应的目标请求标签。ALB程序在接收得到目标客户端发送的微服务使用请求后,首先,在微服务使用请求中提取目标客户端对应的客户端信息,即目标客户端对应的唯一身份标识;其次,判断目标客户端对应的唯一身份标识的最后一位是否大于等于0、且小于3,若是,则将请求标签a确定为微服务使用请求对应的目标请求标签,并将实例标签a确定为微服务使用请求对应的目标实例标签,以及将微服务使用请求转发至目标服务器(即运行正常微服务实例的服务器)中,若否,则判断目标客户端对应的唯一身份标识的最后一位是否大于等于3、且小于6,若是,则将请求标签b确定为微服务使用请求对应的目标请求标签,并将实例标签b确定为微服务使用请求对应的目标实例标签,以及将微服务使用请求转发至目标服务器(即运行灰度微服务实例A的服务器)中,若否,则将请求标签c确定为微服务使用请求对应的目标请求标签,并将实例标签c确定为微服务使用请求对应的目标实例标签,以及将微服务使用请求X转发至目标服务器(即运行灰度微服务实例B的服务器)中。

为了实现上述目的,根据本申请的另一方面,本申请实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的微服务灰度发布方法。

为了实现上述目的,根据本申请的另一方面,本申请实施例还提供了一种微服务灰度发布装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行上述所述的微服务灰度发布方法。

进一步的,作为对上述图1及图2所示方法的实现,本申请另一实施例还提供了一种微服务灰度发布装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于在采用灰度发布的方式对微服务应用进行版本更新的过程中,合理地转发微服务使用请求,具体如图5所示,该装置包括:

接收单元31,用于接收目标客户端发送的微服务使用请求,其中,所述微服务使用请求中包含所述目标客户端对应的客户端信息;

第一确定单元32,用于根据预置规则和所述客户端信息确定所述微服务使用请求对应的目标请求标签;

第二确定单元33,用于根据所述目标请求标签确定所述微服务使用请求对应的目标实例标签;

第三确定单元34,用于根据所述目标实例标签确定所述微服务使用请求对应的目标服务器;

转发单元35,用于将所述微服务使用请求转发至所述目标服务器。

进一步的,如图6所示,该装置还包括:

设置单元36,用于在接收单元31接收目标客户端发送的微服务使用请求之前,设置每个版本微服务实例对应的实例标签,并设置每个所述实例标签对应的请求标签;

存储单元37,用于将每个所述实例标签与其对应的请求标签之间的映射关系存储至本地存储空间中;

第二确定单元33,具体用于根据所述映射关系和所述目标请求标签确定所述微服务使用请求对应的目标实例标签。

进一步的,如图6所示,第三确定单元34包括:

获取模块341,用于在微服务注册中心处获取服务器集群中每个服务器对应的服务器信息,其中,所述服务器信息包括:所述服务器对应的元数据;

确定模块342,用于根据每个所述服务器对应的元数据确定每个所述服务器运行的微服务实例;

选取模块343,用于根据所述目标实例标签和每个所述服务器运行的微服务实例,在多个所述服务器中选取所述目标服务器。

进一步的,如图6所示,所述服务器对应的服务器信息还包括:所述服务器对应的IP地址和端口号;

转发单元35,具体用于根据所述目标服务器对应的IP地址和端口号,将所述微服务使用请求转发至所述目标服务器。

进一步的,如图6所示,所述客户端信息为:所述目标客户端对应的唯一身份标识,所述预置规则具体为:根据多个所述请求标签和所述唯一身份标识的第N位数字,确定所述微服务使用请求对应的目标请求标签,其中,N为小于或等于所述唯一身份标识包含数字个数的正整数。

进一步的,如图6所示,所述客户端信息为:所述目标客户端对应的IP地址,所述预置规则具体为:根据多个所述请求标签和所述IP地址的第M位数字,确定所述微服务使用请求对应的目标请求标签,其中,M为小于或等于所述IP地址包含数字个数的正整数。

进一步的,如图6所示,所述客户端信息为:所述目标客户端对应的用户名称,所述预置规则具体为:根据多个所述请求标签和所述用户名称包含字符的个数,确定所述微服务使用请求对应的目标请求标签。

本申请实施例提供一种微服务灰度发布方法及装置,本申请实施例能够在ALB程序接收得到目标客户端发送的微服务使用请求后,由ALB程序根据预置规则和微服务使用请求包含的、目标客户端对应的客户端信息,确定微服务使用请求对应的目标请求标签;再根据微服务使用请求对应的目标请求标签和预先记录的每个实例标签与其对应的请求标签之间的映射关系,确定微服务使用请求对应的目标实例标签,并将运行目标实例标签对应微服务实例的服务器确定为目标服务器;最后,将微服务使用请求转发至目标服务器,从而使得目标客户端可以使用目标服务器中运行的微服务实例。由于,在本申请实施例中,ALB程序可以根据预置规则和目标客户端对应的客户端信息,合理地为目标客户端发送的微服务使用请求分配请求标签,并基于为微服务使用请求分配的请求标签,将微服务使用请求转发至相应的服务器中,因此,在采用灰度发布的方式对微服务应用进行版本更新的过程中,ALB程序可以合理地转发微服务使用请求。

所述微服务灰度发布装置包括处理器和存储器,上述接收单元、第一确定单元、第二确定单元、第三确定单元和转发单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在采用灰度发布的方式对微服务应用进行版本更新的过程中,合理地转发微服务使用请求。

本申请实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的微服务灰度发布方法。

存储介质可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请实施例还提供了一种微服务灰度发布装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行上述所述的微服务灰度发布方法。

本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:

接收目标客户端发送的微服务使用请求,其中,所述微服务使用请求中包含所述目标客户端对应的客户端信息;

根据预置规则和所述客户端信息确定所述微服务使用请求对应的目标请求标签;

根据所述目标请求标签确定所述微服务使用请求对应的目标实例标签,并根据所述目标实例标签确定所述微服务使用请求对应的目标服务器;

将所述微服务使用请求转发至所述目标服务器。

进一步的,在所述接收目标客户端发送的微服务使用请求之前,所述方法包括:

设置每个版本微服务实例对应的实例标签,并设置每个所述实例标签对应的请求标签;

将每个所述实例标签与其对应的请求标签之间的映射关系存储至本地存储空间中;

所述根据所述目标请求标签确定所述微服务使用请求对应的目标实例标签,包括:

根据所述映射关系和所述目标请求标签确定所述微服务使用请求对应的目标实例标签。

进一步的,所述根据所述目标实例标签确定所述微服务使用请求对应的目标服务器,包括:

在微服务注册中心处获取服务器集群中每个服务器对应的服务器信息,其中,所述服务器信息包括:所述服务器对应的元数据;

根据每个所述服务器对应的元数据确定每个所述服务器运行的微服务实例;

根据所述目标实例标签和每个所述服务器运行的微服务实例,在多个所述服务器中选取所述目标服务器。

进一步的,所述服务器对应的服务器信息还包括:所述服务器对应的IP地址和端口号;所述将所述微服务使用请求转发至所述目标服务器,包括:

根据所述目标服务器对应的IP地址和端口号,将所述微服务使用请求转发至所述目标服务器。

进一步的,所述客户端信息为:所述目标客户端对应的唯一身份标识,所述预置规则具体为:根据多个所述请求标签和所述唯一身份标识的第N位数字,确定所述微服务使用请求对应的目标请求标签,其中,N为小于或等于所述唯一身份标识包含数字个数的正整数。

进一步的,所述客户端信息为:所述目标客户端对应的IP地址,所述预置规则具体为:根据多个所述请求标签和所述IP地址的第M位数字,确定所述微服务使用请求对应的目标请求标签,其中,M为小于或等于所述IP地址包含数字个数的正整数。

进一步的,所述客户端信息为:所述目标客户端对应的用户名称,所述预置规则具体为:根据多个所述请求标签和所述用户名称包含字符的个数,确定所述微服务使用请求对应的目标请求标签。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:接收目标客户端发送的微服务使用请求,其中,所述微服务使用请求中包含所述目标客户端对应的客户端信息;根据预置规则和所述客户端信息确定所述微服务使用请求对应的目标请求标签;根据所述目标请求标签确定所述微服务使用请求对应的目标实例标签,并根据所述目标实例标签确定所述微服务使用请求对应的目标服务器;将所述微服务使用请求转发至所述目标服务器。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种终端用远程升级方法、系统及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!