服务的灰度发布方法、装置和计算机设备与流程

文档序号:20272342发布日期:2020-04-03 19:11阅读:150来源:国知局
服务的灰度发布方法、装置和计算机设备与流程

本发明涉及微服务技术领域,尤其涉及一种服务的灰度发布方法、装置和计算机设备。



背景技术:

微服务是一种新兴的软件架构,微服务的思想就是把一个大的应用程序或者服务拆分成多个小的应用程序或服务,拆分成的小的应用程序或服务之间各自独立。

在有应用程序或者服务需要升级更新的时候,通常是直接停掉原始版本的应用,然后发布新版本的应用,这样的发布方式,如果新版本有问题,将影响所有使用该服务功能的用户。



技术实现要素:

基于此,有必要针对上述问题,提出一种影响用户少的服务的灰度发布方法、装置和计算机设备。

一种服务的灰度发布方法,所述方法包括:

获取第一用户请求,根据所述第一用户请求确定用户标识;

若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;

将所述灰度版本标识与预置的各个候选服务版本标识进行比对;

若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。

在一个实施例中,所述用户请求包括请求功能标识;所述将所述灰度版本标识与预置的各个候选服务版本标识进行比对,包括:

根据所述请求功能标识,获取与请求功能对应的各个候选服务版本标识;

将所述灰度版本标识与请求功能对应的各个候选服务版本标识进行比对。

在一个实施例中,在所述将所述第二用户请求发送至所述目标服务之后,还包括:

接收所述目标服务返回的调用请求,所述调用请求包括调用功能标识和所述灰度版本标识;

根据所述调用功能标识,获取与调用功能对应的各个候选服务版本标识;

将所述灰度版本标识与调用功能对应的各个候选服务版本标识进行比对;

若存在与所述灰度版本标识相同的候选服务版本标识,则将与所述灰度版本标识相同的候选服务版本标识对应的候选服务作为目标调用服务,将所述调用请求发送至所述目标调用服务。

在一个实施例中,所述用户请求包括请求功能标识;所述方法,还包括:

若所述用户标识不存在于灰度用户列表中,则根据所述请求功能标识获取与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能;

根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务;

将所述第一用户请求发送至所述目标功能服务。

在一个实施例中,所述根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务,包括:

根据与请求功能对应的各个候选服务的服务状态确定空闲服务;

获取服务次数权重以及服务性能权重;

根据所述服务次数权重、所述服务性能权重、所述空闲服务的服务次数以及服务性能确定目标功能服务。

在一个实施例中,所述根据所述第一用户请求确定用户标识,包括:

解析所述第一用户请求,得到令牌;

根据所述令牌确定用户标识。

在一个实施例中,所述方法,还包括:

若不存在与所述灰度版本标识相同的目标候选服务版本标识,则向服务注册中心发送提示信息。

一种服务的灰度发布装置,包括:

获取模块,用于获取第一用户请求,根据所述第一用户请求确定用户标识;

生成模块,用于若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;

比对模块,用于将所述灰度版本标识与预置的各个候选服务版本标识进行比对;

发送模块,用于若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。

在一个实施例中,所述用户请求包括请求功能标识;所述比对模块,包括:

功能标识获取模块,用于根据所述请求功能标识,获取与请求功能对应的各个候选服务版本标识;

功能标识比对模块,用于将所述灰度版本标识与请求功能对应的各个候选服务版本标识进行比对。

在一个实施例中,所述装置,还包括:

调用请求接收模块,用于接收所述目标服务返回的调用请求,所述调用请求包括调用功能标识和所述灰度版本标识;

调用功能标识获取模块,用于根据所述调用功能标识,获取与调用功能对应的各个候选服务版本标识;

调用功能标识比对模块,用于将所述灰度版本标识与调用功能对应的各个候选服务版本标识进行比对;

目标调用服务确定模块,用于若存在与所述灰度版本标识相同的候选服务版本标识,则将与所述灰度版本标识相同的候选服务版本标识对应的候选服务作为目标调用服务,将所述调用请求发送至所述目标调用服务。

