CN114726919B - 灰度流量控制的方法、装置、计算机设备及存储介质 - Google Patents
灰度流量控制的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114726919B CN114726919B CN202210285972.4A CN202210285972A CN114726919B CN 114726919 B CN114726919 B CN 114726919B CN 202210285972 A CN202210285972 A CN 202210285972A CN 114726919 B CN114726919 B CN 114726919B
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- version
- instance
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000009467 reduction Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000001276 controlling effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 241000522213 Dichilus lebeckioides Species 0.000 description 1
- 241000287219 Serinus canaria Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了灰度流量控制的方法、装置、计算机设备及存储介质,其中灰度流量控制的方法应用于注册中心。该方法包括如下步骤:接收微服务目标版本的流量配置信息,微服务目标版本为微服务灰度版本或微服务非灰度版本;根据流量配置信息生成虚拟实例信息;其中,虚拟实例信息用于表示微服务目标版本的实例扩展信息或实例缩小信息;然后再下发虚拟实例信息至微服务节点,以通过虚拟实例信息更新微服务节点中的实例列表,实例列表中的微服务灰度版本的实例数量用于控制微服务节点转发的灰度流量。本发明微服务节点转发的灰度流量控制效果更佳,实现持续有效地对微服务进行灰度流量控制,具有影响小、性能高以及易于使用等优点。
Description
技术领域
本发明涉及灰度发布技术领域,更为具体地,本发明能够提供一种灰度流量控制的方法、装置、计算机设备及存储介质。
背景技术
随着云计算和物联网等技术的迅速发展,用户对软件系统的需求逐渐趋于多样化。微服务架构虽然不是解决软件问题的银弹,但是微服务架构确实具有很多优点,例如,匹配敏捷开发、项目交付效率快,各个微服务可独立开发、各个微服务具有相对独立的功能、各个微服务可独立部署、分别担当整个系统业务中的一环,不同微服务彼此间可以相互关联和互相调度;因而微服务架构被越来越多的企业技术人员所采用。每个微服务均可具有灰度版本和非灰度版本,微服务的灰度发布对微服务功能的优化和升级起着至关重要的作用。但随着微服务数量的不断增加,微服务间调用所产生的流量也在明显增加。为了有效地分配调用微服务灰度版本所产生的灰度流量,现有技术可额外设置分流引擎,以根据预设分流规则和请求特征进行灰度流量分配,然而这种方式使用的分流引擎对每个微服务造成额外的负担,增加了微服务的性能损耗。因此,如何在减少甚至避免微服务性能损耗增加的前提下对灰度流量进行有效控制,成为了本领域技术人员亟待解决的技术问题和始终研究的重点。
发明内容
为解决现有灰度流量的控制方法存在微服务性能损耗增加的问题,本发明提供了一种灰度流量控制的方法、装置、计算机设备及存储介质,以达到减少甚至避免微服务性能损耗增加的前提下对灰度流量进行有效控制。
为实现上述的技术目的,本发明提供了一种灰度流量控制的方法,该方法应用于注册中心。具体地,该灰度流量控制的方法包括但不限于如下的至少一个步骤。
接收微服务目标版本的流量配置信息,微服务目标版本为微服务灰度版本或微服务非灰度版本。
根据流量配置信息生成虚拟实例信息;其中,虚拟实例信息用于表示微服务目标版本的实例扩展信息或实例缩小信息。
下发虚拟实例信息至微服务节点,以通过虚拟实例信息更新微服务节点中的实例列表,实例列表中的微服务灰度版本的实例数量用于控制微服务节点转发的灰度流量。
本发明的可实施方式中,根据流量配置信息生成虚拟实例信息包括:
通过流量配置信息确定微服务灰度版本的流量与微服务非灰度版本的流量的第一比值。
根据第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值。
基于第二比值生成虚拟实例信息。
本发明的可实施方式中,基于第二比值生成虚拟实例信息包括:
根据第二比值和当前实例数量确定虚拟出的实例。
其中,当前实例数量包括当前微服务灰度版本的实例数量和当前微服务非灰度版本的实例数量,虚拟出的实例为虚拟出的微服务灰度版本的实例或虚拟出的非灰度版本的实例。
利用虚拟出的实例生成虚拟实例信息。
本发明的可实施方式中,根据第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值包括:
基于第一比值与第二比值之间的预设函数关系,根据所述第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值。
本发明的可实施方式中,接收微服务目标版本的流量配置信息包括:
接收第一流量权重信息或第二流量权重信息;第一流量权重信息用于表示微服务灰度版本的流量占比,第二流量权重信息用于表示微服务非灰度版本的流量占比。
其中,流量配置信息包括第一流量权重信息或第二流量权重信息。
本发明的可实施方式中,接收微服务目标版本的流量配置信息之前还包括:
接收微服务节点的微服务版本和实例的注册信息;微服务版本和实例的注册信息用于生成真实实例信息,真实实例信息用于被下发至微服务节点之后生成微服务节点中的实例列表。
为实现上述的技术目的,本发明还提供一种灰度流量控制的装置,该装置应用于注册中心。具体地,该灰度流量控制的装置包括但不限于流量配置接收模块、虚拟实例生成模块以及虚拟实例下发模块。
流量配置接收模块,用于接收微服务目标版本的流量配置信息,微服务目标版本为微服务灰度版本或微服务非灰度版本。
虚拟实例生成模块,用于根据流量配置信息生成虚拟实例信息;其中,虚拟实例信息用于表示微服务目标版本的实例扩展信息或实例缩小信息。
虚拟实例下发模块,用于下发虚拟实例信息至微服务节点,以通过虚拟实例信息更新微服务节点中的实例列表,实例列表中的微服务灰度版本的实例数量用于控制微服务节点转发的灰度流量。
本发明的可实施方式中,虚拟实例生成模块,用于通过流量配置信息确定微服务灰度版本的流量与微服务非灰度版本的流量的第一比值,并用于根据第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值,以及用于基于第二比值生成虚拟实例信息。
本发明的可实施方式中,虚拟实例生成模块,用于根据第二比值和当前实例数量确定虚拟出的实例。
其中,当前实例数量包括当前微服务灰度版本的实例数量和当前微服务非灰度版本的实例数量,虚拟出的实例为虚拟出的微服务灰度版本的实例或虚拟出的非灰度版本的实例。
虚拟实例生成模块,用于利用虚拟出的实例生成虚拟实例信息。
本发明的可实施方式中,虚拟实例生成模块,用于基于第一比值与第二比值之间的预设函数关系,根据第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值。
本发明的可实施方式中,流量配置接收模块,用于接收第一流量权重信息或第二流量权重信息;第一流量权重信息用于表示微服务灰度版本的流量占比,第二流量权重信息用于表示微服务非灰度版本的流量占比。
其中,流量配置信息包括第一流量权重信息或第二流量权重信息。
本发明的可实施方式中,灰度流量控制的装置还可包括节点服务注册模块。
节点服务注册模块,用于接收微服务节点的微服务版本和实例的注册信息;微服务版本和实例的注册信息用于生成真实实例信息,真实实例信息用于被下发至微服务节点之后生成微服务节点中的实例列表。
为实现上述的技术目的,本发明还能够提供一种计算机设备,计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行本发明任一实施例中灰度流量控制的方法的步骤。
为实现上述的技术目的,本发明还可提供一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本发明任一实施例中灰度流量控制的方法的步骤。
本发明有益效果为:本发明根据微服务目标版本的流量配置信息生成虚拟实例信息,以及通过下发的虚拟实例信息更新微服务节点各自所维护的实例列表,从而通过微服务灰度版本的实例数量有效地控制微服务节点转发的灰度流量,本发明对于微服务节点来说仍按照已有的运行方式进行微服务请求转发,而转发的灰度流量根据实例列表中的虚拟实例数量进行分配,有效避免现有技术由于灰度流量控制而导致微服务额外的性能损耗问题。本发明微服务节点转发的灰度流量控制效果更佳,实现持续有效地对微服务进行灰度流量控制,其具有影响小、性能高及易于使用等优点。本发明能够降低甚至避免对客户端的改动,用户仅需要更新服务端(注册中心)配置便可以实现灰度发布能力,本发明对不同微服务的控制集成在服务端,若客户端下线或调节负载均衡能力都可以采用虚拟化服务端不同服务数量来实现,以减少客户端接入注册中心的开发成本,对大多数用户来说可降低开发成本,将复杂逻辑统一交给服务端处理,所以本发明提供的技术方案具有配置简单、易于维护和使用等优点。
附图说明
图1示出了本发明一个或多个实施例中灰度流量控制的方法的一种可实施方式示意图。
图2示出了本发明一个或多个实施例中灰度流量控制的方法的另一可实施方式示意图。
图3示出了本发明一个或多个实施例中应用本发明的微服务架构的工作流程示意图。
图4示出了本发明一个或多个实施例中微服务整体架构的结构组成示意图。
图5示出了本发明一个或多个实施例中按照流量比1:1的虚拟实例列表转换的示意图。
图6示出了本发明一个或多个实施例中灰度流量控制的装置的一种可实施方式示意图。
图7示出了本发明一个或多个实施例中灰度流量控制的装置的另一可实施方式示意图。
图8示出了本发明一个或多个实施例中计算机设备内部结构的组成示意图。
具体实施方式
下面结合说明书附图对本发明具体提供的灰度流量控制的方法、装置、计算机设备及存储介质进行详细的解释和说明。
本发明涉及的灰度发布又名金丝雀发布,是指在黑与白之间能够平滑过度的一种发布方式。灰度发布过程中可以进行A/B测试(testing),A例如指微服务非灰度版本,B例如指微服务灰度版本,其他的微服务请求使用B而产生的流量称为灰度流量,测试时允许一些微服务调用A,允许另一些微服务调用B;如果B使用效果更好,则逐步扩大调用流量,最终可将A的流量全部迁移到B上来。微服务框架的应用下有很多具有独立功能的微服务,微服务可简称为服务,每个微服务都可以对流量进行灰度发布;即每个微服务均可具有灰度版本,微服务灰度版本之外的其他版本为微服务非灰度版本。
如图1所示,并可结合图2,本发明一个或多个实施例能够提供一种灰度流量控制的方法,本发明灰度流量控制的方法应用于注册中心,灰度流量控制的方法可包括但不限于如下的一个或多个步骤。
步骤110,接收微服务目标版本的流量配置信息,微服务目标版本为微服务灰度版本或微服务非灰度版本。本实施例中的非灰度版本可理解为旧版本或正在大量使用的版本,灰度版本可理解为新版本。
可选地,本发明实施例中接收微服务目标版本的流量配置信息包括:接收第一流量权重信息或第二流量权重信息;第一流量权重信息用于表示微服务灰度版本的流量占比,第二流量权重信息用于表示微服务非灰度版本的流量占比;其中,流量配置信息可包括但不限于第一流量权重信息或第二流量权重信息。
如图4所示,本发明实施例接收微服务目标版本的流量配置信息之前还包括:步骤100,接收微服务节点的微服务版本和实例的注册信息;微服务版本和实例的注册信息用于生成真实实例信息,真实实例信息用于被下发至微服务节点之后生成微服务节点中的实例列表。应当理解的是,本发明所涉及的注册中心(开启服务发现,service-discover)能够用于提供微服务注册能力,微服务架构下的各微服务均可以注册到注册中心上,以暴露自身服务,通过注册中心对不同微服务进行区分和管理,不同微服务之间的调用可通过注册中心获知不同微服务的实例,据此维护各自的实例列表和根据实例列表进行其他微服务的调用,该方式大大降低了微服务间通讯和管理的成本。
本发明微服务架构下的所有微服务均注册到注册中心,以通过注册到注册中心实现整体流量管理。每个微服务可具有多个实例,且每个微服务版本可具有一个或多个实例,不同实例在注册时需要向注册中心明确服务名称和实例版本信息。图4中示例地给出了注册到注册中心两个微服务:服务A、服务B,服务A包括版本1和版本2,服务A的版本1包括实例1、实例2、实例3,服务A的版本2包括实例4和实例5,服务A的版本1为非灰度版本、版本2为灰度版本,或者版本2为非灰度版本、版本1为灰度版本;服务B包括版本1和版本2,服务B的版本1包括实例1、实例2及实例3,服务B的版本2包括实例4和实例5,服务B的版本1为非灰度版本、版本2为灰度版本,或者服务B的版本2为非灰度版本、版本1为灰度版本。图示的箭头可用于表示服务A(service-consumer-A)调用服务B(service-producer-B),或可表示服务B(service-consumer-B)调用服务A(service-producer-A)。应当理解的是,图4中的微服务数量、版本数量、实例数量仅仅是示意性的,实施时将根据实际需求对数量具体值进行合理设置。
步骤120,根据流量配置信息生成虚拟实例信息;其中,本发明虚拟实例信息用于表示微服务目标版本的实例扩展信息或者实例缩小信息。本实施例中的实例扩展信息用于增加目标版本的虚拟实例,而实例缩小信息用于减少目标版本的虚拟实例,本发明通过注册中心生成用于调节微服务的实例列表中目标版本实例数量的虚拟实例信息。其中流量配置信息例如可为目标版本的流量占总流量的百分比或具体转发量或流量对应的标识等,当然并不限于此。
如图5所示,本发明根据流量配置信息生成虚拟实例信息包括:通过流量配置信息确定微服务灰度版本的流量与微服务非灰度版本的流量的第一比值,根据第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值,在确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值的基础上,基于第二比值生成虚拟实例信息。假设配置某个微服务S目标版本x对应流量为r(x),并确定当前微服务S其他版本y对应流量为r(y),若以x为灰度版本、y为非灰度版本为例,则第一比值具体为r(x):r(y),比如,r(x)为50%,则r(y)为50%;或者如果r(x)为具体流量值,则r(y)为已知的总流量与具体流量值r(x)的差值。
如图3所示,本发明实施例根据第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值具体包括:基于第一比值与第二比值之间的预设函数关系,根据第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值。本发明实施例第一比值与第二比值之间的预设函数关系为相等关系,可见本实施例能够基于第一比值与第二比值相等,根据已得到的第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值。当然,本发明涉及的预设函数关系例如还可以是比值关系或线性关系等。进一步地,本发明一个或多个实施例中基于第二比值生成虚拟实例信息包括:根据第二比值和当前实例数量确定虚拟出的实例;其中,当前实例数量包括当前微服务灰度版本的实例数量和当前微服务非灰度版本的实例数量,虚拟出的实例为虚拟出的微服务灰度版本的实例或虚拟出的非灰度版本的实例;利用虚拟出的实例生成虚拟实例信息。
假设微服务S目标版本x的实例数量为number(x)以及微服务S其他版本y的实例数量为number(y),本示例以第一比值与第二比值相等为例,则r(x):r(y)=number(x):number(y),若以x为灰度版本、y为非灰度版本为例,以number(x)为固定值,则计算得到的number(y)结果作为虚拟实例信息,或者以number(y)为固定值,则计算得到的number(x)作为虚拟实例信息;如果固定number(x)计算得到的number(y)结果为实例扩展信息,则在相同条件下固定number(y)计算得到的number(x)为实例缩小信息,反之亦然。本发明通过注册中心对微服务S的实例数量进行虚拟化动态扩展或缩小,例如将实例虚拟化为数量比number(x):number(y)=r(x):r(y)。假设微服务S目标版本x的初始实例数量为i1,微服务S其他版本y的初始实例数量为i2;以等比方式为例,如果目标版本x实例数量需要扩展a倍、其他版本y实例数量需要扩展b倍,则有(i1×a):(i2×b)=r(x):r(y),推导出a:b=(r(x)×i2):(r(y)×i1),由倍数a和b必须为整数,可令x0=r(x)×i2,y0=r(y)×i1,同时x0和y0的最小公倍数d,返回最新的a=x0/d,b=y0/d,从而确定虚拟实例信息;以加减方式为例,若目标版本x实例数量需增加a个、其他版本y实例数量需增加b个,则(i1+a):(i2+b)=r(x):r(y),推导出r(y)×a-r(x)×b=i2×r(x)-i1×r(y),从而确定虚拟实例信息。上述示意的等比方式或者加减方式仅仅是具体计算过程的可选择方式,在本发明技术方案基础上的等同替换或变形均在本发明保护范围之内。
步骤130,下发虚拟实例信息至微服务节点,以通过虚拟实例信息更新微服务节点中的实例列表,实例列表中的微服务灰度版本的实例数量用于控制微服务节点转发的灰度流量。本发明实现了通过注册中心将当前微服务(例如服务B)虚拟化的实例下发到所有的微服务(包括服务A),所有的微服务更新维护各自的实例列表,在此基础上,则所有请求当前微服务(例如服务B)的服务将会按照轮询的方式依次遍历实例列表(或称为虚拟实例列表),以基于实例列表中的微服务灰度版本的实例数量控制微服务节点转发的灰度流量,达到灰度流量控制的目标。
图5中实例性地给出了服务A维护的实例列表更新的过程。更新前服务A的实例列表包括版本1的实例1和实例2、版本2的实例3,此时通过轮询的方式遍历实例列表,实例3转发的流量为1/3。如果按照流量比1:1虚拟化,对应流量配置信息为50%,则该示例更新后服务A的实例列表包括版本1的实例1和实例2、版本2的两个实例3,此时通过轮询方式遍历实例列表,基于更新后的实例列表实例3转发的流量为1/2,即流量配置信息50%;该示例中的版本2例如可以为灰度版本。
结合图3的内容,本发明部署微服务的一个实例时,需要向注册中心注册服务和版本信息;通过注册中心配置版本流量比值,而且可通过修改注册中心不同服务的权重比进一步调整虚拟实例数量;注册中心具体通过虚拟化微服务的实例数量并更新每个微服务维护的实例列表;每个微服务引擎请求其余服务时,按照该微服务实例列表进行流量转发,最终可达到动态对所有微服务进行灰度放量的目标,从而控制整个微服务架构下不同版本的流量分配情况,极大降低了微服务发布对用户带来的影响;本发明更新流量配置后自动刷新各个微服务的实例列表,若有新服务注册或者有服务版本更新、实例变动的情况,则可按照本发明提供的技术方案执行,重新更新影响到的实例列表,以保证动态流量灰度发布。
可见本发明通过虚拟实例信息更改了各个微服务维护的实例列表,本发明具体实现了一种基于虚拟化实例数量的灰度流量分配方法。相比于通过单独设置的分流引擎实现灰度流量控制的方案,本发明各个微服务节点无需改变原有的运行方式,只需按照实例列表中的内容进行流量转发即可,而本发明通过下发虚拟实例信息更新了微服务实例列表,达到对节点转发的灰度流量进行有效控制的目的;所以本发明实现了在不增加微服务性能损耗的前提下对灰度流量的进行有效控制,有效解决现有技术因控制灰度流量而产生的微服务性能损耗增加的问题。另外,本发明的技术方案无需额外维护过多的数据或者元数据,对微服务节点来说仍然是基于实例列表进行流量转发,可见本发明不会造成大量额外的存储损耗,资源优化非常好。
微服务框架下的不同的微服务之间相互协调和相互配合,以响应用户请求。本发明实现在微服务框架下对微服务灰度版本进行更好更快地流量分配,即实现更好更快地对微服务进行灰度发布,以降低当前微服务引擎灰度发布的复杂性。在灰度发布过程中,通过让一部分用户使用微服务新版本且另一部分用户使用微服务旧版本,当确定新版本可以正常稳定运行后,通过不断调整权重将流量逐渐过渡到最新版本中,进而通过灰度发布达到提取、发现及调整问题、减少影响度等目的,促进微服务的平稳升级,大大降低微服务灰度发布的影响。面对微服务架构下微服务数量多、发布快情况,本发明通过动态进行灰度流量分配来达到每个微服务平滑升级,通过对灰度流量的有效控制方案可保证微服务更好、更快地发布,本发明持续有效地针对不同的微服务进行流量控制,以达到对用户影响小、性能高以及易于使用等技术目的,用户体验较佳。
如图6所示,与灰度流量控制的方法基于同一发明技术构思,本发明一个或多个实施例还能够提供一种灰度流量控制的装置。
该灰度流量控制的装置应用于注册中心,灰度流量控制的装置可包括但不限于流量配置接收模块、虚拟实例生成模块以及虚拟实例下发模块,具体说明如下。
流量配置接收模块,用于接收微服务目标版本的流量配置信息,微服务目标版本为微服务灰度版本或微服务非灰度版本。
虚拟实例生成模块,用于根据流量配置信息生成虚拟实例信息;其中,虚拟实例信息用于表示微服务目标版本的实例扩展信息或实例缩小信息。
虚拟实例下发模块,用于下发虚拟实例信息至微服务节点,以通过虚拟实例信息更新微服务节点中的实例列表,实例列表中的微服务灰度版本的实例数量用于控制微服务节点转发的灰度流量。
可选地,虚拟实例生成模块,用于通过流量配置信息确定微服务灰度版本的流量与微服务非灰度版本的流量的第一比值,并用于根据第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值,以及用于基于第二比值生成虚拟实例信息。
可选地,虚拟实例生成模块,用于根据第二比值和当前实例数量确定虚拟出的实例;其中,当前实例数量包括当前微服务灰度版本的实例数量和当前微服务非灰度版本的实例数量,虚拟出的实例为虚拟出的微服务灰度版本的实例或虚拟出的非灰度版本的实例;虚拟实例生成模块,用于利用虚拟出的实例生成虚拟实例信息。
可选地,虚拟实例生成模块,用于基于第一比值与第二比值之间的预设函数关系,根据第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值。
可选地,流量配置接收模块,用于接收第一流量权重信息或第二流量权重信息;第一流量权重信息用于表示微服务灰度版本的流量占比,第二流量权重信息用于表示微服务非灰度版本的流量占比;其中,流量配置信息包括第一流量权重信息或第二流量权重信息。
如图7所示,该灰度流量控制的装置还可包括但不限于节点服务注册模块。
节点服务注册模块,用于接收微服务节点的微服务版本和实例的注册信息;微服务版本和实例的注册信息用于生成真实实例信息,真实实例信息用于被下发至微服务节点之后生成微服务节点中的实例列表。
如图8所示,与灰度流量控制的方法基于同一发明技术构思,本发明一个或多个实施例还可提供一种计算机设备,该计算机设备包括但不限于存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行本发明任一实施例中的灰度流量控制的方法的步骤。其中灰度流量控制的方法详细的实现过程已在本说明书中有详细的记载,此处不再进行赘述。
如图8所示,与灰度流量控制的方法基于同一发明技术构思,本发明一个或多个实施例还可提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本发明任一实施例中的灰度流量控制的方法的步骤。其中灰度流量控制的方法详细的实现过程已在本说明书中有详细的记载,此处不再进行赘述。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读存储介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM,Random Access Memory),只读存储器(ROM,Read-Only Memory),可擦除可编辑只读存储器(EPROM,Erasable Programmable Read-Only Memory,或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM,Compact Disc Read-Only Memory)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA,Programmable Gate Array),现场可编程门阵列(FPGA,Field Programmable Gate Array)等。
在本说明书的描述中,参考术语“本实施例”、“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种灰度流量控制的方法,其特征在于,应用于注册中心;所述灰度流量控制的方法包括:
接收微服务目标版本的流量配置信息,所述微服务目标版本为微服务灰度版本或微服务非灰度版本;
根据所述流量配置信息生成虚拟实例信息;其中,所述虚拟实例信息用于表示微服务目标版本的实例扩展信息或实例缩小信息;所述实例扩展信息用于增加目标版本的虚拟实例,所述实例缩小信息用于减少目标版本的虚拟实例;
下发所述虚拟实例信息至微服务节点,以通过所述虚拟实例信息更新所述微服务节点中的实例列表,所述实例列表中的微服务灰度版本的实例数量用于控制所述微服务节点转发的灰度流量。
2.根据权利要求1所述的灰度流量控制的方法,其特征在于,所述根据所述流量配置信息生成虚拟实例信息包括:
通过所述流量配置信息确定微服务灰度版本的流量与微服务非灰度版本的流量的第一比值;
根据所述第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值;
基于所述第二比值生成所述虚拟实例信息。
3.根据权利要求2所述的灰度流量控制的方法,其特征在于,所述基于所述第二比值生成所述虚拟实例信息包括:
根据所述第二比值和当前实例数量确定虚拟出的实例;
其中,所述当前实例数量包括当前微服务灰度版本的实例数量和当前微服务非灰度版本的实例数量,所述虚拟出的实例为虚拟出的微服务灰度版本的实例或虚拟出的非灰度版本的实例;
利用所述虚拟出的实例生成所述虚拟实例信息。
4.根据权利要求2所述的灰度流量控制的方法,其特征在于,所述根据所述第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值包括:
基于第一比值与第二比值之间的预设函数关系,根据所述第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值。
5.根据权利要求1所述的灰度流量控制的方法,其特征在于,所述接收微服务目标版本的流量配置信息包括:
接收第一流量权重信息或第二流量权重信息;所述第一流量权重信息用于表示微服务灰度版本的流量占比,所述第二流量权重信息用于表示微服务非灰度版本的流量占比;
其中,所述流量配置信息包括所述第一流量权重信息或第二流量权重信息。
6.根据权利要求1所述的灰度流量控制的方法,其特征在于,所述接收微服务目标版本的流量配置信息之前还包括:
接收微服务节点的微服务版本和实例的注册信息;所述微服务版本和实例的注册信息用于生成真实实例信息,所述真实实例信息用于被下发至微服务节点之后生成微服务节点中的实例列表。
7.一种灰度流量控制的装置,其特征在于,应用于注册中心;所述灰度流量控制的装置包括:
流量配置接收模块,用于接收微服务目标版本的流量配置信息,所述微服务目标版本为微服务灰度版本或微服务非灰度版本;
虚拟实例生成模块,用于根据所述流量配置信息生成虚拟实例信息;其中,所述虚拟实例信息用于表示微服务目标版本的实例扩展信息或实例缩小信息;所述实例扩展信息用于增加目标版本的虚拟实例,所述实例缩小信息用于减少目标版本的虚拟实例;
虚拟实例下发模块,用于下发所述虚拟实例信息至微服务节点,以通过所述虚拟实例信息更新所述微服务节点中的实例列表,所述实例列表中的微服务灰度版本的实例数量用于控制所述微服务节点转发的灰度流量。
8.根据权利要求7所述的灰度流量控制的装置,其特征在于,
所述虚拟实例生成模块,用于通过所述流量配置信息确定微服务灰度版本的流量与微服务非灰度版本的流量的第一比值,并用于根据所述第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值,以及用于基于所述第二比值生成所述虚拟实例信息。
9.根据权利要求8所述的灰度流量控制的装置,其特征在于,
所述虚拟实例生成模块,用于根据所述第二比值和当前实例数量确定虚拟出的实例;
其中,所述当前实例数量包括当前微服务灰度版本的实例数量和当前微服务非灰度版本的实例数量,所述虚拟出的实例为虚拟出的微服务灰度版本的实例或虚拟出的非灰度版本的实例;
所述虚拟实例生成模块,用于利用所述虚拟出的实例生成所述虚拟实例信息。
10.根据权利要求8所述的灰度流量控制的装置,其特征在于,
所述虚拟实例生成模块,用于基于第一比值与第二比值之间的预设函数关系,根据所述第一比值确定微服务灰度版本的实例数量与微服务非灰度版本的实例数量的第二比值。
11.根据权利要求7所述的灰度流量控制的装置,其特征在于,
所述流量配置接收模块,用于接收第一流量权重信息或第二流量权重信息;所述第一流量权重信息用于表示微服务灰度版本的流量占比,所述第二流量权重信息用于表示微服务非灰度版本的流量占比;
其中,所述流量配置信息包括所述第一流量权重信息或第二流量权重信息。
12.根据权利要求7所述的灰度流量控制的装置,其特征在于,所述装置还包括节点服务注册模块;
所述节点服务注册模块,用于接收微服务节点的微服务版本和实例的注册信息;所述微服务版本和实例的注册信息用于生成真实实例信息,所述真实实例信息用于被下发至微服务节点之后生成微服务节点中的实例列表。
13.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项权利要求所述灰度流量控制的方法的步骤。
14.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至6中任一项权利要求所述灰度流量控制的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210285972.4A CN114726919B (zh) | 2022-03-22 | 2022-03-22 | 灰度流量控制的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210285972.4A CN114726919B (zh) | 2022-03-22 | 2022-03-22 | 灰度流量控制的方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114726919A CN114726919A (zh) | 2022-07-08 |
CN114726919B true CN114726919B (zh) | 2024-02-13 |
Family
ID=82240152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210285972.4A Active CN114726919B (zh) | 2022-03-22 | 2022-03-22 | 灰度流量控制的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114726919B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115499317B (zh) * | 2022-11-15 | 2023-04-07 | 阿里云计算有限公司 | 灰度验证方法、电子设备和可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365502A (zh) * | 2018-03-26 | 2019-10-22 | 华为技术有限公司 | 一种服务升级管理的方法、装置及存储介质 |
CN110609704A (zh) * | 2019-09-19 | 2019-12-24 | 聚好看科技股份有限公司 | 服务程序版本的灰度调整方法、装置及系统 |
CN111290867A (zh) * | 2020-02-27 | 2020-06-16 | 北京三快在线科技有限公司 | 流量调度方法、业务服务器、存储介质及流量调度系统 |
CN112000348A (zh) * | 2020-07-28 | 2020-11-27 | 金蝶医疗软件科技有限公司 | 服务灰度发布的控制方法、装置、计算机设备 |
CN112905210A (zh) * | 2021-03-24 | 2021-06-04 | 青岛聚看云科技有限公司 | 服务器及灰度发布方法 |
CN113315824A (zh) * | 2021-05-26 | 2021-08-27 | 武汉悦学帮网络技术有限公司 | 一种应用的灰度发布方法、装置及应用的灰度发布系统 |
CN114040024A (zh) * | 2020-07-20 | 2022-02-11 | 深圳兆日科技股份有限公司 | 基于网关的微服务灰度发布方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776099B2 (en) * | 2019-01-29 | 2020-09-15 | Salesforce.Com, Inc. | Release orchestration for cloud services |
-
2022
- 2022-03-22 CN CN202210285972.4A patent/CN114726919B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365502A (zh) * | 2018-03-26 | 2019-10-22 | 华为技术有限公司 | 一种服务升级管理的方法、装置及存储介质 |
CN110609704A (zh) * | 2019-09-19 | 2019-12-24 | 聚好看科技股份有限公司 | 服务程序版本的灰度调整方法、装置及系统 |
CN111290867A (zh) * | 2020-02-27 | 2020-06-16 | 北京三快在线科技有限公司 | 流量调度方法、业务服务器、存储介质及流量调度系统 |
CN114040024A (zh) * | 2020-07-20 | 2022-02-11 | 深圳兆日科技股份有限公司 | 基于网关的微服务灰度发布方法、装置、设备及存储介质 |
CN112000348A (zh) * | 2020-07-28 | 2020-11-27 | 金蝶医疗软件科技有限公司 | 服务灰度发布的控制方法、装置、计算机设备 |
CN112905210A (zh) * | 2021-03-24 | 2021-06-04 | 青岛聚看云科技有限公司 | 服务器及灰度发布方法 |
CN113315824A (zh) * | 2021-05-26 | 2021-08-27 | 武汉悦学帮网络技术有限公司 | 一种应用的灰度发布方法、装置及应用的灰度发布系统 |
Non-Patent Citations (2)
Title |
---|
The Pains and Gains of Microservices: A Systematic Grey Literature Review;Jacopo Soldani;《Journal of Systems and Software》;全文 * |
一种水平扩展微服务中数据库脚本版本控制方法;邓昌全;;电脑编程技巧与维护(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114726919A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10614117B2 (en) | Sharing container images between mulitple hosts through container orchestration | |
KR102103493B1 (ko) | 트랜잭셔널 미들웨어 기계 환경에서 버전 기반 라우팅을 지원하는 시스템 및 방법 | |
US8533701B2 (en) | Virtual machine image update service | |
CN112000348A (zh) | 服务灰度发布的控制方法、装置、计算机设备 | |
US8495621B2 (en) | Catalog-based software component management | |
CN112000434A (zh) | 一种基于Kubernetes动态管理服务治理规则配置方法和系统 | |
CN111124475A (zh) | 存储管理的方法、电子设备和计算机可读存储介质 | |
CN106856438B (zh) | 一种网络业务实例化的方法、装置及nfv系统 | |
US10728169B1 (en) | Instance upgrade migration | |
CN114726919B (zh) | 灰度流量控制的方法、装置、计算机设备及存储介质 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
CN114996337A (zh) | 多集群数据库管理系统及方法 | |
CN113204368B (zh) | 应用程序处理方法、服务器及存储介质 | |
CN114840222A (zh) | 基于esop系统的灰度发布方法及相关设备 | |
CN108664343B (zh) | 一种微服务的有状态调用方法及装置 | |
CN109408256A (zh) | 应用调用方法和装置 | |
CN113037625B (zh) | 一种面向跨界服务网络的分层路由方法 | |
CN113093995B (zh) | 一种云盘数据的迁移方法和系统 | |
CN115134238A (zh) | 业务系统发布方法、装置、计算机设备和存储介质 | |
CN110971664B (zh) | 一种接口服务管理系统 | |
US8904369B2 (en) | Method and system for automated process distribution | |
CN114997805A (zh) | 审批业务的配置方法、装置、电子设备和存储介质 | |
CN115442420A (zh) | 区块链跨链服务管理方法及装置 | |
CN113326052A (zh) | 业务组件的升级方法、装置、计算机设备和存储介质 | |
US20090183172A1 (en) | Middleware Bridge System And Method |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |