CN113382051A - 一种全链路的灰度发布方法及灰度发布系统 - Google Patents
一种全链路的灰度发布方法及灰度发布系统 Download PDFInfo
- Publication number
- CN113382051A CN113382051A CN202110610163.1A CN202110610163A CN113382051A CN 113382051 A CN113382051 A CN 113382051A CN 202110610163 A CN202110610163 A CN 202110610163A CN 113382051 A CN113382051 A CN 113382051A
- Authority
- CN
- China
- Prior art keywords
- service request
- service
- gray
- micro
- strategy
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012216 screening Methods 0.000 claims abstract description 8
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 abstract description 9
- 235000014510 cooky Nutrition 0.000 description 7
- 238000004043 dyeing Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010186 staining Methods 0.000 description 2
- 241000529895 Stercorarius Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- 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/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- 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
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种全链路的灰度发布方法及灰度发布系统,所述灰度发布系统至少包括微服务网关以及边车负载均衡组件,所述方法应用于所述灰度发布系统,包括:所述微服务网关接收用户发起的服务请求;所述微服务网关将所述服务请求与灰度配置文件中的灰度策略进行匹配;若所述服务请求与所述灰度策略匹配成功,则所述微服务网关为所述服务请求打上颜色标记;所述微服务网关下发所述服务请求;所述边车负载均衡组件拦截下发的所述服务请求,并判断所述服务请求是否存在颜色标记;所述边车负载均衡组件若判断出所述服务请求存在颜色标记,则筛选出所请求的服务在当前灰度发布版本的实例,进行所述服务请求的转发。从可以同时实现全链路的灰度发布。
Description
技术领域
本申请涉及灰度发布技术领域,特别涉及一种全链路的灰度发布方法及灰度发布系统。
背景技术
近几年,随着用户的迅速增长和业务的快速发展,对开发人员要求越来越高,一方面要求为用户提供稳定的服务,一方面要求进行快速业务迭代。所以,基于系统稳定性和快速业务迭代的综合考虑,现在一般采用灰度发布的凡是,发布新的版本。
目前的灰度发布主要是针对单个服务,在已存在的稳定服务之外,额外部署一个小规模的灰度服务。然后通过流量控制,将部分流量引导到灰度服务中,进行全量发布前的灰度验证。如果验证失败,可立刻将所有流量切换至稳定服务中,取消灰度发布过程。如果验证成功,则将新版本进行全量发布,升级至生产环境稳定集群,完成灰度发布过程。
但是现今单个业务功能设计的微服务接口数、服务化调用链路长度都在迅速增加,所以经常出现多个服务同时需要发布新版本的情况,而现有的方式都是针对单个服务进行灰度发布,无法实现多个服务同时进行灰度发布,无法很好地满足快速业务迭代的要求。
发明内容
基于上述现有技术的不足,本申请提供了一种全链路的灰度发布方法及灰度发布系统,以解决现有技术仅支持单一服务灰度上线的问题。
为了实现上述目的,本申请提供了以下技术方案:
本申请第一方面提供了一种全链路的灰度发布方法,应用于灰度发布系统,其中,所述灰度发布系统至少包括微服务网关以及边车负载均衡组件,所述全链路的灰度发布方法,包括:
所述微服务网关接收用户发起的服务请求;
所述微服务网关将所述服务请求与灰度配置文件中的灰度策略进行匹配;
若所述服务请求与所述灰度策略匹配成功,则所述微服务网关为所述服务请求打上颜色标记;
所述微服务网关下发所述服务请求;
所述边车负载均衡组件拦截下发的所述服务请求,并判断所述服务请求是否存在颜色标记;
所述边车负载均衡组件若判断出所述服务请求存在颜色标记,则筛选出所请求的服务在当前灰度发布版本的实例,进行所述服务请求的转发。
可选地,在上述的全链路的灰度发布方法中,灰度策略包括多个灰度子策略,所述微服务网关将所述服务请求与灰度配置文件中的灰度策略进行匹配,包括:
所述微服务网关将所述服务请求中的多个信息,分别与所述灰度配置文件中的对应的灰度子策略进行匹配,得到每个所述灰度子策略对应的匹配结果;
基于各个所述灰度子策略间的执行关系,以及每个所述灰度子策略对应的匹配结果,确定所述服务请求与所述灰度策略的最终匹配结果;其中,所述执行关系包括或关系、与关系以及非关系。
可选地,在上述的全链路的灰度发布方法中,所述微服务网关为所述服务请求打上颜色标记,包括:
所述微服务网关在所述服务请求的头部中添加与所述灰度策略对应的颜色标记。
可选地,在上述的全链路的灰度发布方法中,所述微服务网关接收用户发起的服务请求之后,还包括:
所述微服务网关对所述服务请求进行预处理;其中,所述预处理至少包括用户认证以及用户鉴权;
若所述服务请求通过用户认证以及用户鉴权,则针对预处理后的所述服务请求,执行所述将所述服务请求与灰度配置文件中的灰度策略进行匹配。
可选地,在上述的全链路的灰度发布方法中,还包括:
所述边车负载均衡组件若判断出所述服务请求存在颜色标记,或未筛选到所请求的服务在当前灰度发布的实例版本,则随机从注册中心的实例列表中挑选出一个实例进行所述服务请求的转发。
本申请第二方面提供了一种灰度发布系统,包括:
微服务网关,用于接收用户发起的服务请求,并将所述服务请求与灰度配置文件中的灰度策略进行匹配,以及用于在所述服务请求与所述灰度策略匹配成功,为所述服务请求打上颜色标记,并下发所述服务请求;
边车负载均衡组件,用于拦截下发的所述服务请求,并判断所述服务请求是否存在颜色标记,以及用于判断出所述服务请求存在颜色标记时,筛选出所请求的服务在当前灰度发布版本的实例,进行所述服务请求的转发。
可选地,在上述的灰度发布系统中,所述灰度策略包括多个灰度子策略,所述微服务网关执行所述将所述服务请求与灰度配置文件中的灰度策略进行匹配时,用于:
将所述服务请求中的多个信息,分别与所述灰度配置文件中的对应的灰度子策略进行匹配,得到每个所述灰度子策略对应的匹配结果,并基于各个所述灰度子策略间的执行关系,以及每个所述灰度子策略对应的匹配结果,确定所述服务请求与所述灰度策略的最终匹配结果;其中,所述执行关系包括或关系、与关系以及非关系。
可选地,在上述的灰度发布系统中,所述微服务网关执行所述为所述服务请求打上颜色标记时,用于:
在所述服务请求的头部中添加与所述灰度策略对应的颜色标记。
可选地,在上述的灰度发布系统中,所述微服务网关,还用于:
对所述服务请求进行预处理;其中,所述预处理至少包括用户认证以及用户鉴权;若所述服务请求通过用户认证以及用户鉴权,则所述微服务网关针对预处理后的所述服务请求,执行所述将所述服务请求与灰度配置文件中的灰度策略进行匹配。
可选地,在上述的灰度发布系统中,所述边车负载均衡组件,还用于:
在判断出所述服务请求存在颜色标记,或未筛选到所请求的服务在当前灰度发布的实例版本时,随机从注册中心的实例列表中挑选出一个实例进行所述服务请求的转发。
本申请提供的一种全链路的灰度发布方法,应用于灰度发布系统。其中,灰度发布系统至少包括微服务网关以及边车负载均衡组件,该通过微服务网关接收用户发起的服务请求,并将所述服务请求与灰度配置文件中的灰度策略进行匹配。若服务请求与所述灰度策略匹配成功,则为服务请求打上颜色标记,最后将服务请求下发。由边车负载均衡组件拦截下发的服务请求,并判断所述服务请求是否存在颜色标记。若判断出服务请求存在颜色标记,则筛选出所请求的服务在当前灰度发布版本的实例,进行服务请求的转发。所以可以满足多条灰度策略,并且实现了对灰度发布的流程的有效控制,从而可以支持多个服务同时进行灰度发布,实现全链路灰度发布。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种全链路的灰度发布方法的流程图;
图2为本申请另一实施例提供的一种匹配灰度策略的方法的流程图;
图3为一示例中服务正常工作时的流量的拓扑图;
图4为一示例中现有灰度发布下服务的流量的拓扑图;
图5为一示例中使用本申请提供的方法进行灰度发布的服务的流量的拓扑图;
图6为本申请另一实施例提供的实现本申请提供的方法进行发布的流程图;
图7为本申请另一实施例提供的另一种全链路的灰度发布方法的流程图;
图8为本申请另一实施例提供的一种灰度发布系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请实施例提供了一种全链路的灰度发布方法,应用于灰度发布系统。其中,灰度发布系统至少包括微服务网关以及边车负载均衡组件。如图1所示,本申请实施例提供的一种全链路的灰度发布方法,具体包括以下步骤:
S101、微服务网关接收用户发起的服务请求。
需要说明的是,本申请实施例中微服务网关作为微服务体现中的同一入口。微服务体系中包括有多个微服务,当用户发送某个微服务的服务请求时,流量首先会进入微服务网关中,通过网关服务对服务请求进行统一处理。当微服务网关要将服务请求转发到下游系统中时,则先执行步骤S102。
可选地,在本申请另一实施例中,在执行步骤S101之后,还可以进一步先执行:微服务网关对所述服务请求进行预处理。
其中,预处理至少包括用户认证以及用户鉴权。当然还可以包括对服务请求进行路由转发等处理。
需要说明的是,在本申请实施例中若服务请求通过用户认证以及用户鉴权,则针对预处理后的服务请求,执行步骤S102。
S102、微服务网关将服务请求与灰度配置文件中的灰度策略进行匹配。
需要说明的是,灰度发布大致原理为:在生产环境稳定集群之外,额外部署一个小规模的灰度集群,并通过流量控制,将部分流量引入到灰度集群,进行生产全量发布前的灰度验证。如果验证失败,可立刻将所有流量切回原本存在的稳定集群,取消灰度发布过程。如果验证成功,则将新版本进行全量发布升级至生产环境稳定集群,即将所有流量引入新版本中,完成灰度发布过程。
本申请实施例中,支持多个服务同时进行灰度发布,所以本申请通过将服务请求与灰度配置文件进行匹配的方式,确定服务请求是否需要引入到新版本中。
需要说明的是,灰度配置文件为预先创建的。可选地,灰度发布系统还可以包括配置中心。所以可以在配置中心中预先创建灰度配置文件。可选地,灰度配置文件,具体可以如下:
其中,grayName:灰度发布名称、plans:灰度发布计划;id:灰度计划唯一标识;color:颜色标记;relationship:灰度策略执行关系,支持or,and,not;strategys:灰度策略集合;key:灰度类型,包括header,cookie,param,path,weight;value:策略值;planServices:灰度发布服务集合;planId:灰度计划唯一标识;services:灰度服务集合;service:服务名;version:版本号。
其中,灰度策略主要是针对服务请求的特征进行制定,灰度策略类型可以支持header,cookie,param,path,weight。例如策略类型是Header时,则可以灰度策略可以设定相应的header name以及headervalue对服务请求进行匹配。
可选地,本申请另一实施例中,灰度策略包括多个灰度子策略,在本申请实施例中,步骤S102的一种具体实施方式,如图2所示,包括以下步骤:
S201、微服务网关将服务请求中的多个信息,分别与灰度配置文件中的对应的灰度子策略进行匹配,得到每个灰度子策略对应的匹配结果。
需要说明的是,在本申请实施例中,灰度策略可以同时设定有多个灰度子策略。并且,每个灰度子策略对应不同的策略类型,如header,cookie,param,path,weight。
所以在匹配过程中,将服务请求中相应的信息与对应的灰度子策略进行匹配,得到每个灰度子策略对应的匹配结果。
S202、基于各个灰度子策略间的执行关系,以及每个灰度子策略对应的匹配结果,确定服务请求与灰度策略的最终匹配结果。
其中,执行关系包括或关系、与关系以及非关系,即or、and、not三种关系。
由于存在多个灰度子策略,每个灰度子策略有对应的匹配结果,而最终需要得到一个匹配结果,即得到服务请求是否匹配成功。所以,在本申请实施例中,每个灰度子策略对应的匹配结果,可以按照各个灰度子策略间的执行关系,确定服务请求与灰度策略的最终匹配结果。
例如,当同时按照header以及cookie进行匹配,当灰度子策略的执行关系设置为或关系时,那么header和cookie中有一条灰度子策略命中,即与服务请求相匹配,则最终匹配结果为匹配成功。如果灰度策略执行关系设置为与关系时,那么header和cookie两条灰度子策略需全部命中才可以将最终匹配结果确定为匹配成功。如果灰度策略执行关系设置为非关系时,那么header和cookie两条策略都不命中才可以将最终匹配结果确定为匹配成功。
S103、微服务网关判断服务请求与灰度配置文件中的灰度策略是否匹配成功。
其中,若服务请求与灰度策略匹配成功,则执行步骤S104。需要说的是,若服务请求与灰度策略匹配成功,则按正常的服务请求进行处理,即可以直接执行步骤S105。
S104、微服务网关为服务请求打上颜色标记。
S105、微服务网关下发服务请求。
需要说明的是,无论服务请求是否成功匹配,并进行染色。微服务网关都会将处理后的服务请求下发至下游的微服务项目中,以能获得所请求的服务。
S106、边车负载均衡组件拦截下发的服务请求,并判断服务请求是否存在颜色标记。
需要说明的是,本申请实施例中,通过边车负载均衡组件拦截微服务网关下发的服务请求,并对其处理。
可选的,在截下发的服务请求,可以先对微服务请求进行预处理后,例如生成链路信息、对服务请求进行安全校验等处理,再判断服务请求是否存在颜色标记。
其中,若判断出服务请求存在颜色标记,则执行步骤S107。
S107、边车负载均衡组件筛选出所请求的服务在当前灰度发布版本的实例,进行服务请求的转发。
需要说明的是,在本申请实施例中,支持多个服务同时进行灰度发布,但每次同一个服务只可以灰度上线一个版本。边车负载均衡组件在就行服务请求转发时,若服务请求存在染色标记,则根据灰度配置文件中赌赢的灰度实例以及当前灰度发布版本,对注册中心的实例列表进行实例的过滤,找到符合当前灰度发布版本的示例,进行服务请求的转发。
因此,本申请实施例提供的通过微服务网关对服务请求进行灰度策略的匹配,并在匹配成功时对服务请求进行染色,后续根据服务请求染色确定是否需要将该服务器请求引入灰度发布版本的服务中,从而很好地实现对多服务同时灰度发布时的流量控制。
例如,存在A、B、C、D四个服务,其中,A服务为网关服务。在不进行灰度发布时,四个服务的流量的拓扑图如图3所示:网关调用A服务;A服务调用B、C两个服务;B服务调用C、D服务;C服务调用D服务。
未使用本申请实施例提供的方式进行版本上限时,四个服务的流量的拓扑图如图4所示:网关调用A服务v1.0.0版本;A服务v1.0.0版本会分别调用B、C服务的v1.0.0版本和v1.1.0版本;B服务v1.0.0以及v1.1.0版本分别调用C服务v1.0.0版本和v1.1.0、以及D服务;C服务v1.0.0以及v1.1.0版本分别调用D服务。
在使用本申请实施例提供的方法时,四个服务的流量的拓扑图,如图5所示:网关调用A服务v1.0.0;A服务v v1.0.0会根据灰度配置文件,针对流量进行灰度发布策略的匹配。对于染色成功的流量怎只会调用B、C服务v1.1.0版本。染色识别的流量则只会调用B、C服务的v1.0.0版本;B服务v1.0.0以及v1.1.0版本调用C,D服务;C服务v1.0.0以及v1.1.0版本调用C,D服务。
可选地,在采用本申请实施例提供的全链路的灰度发布方法进行发布上线时,大致的步骤如图6所示,包括以下步骤:
S601、在配置中心中创建灰度配置文件。
S602、配置灰度策略以及灰度服务。
其中,灰度服务指代灰度发布的服务版本。
S603、在配置中心编辑完成后,点击发布按钮,灰度计划开始生效。
S604、灰度发布配置文件生效期间,动态调配灰度策略和策略值灰度,并使用Jaeger或zipkin观察灰度服务是否正常。
需要说明的是,当启动灰度发布后,当观察到新发布的业务系统出现异常时,可以直接将灰度配置文件清空或删除,此时将不会有任何流量进入到新发布的服务版本中。
S605、当灰度发布计划执行一段时间后,观察灰度的服务业务是否正常,如果都确认正常后,首先将灰度权重比例切换到100%,并且将其他灰度策略删除。
本申请实施例提供的一种全链路的灰度发布方法,应用于灰度发布系统。其中,灰度发布系统至少包括微服务网关以及边车负载均衡组件,该通过微服务网关接收用户发起的服务请求,并将所述服务请求与灰度配置文件中的灰度策略进行匹配。若服务请求与所述灰度策略匹配成功,则为服务请求打上颜色标记,最后将服务请求下发。由边车负载均衡组件拦截下发的服务请求,并判断所述服务请求是否存在颜色标记。若判断出服务请求存在颜色标记,则筛选出所请求的服务在当前灰度发布版本的实例,进行服务请求的转发。所以可以满足多条灰度策略,并且实现了对灰度发布的流程的有效控制,从而可以支持多个服务同时进行灰度发布,实现全链路灰度发布。
本申请另一实施例提供了另一种全链路的灰度发布方法,同样应用于灰度发布系统。其中,灰度发布系统至少包括微服务网关以及边车负载均衡组件。如图7所示,本申请实施例提供的全链路的灰度发布方法,包括以下步骤:
S701、微服务网关接收用户发起的服务请求。
同样,在执行步骤S701之后,微服务网关还可以进一步对服务请求进行预处理。
其中,所述预处理至少包括用户认证以及用户鉴权。并且若服务请求通过用户认证以及用户鉴权,则针对预处理后的服务请求,执行所步骤S702。
S702、微服务网关将服务请求与灰度配置文件中的灰度策略进行匹配。
需要说明的是,步骤S702的具体实施过程可相应地参考步骤S102的具体实施过程,此处不再赘述。
S703、微服务网关判断服务请求与灰度配置文件中的灰度策略是否匹配成功。
其中,若判断出服务请求与灰度配置文件中的灰度策略匹配成功,则执行步骤S704,若判断出服务请求与灰度配置文件中的灰度策略未匹配成功,则执行步骤S705。
S704、微服务网关在服务请求的头部中添加与灰度策略对应的颜色标记。
在本申请实施例中,采用在服务请求的头部中添加颜色标记的方式实现对服务请的染色。并且,与不同的灰度策略相匹配,则采用灰度策略对应的颜色标记,以能表示出服务请求所匹配的灰度策略。
S705、微服务网关下发服务请求。
S706、边车负载均衡组件拦截下发的所述服务请求,并判断服务请求是否存在颜色标记。
其中,若判读出服务请求存在染色标记,则执行步骤S707;若判读出服务请求不存在染色标记,则对服务请求进行正常的处理,所以此时执行步骤S710。
S707、筛选出所请求的服务在当前灰度发布版本的实例。
需要说明的是,步骤S707的具体实施方式相应地参考步骤S107,此处不再赘述。
S708、边车负载均衡组件判断是否筛选到所请求的服务在当前灰度发布版本的实例。
其中,若判断出筛选到所请求的服务在当前灰度发布版本的实例,则执行步骤S709。若判断出未筛选到所请求的服务在当前灰度发布版本的实例,则只能对服务请求进行正常的处理,所以此时执行步骤S710。
S709、针对筛选出的所请求的服务在当前灰度发布版本的实例,转发服务请求。
S710、随机从注册中心的实例列表中挑选出一个实例进行服务请求的转发。
本申请另一实施例提供了一种灰度发布系统,如图8所示,包括:
微服务网关801,用于接收用户发起的服务请求,并将服务请求与灰度配置文件中的灰度策略进行匹配,以及用于在服务请求与灰度策略匹配成功,为服务请求打上颜色标记,并下发服务请求。
边车负载均衡组件802,用于拦截下发的服务请求,并判断服务请求是否存在颜色标记,以及用于判断出服务请求存在颜色标记时,筛选出所请求的服务在当前灰度发布版本的实例,进行服务请求的转发。
可选地,本申请另一实施例提供的一种灰度发布系统中,灰度策略包括多个灰度子策略,微服务网关执行将服务请求与灰度配置文件中的灰度策略进行匹配时,用于:
将服务请求中的多个信息,分别与灰度配置文件中的对应的灰度子策略进行匹配,得到每个灰度子策略对应的匹配结果,并基于各个灰度子策略间的执行关系,以及每个灰度子策略对应的匹配结果,确定服务请求与灰度策略的最终匹配结果。
其中,执行关系包括或关系、与关系以及非关系。
可选地,本申请另一实施例提供的一种灰度发布系统中,微服务网关执行为服务请求打上颜色标记时,用于:
在服务请求的头部中添加与灰度策略对应的颜色标记。
可选地,本申请另一实施例提供的一种灰度发布系统中,微服务网关,还用于:
对服务请求进行预处。
其中,预处理至少包括用户认证以及用户鉴权。并且若服务请求通过用户认证以及用户鉴权,则微服务网关针对预处理后的服务请求,执行将服务请求与灰度配置文件中的灰度策略进行匹配。
可选地,本申请另一实施例提供的一种灰度发布系统中,边车负载均衡组件,还用于:
在判断出服务请求存在颜色标记,或未筛选到所请求的服务在当前灰度发布的实例版本时,随机从注册中心的实例列表中挑选出一个实例进行服务请求的转发。
需要说明的是,本申请上述实施例提供的微服务网关和边车负载均衡组件实现各个功能时的具体工作过程,可相应地参考上述方法实施例中的相应的步骤,此处不再赘述。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种全链路的灰度发布方法,其特征在于,应用于灰度发布系统,其中,所述灰度发布系统至少包括微服务网关以及边车负载均衡组件,所述全链路的灰度发布方法,包括:
所述微服务网关接收用户发起的服务请求;
所述微服务网关将所述服务请求与灰度配置文件中的灰度策略进行匹配;
若所述服务请求与所述灰度策略匹配成功,则所述微服务网关为所述服务请求打上颜色标记;
所述微服务网关下发所述服务请求;
所述边车负载均衡组件拦截下发的所述服务请求,并判断所述服务请求是否存在颜色标记;
所述边车负载均衡组件若判断出所述服务请求存在颜色标记,则筛选出所请求的服务在当前灰度发布版本的实例,进行所述服务请求的转发。
2.根据权利要求1所述的方法,其特征在于,所述灰度策略包括多个灰度子策略,所述微服务网关将所述服务请求与灰度配置文件中的灰度策略进行匹配,包括:
所述微服务网关将所述服务请求中的多个信息,分别与所述灰度配置文件中的对应的灰度子策略进行匹配,得到每个所述灰度子策略对应的匹配结果;
基于各个所述灰度子策略间的执行关系,以及每个所述灰度子策略对应的匹配结果,确定所述服务请求与所述灰度策略的最终匹配结果;其中,所述执行关系包括或关系、与关系以及非关系。
3.根据权利要求1所述的方法,其特征在于,所述微服务网关为所述服务请求打上颜色标记,包括:
所述微服务网关在所述服务请求的头部中添加与所述灰度策略对应的颜色标记。
4.根据权利要求1所述的方法,其特征在于,所述微服务网关接收用户发起的服务请求之后,还包括:
所述微服务网关对所述服务请求进行预处理;其中,所述预处理至少包括用户认证以及用户鉴权;
若所述服务请求通过用户认证以及用户鉴权,则针对预处理后的所述服务请求,执行所述将所述服务请求与灰度配置文件中的灰度策略进行匹配。
5.根据权利要求1所述的方法,其特征在于,还包括:
所述边车负载均衡组件若判断出所述服务请求存在颜色标记,或未筛选到所请求的服务在当前灰度发布的实例版本,则随机从注册中心的实例列表中挑选出一个实例进行所述服务请求的转发。
6.一种灰度发布系统,其特征在于,包括:
微服务网关,用于接收用户发起的服务请求,并将所述服务请求与灰度配置文件中的灰度策略进行匹配,以及用于在所述服务请求与所述灰度策略匹配成功,为所述服务请求打上颜色标记,并下发所述服务请求;
边车负载均衡组件,用于拦截下发的所述服务请求,并判断所述服务请求是否存在颜色标记,以及用于判断出所述服务请求存在颜色标记时,筛选出所请求的服务在当前灰度发布版本的实例,进行所述服务请求的转发。
7.根据权利要求6所述的系统,其特征在于,所述灰度策略包括多个灰度子策略,所述微服务网关执行所述将所述服务请求与灰度配置文件中的灰度策略进行匹配时,用于:
将所述服务请求中的多个信息,分别与所述灰度配置文件中的对应的灰度子策略进行匹配,得到每个所述灰度子策略对应的匹配结果,并基于各个所述灰度子策略间的执行关系,以及每个所述灰度子策略对应的匹配结果,确定所述服务请求与所述灰度策略的最终匹配结果;其中,所述执行关系包括或关系、与关系以及非关系。
8.根据权利要求6所述的系统,其特征在于,所述微服务网关执行所述为所述服务请求打上颜色标记时,用于:
在所述服务请求的头部中添加与所述灰度策略对应的颜色标记。
9.根据权利要求6所述的系统,其特征在于,所述微服务网关,还用于:
对所述服务请求进行预处理;其中,所述预处理至少包括用户认证以及用户鉴权;若所述服务请求通过用户认证以及用户鉴权,则所述微服务网关针对预处理后的所述服务请求,执行所述将所述服务请求与灰度配置文件中的灰度策略进行匹配。
10.根据权利要求6所述的系统,其特征在于,所述边车负载均衡组件,还用于:
在判断出所述服务请求存在颜色标记,或未筛选到所请求的服务在当前灰度发布的实例版本时,随机从注册中心的实例列表中挑选出一个实例进行所述服务请求的转发。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110610163.1A CN113382051A (zh) | 2021-06-01 | 2021-06-01 | 一种全链路的灰度发布方法及灰度发布系统 |
PCT/CN2022/087858 WO2022252856A1 (zh) | 2021-06-01 | 2022-04-20 | 一种全链路的灰度发布方法及灰度发布系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110610163.1A CN113382051A (zh) | 2021-06-01 | 2021-06-01 | 一种全链路的灰度发布方法及灰度发布系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113382051A true CN113382051A (zh) | 2021-09-10 |
Family
ID=77575460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110610163.1A Pending CN113382051A (zh) | 2021-06-01 | 2021-06-01 | 一种全链路的灰度发布方法及灰度发布系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113382051A (zh) |
WO (1) | WO2022252856A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923081A (zh) * | 2021-10-15 | 2022-01-11 | 北京同城必应科技有限公司 | 分布式环境下灰度发布的业务网关解决方案 |
CN113965510A (zh) * | 2021-09-23 | 2022-01-21 | 唯品会(广州)软件有限公司 | 一种流量染色方法和系统 |
CN114064062A (zh) * | 2022-01-17 | 2022-02-18 | 北京快成科技有限公司 | 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置 |
WO2022252856A1 (zh) * | 2021-06-01 | 2022-12-08 | 中国民航信息网络股份有限公司 | 一种全链路的灰度发布方法及灰度发布系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104966206A (zh) * | 2015-05-12 | 2015-10-07 | 百度在线网络技术(北京)有限公司 | 对移动应用进行灰度发布的方法、装置和系统 |
CN108632374A (zh) * | 2018-05-09 | 2018-10-09 | 星络科技有限公司 | 软件灰度发布方法及装置 |
CN109194760A (zh) * | 2018-09-14 | 2019-01-11 | 深圳市佰仟金融服务有限公司 | 业务处理方法、网络系统及服务器 |
CN109788029A (zh) * | 2018-12-14 | 2019-05-21 | 平安信托有限责任公司 | 微服务的灰度调用方法、装置、终端及可读存储介质 |
US20190319885A1 (en) * | 2018-04-16 | 2019-10-17 | Citrix Systems, Inc. | Policy based service routing |
CN111580846A (zh) * | 2020-05-15 | 2020-08-25 | 厦门靠谱云股份有限公司 | 一种基于混合框架的微服务灰度发布方法 |
CN111736872A (zh) * | 2020-06-22 | 2020-10-02 | 平安健康保险股份有限公司 | 灰度发布升级方法、装置、计算机系统及可读存储介质 |
CN112181458A (zh) * | 2020-09-25 | 2021-01-05 | 中国建设银行股份有限公司 | 灰度规则的配置、灰度路由方法、装置、设备及存储介质 |
CN112579319A (zh) * | 2020-12-07 | 2021-03-30 | 中国民航信息网络股份有限公司 | 一种基于LRU Cache优化的服务调用方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113382051A (zh) * | 2021-06-01 | 2021-09-10 | 中国民航信息网络股份有限公司 | 一种全链路的灰度发布方法及灰度发布系统 |
-
2021
- 2021-06-01 CN CN202110610163.1A patent/CN113382051A/zh active Pending
-
2022
- 2022-04-20 WO PCT/CN2022/087858 patent/WO2022252856A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104966206A (zh) * | 2015-05-12 | 2015-10-07 | 百度在线网络技术(北京)有限公司 | 对移动应用进行灰度发布的方法、装置和系统 |
US20190319885A1 (en) * | 2018-04-16 | 2019-10-17 | Citrix Systems, Inc. | Policy based service routing |
CN108632374A (zh) * | 2018-05-09 | 2018-10-09 | 星络科技有限公司 | 软件灰度发布方法及装置 |
CN109194760A (zh) * | 2018-09-14 | 2019-01-11 | 深圳市佰仟金融服务有限公司 | 业务处理方法、网络系统及服务器 |
CN109788029A (zh) * | 2018-12-14 | 2019-05-21 | 平安信托有限责任公司 | 微服务的灰度调用方法、装置、终端及可读存储介质 |
CN111580846A (zh) * | 2020-05-15 | 2020-08-25 | 厦门靠谱云股份有限公司 | 一种基于混合框架的微服务灰度发布方法 |
CN111736872A (zh) * | 2020-06-22 | 2020-10-02 | 平安健康保险股份有限公司 | 灰度发布升级方法、装置、计算机系统及可读存储介质 |
CN112181458A (zh) * | 2020-09-25 | 2021-01-05 | 中国建设银行股份有限公司 | 灰度规则的配置、灰度路由方法、装置、设备及存储介质 |
CN112579319A (zh) * | 2020-12-07 | 2021-03-30 | 中国民航信息网络股份有限公司 | 一种基于LRU Cache优化的服务调用方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022252856A1 (zh) * | 2021-06-01 | 2022-12-08 | 中国民航信息网络股份有限公司 | 一种全链路的灰度发布方法及灰度发布系统 |
CN113965510A (zh) * | 2021-09-23 | 2022-01-21 | 唯品会(广州)软件有限公司 | 一种流量染色方法和系统 |
CN113965510B (zh) * | 2021-09-23 | 2023-04-18 | 唯品会(广州)软件有限公司 | 一种流量染色方法和系统 |
CN113923081A (zh) * | 2021-10-15 | 2022-01-11 | 北京同城必应科技有限公司 | 分布式环境下灰度发布的业务网关解决方案 |
CN114064062A (zh) * | 2022-01-17 | 2022-02-18 | 北京快成科技有限公司 | 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置 |
CN114064062B (zh) * | 2022-01-17 | 2022-05-13 | 北京快成科技有限公司 | 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022252856A1 (zh) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113382051A (zh) | 一种全链路的灰度发布方法及灰度发布系统 | |
CN109358881B (zh) | 一种基于智能合约的权限可控的智能合约升级方法 | |
US20070291741A1 (en) | Payment System and Its Method for Supporting User Verification in Voip Configuration | |
CN106775713B (zh) | 文件审核方法、装置及文件提交控制系统 | |
CN109240830A (zh) | 基于服务器健康以及客户端信息的应用智能请求管理 | |
US20170308972A1 (en) | Improved customer profiling system and method therefor | |
WO2016069608A1 (en) | Real-time segregation of duties for business-critical applications | |
CA2960311A1 (en) | Improved customer profiling system and method therefor | |
CN106951773A (zh) | 用户角色分配校验方法及系统 | |
CN110619208A (zh) | 用户验证方法、服务器、用户设备和系统 | |
CN113360800A (zh) | 无特征数据处理方法、装置、计算机设备及存储介质 | |
CN110930043A (zh) | 授信会签方法、装置、计算机设备及存储介质 | |
CN111143866B (zh) | 基于多场景模式的权限变更方法、装置、设备及介质 | |
US20240289775A1 (en) | Post-Provisioning Authentication Protocols | |
US20160035009A1 (en) | System and Method for Providing On-Demand Service Advertising | |
CN113469637B (zh) | 一种补贴发放方法和系统 | |
KR102129817B1 (ko) | 텍스트 기반 상담 품질 관리 시스템 및 방법 | |
JP2012018503A (ja) | 承認システム、承認用端末、サーバ、承認方法、情報管理方法、及びプログラム | |
US20140324492A1 (en) | Context-based business process management | |
CN112465491A (zh) | 一种政务软件应用管理系统 | |
KR101799412B1 (ko) | 최적 물류 프로세스 제공방법 | |
JP2004102479A (ja) | 脆弱性検査情報提供システム及び脆弱性検査情報提供方法 | |
CN108494809A (zh) | 一种基于服务器封包镜像的反爬系统 | |
JP2009064117A (ja) | 契約管理システム | |
JP2000339156A (ja) | ライセンス管理システム |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210910 |