在一个实施例中,所述用户请求包括请求功能标识;所述装置,还包括:

非灰度用户模块,用于若所述用户标识不存在于灰度用户列表中,则根据所述请求功能标识获取与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能;

目标功能服务确定模块,用于根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务;

第一请求发送模块,用于将所述第一用户请求发送至所述目标功能服务。

在一个实施例中,所述目标功能服务确定模块,包括:

空闲服务确定模块,用于根据与请求功能对应的各个候选服务的服务状态确定空闲服务;

权重获取模块,用于获取服务次数权重以及服务性能权重;

加权模块,用于根据所述服务次数权重、所述服务性能权重、所述空闲服务的服务次数以及服务性能确定目标功能服务。

在一个实施例中,所述获取模块,包括:

解析模块,用于解析所述第一用户请求,得到令牌;

用户标识确定模块,用于根据所述令牌确定用户标识。

在一个实施例中,所述装置,还包括:

提示信息发送模块,用于若不存在与所述灰度版本标识相同的目标候选服务版本标识,则向服务注册中心发送提示信息。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

获取第一用户请求,根据所述第一用户请求确定用户标识;

若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;

将所述灰度版本标识与预置的各个候选服务版本标识进行比对;

若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取第一用户请求,根据所述第一用户请求确定用户标识;

若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;

将所述灰度版本标识与预置的各个候选服务版本标识进行比对;

若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。

实施本发明实施例,将具有如下有益效果:

本发明提出了一种服务的灰度发布方法、装置和计算机设备,首先获取第一用户请求,根据所述第一用户请求确定用户标识;然后若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;并且将所述灰度版本标识与预置的各个候选服务版本标识进行比对;最后若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。可见,上述方式,只有在灰度用户列表中的用户才分配灰度版本标识,然后根据灰度版本标识分配目标服务,使得只有在灰度用户列表中的用户才能使用目标服务,即使目标服务有任何问题,也只能影响到一部分用户,大部分用户不会受影响,保证了整体系统的稳定性,同时,上述灰度发布的实现方式简单,只设置了灰度用户列表确定灰度用户同时比对版本标识确定灰度服务即可。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

其中:

图1为一个实施例中服务的灰度发布方法的实现流程示意图;

图2为一个实施例中服务的灰度发布系统的组成结构示意图;

图3为一个实施例中服务的灰度发布装置的结构框图;

图4为一个实施例中计算机设备的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,在一个实施例中,提供了一种服务的灰度发布方法,本发明实施例所述的服务的灰度发布方法的执行主体为能够实现本发明实施例所述的服务的灰度发布方法的设备,该设备可以包括但不限于服务器。该服务的灰度发布方法,具体包括如下步骤:

步骤102,获取第一用户请求,根据所述第一用户请求确定用户标识。

其中,第一用户请求,用于请求执行哪种功能的服务。

其中,用户标识,用于唯一标识一个用户,由数字和/或字符和/或字母组成。

在一个实施例中,用户标识通过直接解析第一用户请求得到,步骤102所述根据所述第一用户请求确定用户标识,包括:解析所述第一用户请求,得到用户标识。

在一个实施例中,令牌根据请求时间、请求功能标识以及用户标识生成,因此,第一用户标识可以通过解析第一用户请求得到令牌之后得到,具体的,步骤102所述根据所述第一用户请求确定用户标识,包括:

步骤102a,解析所述第一用户请求,得到令牌。

步骤102b,根据所述令牌确定用户标识。

例如,令牌为#20290908#idjgnbs#aa8gb36#,于是,用户标识为aa8gb36,或者,当用户标识只由数字组成时,根据字母与数字的对应关系将字母转换为数字,从而得到纯数字的用户标识,例如a对应数字1,a对应数字2,g对应数字3,b对应数字4,得到用户标识为1283436。

步骤104,若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识。

根据服务的使用人群的数量,将服务分为白度服务和灰度服务。其中,白度服务,指示服务经过了各种测试,开放给全部用户使用;灰度服务,指示服务还未经过各方测试,只开放给部分用户使用。

其中,灰度用户,为具有使用灰度服务资格的用户。例如,现有服务a和服务b,用户m、n、l、p,服务a能够被用户m、n、l、p使用,服务b只能被用户m使用,则服务a为白度服务,服务b为灰度服务,用户m为灰度用户。

其中,灰度版本标识,指示处理第二用户请求的服务需要是灰度服务。例如,能够实现功能a的服务有两个,一个是只能供指定用户使用的灰度服务,一个是能供所有用户使用的白度服务,当第二用户请求中携带有灰度版本标识的时候,选用灰度服务处理该第二用户请求,当第二用户请求中没有携带灰度版本标识的时候,选用白度服务处理该第二用户请求。

在一个实施例中,灰度版本标识,用于唯一标记一个灰度服务。示例性的,白度服务有白度服务的版本标识,灰度服务有灰度服务的版本标识,例如,某一白度服务的版本标识为gongnenga-baidu;某一灰度服务的版本标识为gongnenga-huidu。

其中,灰度用户列表,用于存储预置灰度用户的用户标识。预先设置多个灰度用户,以使这些灰度用户对灰度服务进行试用。示例性的,灰度用户列表中的灰度用户为研发公司员工。灰度用户列表可以预先存储于执行服务的灰度发布方法的服务器中,也可以在有第一用户请求到达的时候从用户配置中心获取,用户配置中心可以设置于执行服务的灰度发布方法的服务器中,也可以设置于其他服务器。

在一个实施例中,所述用户请求包括请求功能标识;所述方法,还包括:

步骤110,若所述用户标识不存在于灰度用户列表中,则根据所述请求功能标识获取与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能。

由于用户标识不存在于灰度用户列表中,说明发起第一用户请求的用户不是灰度用户,此时,根据服务状态、服务次数以及服务性能确定目标功能服务。

步骤112,根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务。

示例性的,步骤112所述根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务,包括:

步骤112a,根据与请求功能对应的各个候选服务的服务状态确定空闲服务。

其中,服务状态,包括反映正在服务的忙碌状态、未在服务的空闲状态以及正在维护的维护状态。

其中,空闲服务,指示处于空闲状态的服务;忙碌服务,指示处于忙碌状态的服务;维护服务,指示处于维护状态的服务。

步骤112b,获取服务次数权重以及服务性能权重。

其中,服务次数权重,指示服务次数所占的分值比重。

其中,服务性能权重,指示服务性能所占的分值比重。

步骤112c,根据所述服务次数权重、所述服务性能权重、所述空闲服务的服务次数以及服务性能确定目标功能服务。

将服务得分高的服务确定为目标功能服务。

服务得分=服务次数得分×服务次数权重+服务性能得分×服务性能权重。示例性的,若某一服务的服务次数多,则服务次数得分可以设置低一些;若某一服务的服务次数少,则服务次数得分可以设置高一些,以让服务次数少的服务来处理第二用户请求;若某一服务的服务性能好,则服务性能得分可以设置高一些,以尽可能的让服务性能好的服务处理第二用户请求;若某一服务的服务性能差,则服务性能得分可以设置低一些。

示例性的,步骤112所述根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务,包括:

获取服务状态权重、服务次数权重以及服务性能权重;

根据服务状态权重、服务次数权重、服务性能权重、与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务。

例如,将服务状态m、服务次数t、服务性能n以打分的形式体现,服务状态权重、服务次数权重以及服务性能权重分别为w1、w2和w3,于是,服务得分为:m×w1+t×w2+n×w3。

步骤114,将所述第一用户请求发送至所述目标功能服务。

步骤106,将所述灰度版本标识与预置的各个候选服务版本标识进行比对。

其中,候选服务,为在服务注册中心完成了注册的服务。

在有服务上线的时候,该服务需要在服务注册中心进行注册,即将服务的服务id、服务ip地址、版本标识等向服务注册中心报备,注册成功之后,用户才能使用该服务。在有新的服务注册之后,服务注册中心将该服务的相关信息(服务id、服务ip地址、版本标识等)发送至执行服务的灰度发布方法的设备,以使设备获取到各个候选服务版本标识。

在一个实施例中,版本标识,用于指示服务是否是灰度服务,例如,用版本标识0表示白度服务,用版本标识1表示灰度服务。具体的,所述用户请求包括请求功能标识;步骤106所述将所述灰度版本标识与预置的各个候选服务版本标识进行比对,包括:

步骤106a,根据所述请求功能标识,获取与请求功能对应的各个候选服务版本标识。

其中,请求功能标识,用于唯一标识一种功能,不同服务可能能够实现同一功能。例如,用请求功能标识ui13f标识功能a;用请求功能标识sarja93sf标识功能b。

可以理解的是,一个功能,可能有n个服务可以实现。例如表1所示,对于功能a,能够实现该功能a的服务节点有a1、a2和a3,候选服务版本标识分别为0(白度服务)、0(白度服务)和1(灰度服务);对于功能b,能够实现该功能b的服务节点有b1、b2和b3,候选服务版本标识分别为0(白度服务)、1(灰度服务)和0(白度服务)。

表1

步骤106b,将所述灰度版本标识与请求功能对应的各个候选服务版本标识进行比对。

例如,请求功能标识为ui13f,能够实现该服务功能的服务节点有a1、a2和a3,将第二用户请求中的灰度版本标识与a1、a2和a3的版本标识进行比对,得到这三个版本标识的比对结果。

在一个实施例中,在步骤108所述将所述第二用户请求发送至所述目标服务之后,还包括:

步骤116,接收所述目标服务返回的调用请求,所述调用请求包括调用功能标识和所述灰度版本标识。

其中,调用请求,为目标服务调用其他服务的请求。在一种应用场景中,目标服务的执行需要调用其他功能的服务,例如,目标服务为a,目标服务a的执行需要调用能够实现功能b的服务,假设能够实现功能b的服务有服务b(灰度服务)、服务b’(白度服务)和服务bt(白度服务),在将第二用户请求发送至目标服务a之后,还需要调用能够实现功能b的灰度服务b,于是,目标服务a从第二用户请求中获取到灰度版本标识,并根据调用功能标识和获取到的灰度版本标识生成调用请求,并将生成的调用请求发送至执行服务的灰度发布方法的设备,以使执行服务的灰度发布方法的设备知晓调用请求是灰度服务发起的请求,需要找到能够实现功能b的灰度服务b,然后将调用请求发送至灰度服务b。

其中,调用功能标识,用于指示调用什么功能的服务。

步骤118,根据所述调用功能标识,获取与调用功能对应的各个候选服务版本标识。

步骤120,将所述灰度版本标识与调用功能对应的各个候选服务版本标识进行比对。

步骤122,若存在与所述灰度版本标识相同的候选服务版本标识,则将与所述灰度版本标识相同的候选服务版本标识对应的候选服务作为目标调用服务,将所述调用请求发送至所述目标调用服务。

步骤108,若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。

其中,目标服务,为根据版本标识比对找到的灰度服务。

在一个实施例中,所述方法,还包括:

步骤124,若不存在与所述灰度版本标识相同的目标候选服务版本标识,则向服务注册中心发送提示信息。

由于不存在与所述灰度版本标识相同的目标候选服务版本标识,可能是服务注册中心还没有把新注册的服务的版本标识等信息发送过来,于是,向服务注册中心发送提示信息,提示服务注册中心立即把新注册的服务的相关信息发过来。

在一个实施例中,所述方法,还包括:

步骤126,若不存在与所述灰度版本标识相同的目标候选服务版本标识,则根据请求功能标识确定目标白度服务,将所述第二用户请求发送至根据请求功能标识确定的目标白度服务。

由于不存在与所述灰度版本标识相同的目标候选服务版本标识,可能是灰度服务已经被所有人试用完毕变成了白度服务,从而该灰度服务的版本标识发生了变化,所以,此时根据请求功能标识确定能够实现该功能的各个服务节点,然后再根据随机或者轮训的方式从多个服务节点中确定目标服务。

在一个实施例中,所述方法,还包括:

步骤128,若不存在与所述灰度版本标识相同的目标候选服务版本标识,则生成报错信息。

由于若不存在与所述灰度版本标识相同的目标候选服务版本标识,可能是灰度服务已经被所有人试用完毕变成了白度服务,例如,灰度用户想使用a功能的服务,但是,提供a功能的服务都不是灰度服务,于是生成报错信息。

上述服务的灰度发布方法,首先获取第一用户请求,根据所述第一用户请求确定用户标识;然后若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;并且将所述灰度版本标识与预置的各个候选服务版本标识进行比对;最后若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。可见,上述方式,只有在灰度用户列表中的用户才分配灰度版本标识,然后根据灰度版本标识分配目标服务,使得只有在灰度用户列表中的用户才能使用目标服务,即使目标服务有任何问题,也只能影响到一部分用户,大部分用户不会受影响,保证了整体系统的稳定性,同时,上述灰度发布的实现方式简单,只设置了灰度用户列表确定灰度用户同时比对版本标识确定灰度服务即可。

本发明实施例所述的服务的灰度发布方法,可以应用于一服务的灰度发布系统,如图2所示,服务的灰度发布系统具体可以包括用户系统202、nginx系统204、网关系统206(包括zuul网关和ribbon负载均衡器)、服务注册中心208以及用户配置中心210,具体的,用户系统202发起第一用户请求,将第一用户请求发送至nginx系统204,nginx系统204将其转发至网关系统206,网关系统206中的zuul网关获取到第一用户请求之后,根据第一用户请求确定用户标识,然后从用户配置中心210获取到灰度用户列表,看用户标识是否存在于灰度用户列表中,若用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,由于是灰度用户,需要将第二用户请求发送至灰度服务,所以还需要ribbon负载均衡器进行版本标识的比对,将所述灰度版本标识与预置的各个候选服务版本标识进行比对,从而确定目标服务,并将第二用户请求发送至目标服务。在进行版本比对之前,ribbon负载均衡器还需要从服务注册中心208获取到各个候选服务的版本标识。

如图3所示,提供了一种服务的灰度发布装置300,具体包括:

获取模块302,用于获取第一用户请求,根据所述第一用户请求确定用户标识;

生成模块304,用于若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;

比对模块306,用于将所述灰度版本标识与预置的各个候选服务版本标识进行比对;

发送模块308,用于若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。

上述服务的灰度发布装置,首先获取第一用户请求,根据所述第一用户请求确定用户标识;然后若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;并且将所述灰度版本标识与预置的各个候选服务版本标识进行比对;最后若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。可见,上述方式,只有在灰度用户列表中的用户才分配灰度版本标识,然后根据灰度版本标识分配目标服务,使得只有在灰度用户列表中的用户才能使用目标服务,即使目标服务有任何问题,也只能影响到一部分用户,大部分用户不会受影响,保证了整体系统的稳定性,同时,上述灰度发布的实现方式简单,只设置了灰度用户列表确定灰度用户同时比对版本标识确定灰度服务即可。

在一个实施例中,所述用户请求包括请求功能标识;所述比对模块306,包括:

功能标识获取模块,用于根据所述请求功能标识,获取与请求功能对应的各个候选服务版本标识;

功能标识比对模块,用于将所述灰度版本标识与请求功能对应的各个候选服务版本标识进行比对。

在一个实施例中,所述装置300,还包括:

调用请求接收模块,用于接收所述目标服务返回的调用请求,所述调用请求包括调用功能标识和所述灰度版本标识;

调用功能标识获取模块,用于根据所述调用功能标识,获取与调用功能对应的各个候选服务版本标识;

调用功能标识比对模块,用于将所述灰度版本标识与调用功能对应的各个候选服务版本标识进行比对;

目标调用服务确定模块,用于若存在与所述灰度版本标识相同的候选服务版本标识,则将与所述灰度版本标识相同的候选服务版本标识对应的候选服务作为目标调用服务,将所述调用请求发送至所述目标调用服务。

在一个实施例中,所述用户请求包括请求功能标识;所述装置300,还包括:

非灰度用户模块,用于若所述用户标识不存在于灰度用户列表中,则根据所述请求功能标识获取与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能;

目标功能服务确定模块,用于根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务;

第一请求发送模块,用于将所述第一用户请求发送至所述目标功能服务。

在一个实施例中,所述目标功能服务确定模块,包括:

空闲服务确定模块,用于根据与请求功能对应的各个候选服务的服务状态确定空闲服务;

权重获取模块,用于获取服务次数权重以及服务性能权重;

加权模块,用于根据所述服务次数权重、所述服务性能权重、所述空闲服务的服务次数以及服务性能确定目标功能服务。

在一个实施例中,所述获取模块302,包括:

解析模块,用于解析所述第一用户请求,得到令牌;

用户标识确定模块,用于根据所述令牌确定用户标识。

在一个实施例中,所述装置300,还包括:

提示信息发送模块,用于若不存在与所述灰度版本标识相同的目标候选服务版本标识,则向服务注册中心发送提示信息。

图4示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是服务器。如图4所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现服务的灰度发布方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行服务的灰度发布方法。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的服务的灰度发布方法可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。计算机设备的存储器中可存储组成服务的灰度发布装置的各个程序模板。比如,获取模块302、生成模块304和比对模块306。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

获取第一用户请求,根据所述第一用户请求确定用户标识;

若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;

将所述灰度版本标识与预置的各个候选服务版本标识进行比对;

若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。

上述计算机设备,首先获取第一用户请求,根据所述第一用户请求确定用户标识;然后若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;并且将所述灰度版本标识与预置的各个候选服务版本标识进行比对;最后若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。可见,上述方式,只有在灰度用户列表中的用户才分配灰度版本标识,然后根据灰度版本标识分配目标服务,使得只有在灰度用户列表中的用户才能使用目标服务,即使目标服务有任何问题,也只能影响到一部分用户,大部分用户不会受影响,保证了整体系统的稳定性,同时,上述灰度发布的实现方式简单,只设置了灰度用户列表确定灰度用户同时比对版本标识确定灰度服务即可。

在一个实施例中,所述用户请求包括请求功能标识;所述将所述灰度版本标识与预置的各个候选服务版本标识进行比对,包括:

根据所述请求功能标识,获取与请求功能对应的各个候选服务版本标识;

将所述灰度版本标识与请求功能对应的各个候选服务版本标识进行比对。

在一个实施例中,所述计算机程序被所述处理器执行时,还用于:

在所述将所述第二用户请求发送至所述目标服务之后,接收所述目标服务返回的调用请求,所述调用请求包括调用功能标识和所述灰度版本标识;

根据所述调用功能标识,获取与调用功能对应的各个候选服务版本标识;

将所述灰度版本标识与调用功能对应的各个候选服务版本标识进行比对;

若存在与所述灰度版本标识相同的候选服务版本标识,则将与所述灰度版本标识相同的候选服务版本标识对应的候选服务作为目标调用服务,将所述调用请求发送至所述目标调用服务。

在一个实施例中,所述用户请求包括请求功能标识;所述计算机程序被所述处理器执行时,还用于:

若所述用户标识不存在于灰度用户列表中,则根据所述请求功能标识获取与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能;

根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务;

将所述第一用户请求发送至所述目标功能服务。

在一个实施例中,所述根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务,包括:

根据与请求功能对应的各个候选服务的服务状态确定空闲服务;

获取服务次数权重以及服务性能权重;

根据所述服务次数权重、所述服务性能权重、所述空闲服务的服务次数以及服务性能确定目标功能服务。

在一个实施例中,所述根据所述第一用户请求确定用户标识,包括:

解析所述第一用户请求,得到令牌;

根据所述令牌确定用户标识。

在一个实施例中,所述计算机程序被所述处理器执行时,还用于:

若不存在与所述灰度版本标识相同的目标候选服务版本标识,则向服务注册中心发送提示信息。

在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取第一用户请求,根据所述第一用户请求确定用户标识;

若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;

将所述灰度版本标识与预置的各个候选服务版本标识进行比对;

若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。

上述计算机可读存储介质,首先获取第一用户请求,根据所述第一用户请求确定用户标识;然后若所述用户标识存在于灰度用户列表中,则生成携带有灰度版本标识的第二用户请求,所述灰度用户列表中记录了预置灰度用户的用户标识;并且将所述灰度版本标识与预置的各个候选服务版本标识进行比对;最后若存在与所述灰度版本标识相同的目标候选服务版本标识,则将所述目标候选服务版本标识对应的候选服务作为目标服务,将所述第二用户请求发送至所述目标服务。可见,上述方式,只有在灰度用户列表中的用户才分配灰度版本标识,然后根据灰度版本标识分配目标服务,使得只有在灰度用户列表中的用户才能使用目标服务,即使目标服务有任何问题,也只能影响到一部分用户,大部分用户不会受影响,保证了整体系统的稳定性,同时,上述灰度发布的实现方式简单,只设置了灰度用户列表确定灰度用户同时比对版本标识确定灰度服务即可。

在一个实施例中,所述用户请求包括请求功能标识;所述将所述灰度版本标识与预置的各个候选服务版本标识进行比对,包括:

根据所述请求功能标识,获取与请求功能对应的各个候选服务版本标识;

将所述灰度版本标识与请求功能对应的各个候选服务版本标识进行比对。

在一个实施例中,所述计算机程序被所述处理器执行时,还用于:

在所述将所述第二用户请求发送至所述目标服务之后,接收所述目标服务返回的调用请求,所述调用请求包括调用功能标识和所述灰度版本标识;

根据所述调用功能标识,获取与调用功能对应的各个候选服务版本标识;

将所述灰度版本标识与调用功能对应的各个候选服务版本标识进行比对;

若存在与所述灰度版本标识相同的候选服务版本标识,则将与所述灰度版本标识相同的候选服务版本标识对应的候选服务作为目标调用服务,将所述调用请求发送至所述目标调用服务。

在一个实施例中,所述用户请求包括请求功能标识;所述计算机程序被所述处理器执行时,还用于:

若所述用户标识不存在于灰度用户列表中,则根据所述请求功能标识获取与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能;

根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务;

将所述第一用户请求发送至所述目标功能服务。

在一个实施例中,所述根据与请求功能对应的各个候选服务的服务状态、服务次数以及服务性能确定目标功能服务,包括:

根据与请求功能对应的各个候选服务的服务状态确定空闲服务;

获取服务次数权重以及服务性能权重;

根据所述服务次数权重、所述服务性能权重、所述空闲服务的服务次数以及服务性能确定目标功能服务。

在一个实施例中,所述根据所述第一用户请求确定用户标识,包括:

解析所述第一用户请求,得到令牌;

根据所述令牌确定用户标识。

在一个实施例中,所述计算机程序被所述处理器执行时,还用于:

若不存在与所述灰度版本标识相同的目标候选服务版本标识,则向服务注册中心发送提示信息。

需要说明的是,上述服务的灰度发布方法、服务的灰度发布装置、计算机设备及计算机可读存储介质属于一个总的发明构思,服务的灰度发布方法、服务的灰度发布装置、计算机设备及计算机可读存储介质实施例中的内容可相互适用。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1