CN112995310A - 基于自定义路由的多分层调用灰度发布方法及装置 - Google Patents
基于自定义路由的多分层调用灰度发布方法及装置 Download PDFInfo
- Publication number
- CN112995310A CN112995310A CN202110183544.6A CN202110183544A CN112995310A CN 112995310 A CN112995310 A CN 112995310A CN 202110183544 A CN202110183544 A CN 202110183544A CN 112995310 A CN112995310 A CN 112995310A
- Authority
- CN
- China
- Prior art keywords
- gray
- label
- service request
- external service
- custom
- 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.)
- Granted
Links
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- 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
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及云计算技术,并提供一种基于自定义路由的多分层调用灰度发布方法及装置,其中,该灰度发布方法包括:根据全局灰度策略为获取的外部服务请求设置全局灰度标签,并根将所述外部服务请求路由至应用服务器的接入服务群组的不同容器组;根据应用内灰度策略为所述外部服务请求重新设置应用内灰度标签,并将所述外部服务请求路由至应用服务器的业务服务群组的不同容器组;当产生新的灰度需求时,根据预设的自定义灰度策略为所述外部服务请求设置自定义灰度标签,并对所述外部服务请求重新路由。本发明解决了现有的多版本灰度设计无法针对风险的变化对灰度策略进行调整的问题,实现了对灰度策略的灵活调整和路由。
Description
技术领域
本发明涉及云计算技术,具体涉及一种基于自定义路由的多分层调用灰度发布方法及装置。
背景技术
现有的分布式系统虽然有多版本灰度的设计,但依然存在以下缺陷:
1)一般的灰度设计是以子群组为单位去设计多版本灰度,当一个交易进入后台群组并执行后,其灰度标签即固定,后续无法再更改,且并容器无法采用流量分层的方法对各个子功能做多版本灰度设计,因此现有的设计缺少更细腻的分支策略。
2)由于各种功能运行的动态过程会产生条件参数,而这些条件参数可能会对灰度部分的风险大小产生影响。现有的多版本灰度设计无法针对风险的变化对灰度策略进行调整。
因此,现有技术中的多版本灰度设计无法满足灰度策略的灵活调整,也无法根据要验证的灰度功能分支场景的不同进行灵活路由。
发明内容
为了解决上述问题,本发明提供一种基于自定义路由的多分层调用灰度发布方法,涉及云计算技术。该灰度发布方法包括:
根据全局灰度策略为获取的外部服务请求设置全局灰度标签,并根据所述全局灰度标签将所述外部服务请求路由至应用服务器的接入服务群组的不同容器组;
根据应用内灰度策略为进入应用服务器的所述外部服务请求设置应用内灰度标签,并根据所述应用内灰度标签将所述外部服务请求路由至应用服务器的业务服务群组的不同容器组;
当产生新的灰度需求时,根据预设的自定义灰度策略为进入所述业务服务群组的不同容器组的所述外部服务请求设置自定义灰度标签,并根据所述自定义灰度标签对所述外部服务请求重新路由。
在一实施例中,所述全局灰度标签包括第一灰度标签及第一非灰度标签,所述根据全局灰度策略为获取的外部服务请求设置全局灰度标签,包括:
根据预先配置的全局灰度策略判断所述外部服务请求是否包含第一灰度标志信息;
若有,则为所述外部服务请求设置第一灰度标签;若无,则为所述外部服务请求设置第一非灰度标签。
在一实施例中,所述应用内灰度标签包括第二灰度标签及第二非灰度标签;
所述根据应用内灰度策略为进入应用服务器的所述外部服务请求设置应用内灰度标签,包括:
根据预先配置的应用内灰度策略识别所述外部服务请求是否包含第二灰度标志信息,若有,则为所述外部服务请求设置第二灰度标签;若无,则为所述外部服务请求设置第二非灰度标签。
在一实施例中,所述灰度发布方法还包括:
获取所述业务服务群组的不同容器组中的服务执行完毕后的动态参数;
根据所述动态参数以及预设的自定义路由规则判断是否产生新的灰度需求。
在一实施例中,所述根据所述自定义灰度标签对所述外部服务请求重新路由,包括:
根据所述自定义灰度标签将所述外部服务请求路由至当前群组内的其他容器组中;或
根据所述自定义灰度标签将所述外部服务请求路由至当前应用服务器的其他群组中;或
根据所述自定义灰度标签将所述外部服务请求路由至其他应用服务器;或
根据所述自定义灰度标签将所述外部服务请求路由至非服务节点。
本发明还提供一种基于自定义路由的多分层调用灰度发布装置,可用于实现本发明的任一基于自定义路由的多分层调用灰度发布方法,所述灰度发布装置包括:
第一灰度发布模块,用于根据全局灰度策略为获取的外部服务请求设置全局灰度标签,并根据所述全局灰度标签将所述外部服务请求路由至应用服务器的接入服务群组的不同容器组;
第二灰度发布模块,用于根据应用内灰度策略为进入应用服务器的所述外部服务请求设置应用内灰度标签,并根据所述应用内灰度标签将所述外部服务请求路由至应用服务器的业务服务群组的不同容器组;
第三灰度发布模块,用于当产生新的灰度需求时,根据预设的自定义灰度策略为进入所述业务服务群组的不同容器组的所述外部服务请求设置自定义灰度标签,并根据所述自定义灰度标签对所述外部服务请求重新路由。
在一实施例中,所述全局灰度标签包括第一灰度标签及第一非灰度标签;所述第一灰度发布模块包括:
第一识别单元,用于根据预先配置的全局灰度策略判断所述外部服务请求是否包含第一灰度标志信息;
第一标签单元,用于当所述外部服务请求包含第一灰度标志信息时,为所述外部服务请求设置第一灰度标签;当所述外部服务请求不包含第一灰度标志信息时,则为所述外部服务请求设置第一非灰度标签。
在一实施例中,所述应用内灰度标签包括第二灰度标签及第二非灰度标签;所述第二灰度发布模块包括:
第二识别单元,用于根据预先配置的应用内灰度策略识别所述外部服务请求是否包含第二灰度标志信息;
第二标签单元,用于当所述外部服务请求包含第二灰度标志信息时,为所述外部服务请求设置第二灰度标签;当所述外部服务请求不包含第二灰度标志信息时,则为所述外部服务请求设置第二非灰度标签。
在一实施例中,所述第三灰度发布模块还包括:
参数获取单元,获取所述业务服务群组的不同容器组中的服务执行完毕后的动态参数;
判断单元,根据所述动态参数以及预设的自定义路由规则判断是否产生新的灰度需求。
在一实施例中,所述第三灰度发布模块还包括自定义路由单元,用于根据所述自定义灰度标签将所述外部服务请求路由至当前群组内的其他容器组中;或
根据所述自定义灰度标签将所述外部服务请求路由至当前应用服务器的其他群组中;或
根据所述自定义灰度标签将所述外部服务请求路由至其他应用服务器;或
根据所述自定义灰度标签将所述外部服务请求路由至非服务节点。
本发明提供的基于自定义路由的多分层调用灰度发布方法及装置,解决了现有的多版本灰度设计中,灰度标签固定且后续无法更改的问题;通过DSF服务框架设置更细腻的自定义灰度策略,解决了现有的多版本灰度设计无法针对风险的变化对灰度策略进行调整的问题,实现了对灰度策略的灵活调整和路由。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于自定义路由的多分层调用灰度发布方法的示意图。
图2为本发明提供的一个示例的总体流程图。
图3为图2所示的总体流程图的部分示意图。
图4为本发明给出的一个示例的服务调用效果示意图。
图5为本发明的实现自定义路由的示意图。
图6为本发明的基于自定义路由的多分层调用灰度发布装置的示意图。
图7为本发明的另一种基于自定义路由的多分层调用灰度发布装置的示意图。
图8为本发明的另一种基于自定义路由的多分层调用灰度发布装置的示意图。
图9为本发明的另一种基于自定义路由的多分层调用灰度发布装置的示意图。
图10为本发明的另一种基于自定义路由的多分层调用灰度发布装置的示意图。
图11为本发明的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明提供一种基于自定义路由的多分层调用灰度发布方法,包括:
步骤S102,根据全局灰度策略为获取的外部服务请求设置全局灰度标签,并根据所述全局灰度标签将所述外部服务请求路由至应用服务器的接入服务群组的不同容器组。
此处一个示例进行说明,参见图2所示总体流程图的步骤(0)至步骤(3)。
(0)CMC配置中心配置全局灰度策略,且该全局灰度策略是逻辑易判断的,比如白名单、渠道(合作方)、地区号等,并配置通过“系统分片号(set号)”“服务灰度控制”“多分支灰度开关”等模块控制set开放关闭、服务灰度范围、灰度的执行方法级等。
(1)接入层对应应用服务器A的接入服务群组接收一外部服务请求;其中,所述应用服务器A例如是终端上安装的APP服务器。
(2)接入层对应应用服务器A的接入服务群组根据全局灰度策略对所述外部服务请求进行识别,并依据识别结果进行重定向并染色,给所述外部服务请求设置全局灰度标签;
(3)DSF服务框架/软负载均衡服务框架根据全局灰度标签将所述外部服务请求路由至所述接入服务群组的容器组中。
其中,DSF网关为web前端处理到后端分布式业务处理的入口,当外部服务请求被接入层对应应用服务器的接入服务群组识别为灰度后,进行重定向并染色后设置全局灰度标签,并在链路各个环节透明传递,借助DSF/软负载均衡(nginx等)等基础框架实现灰度流量的路由转发,实现整个交易链路的灰度发布能力,其中,一个外部服务请求对应一个流量。Web前端处理是基于软负载均衡实现前端处理功能的灰度发布,重定向过程和前端灰度策略不在本专利详述。
步骤S104,根据应用内灰度策略为进入应用服务器的所述外部服务请求设置应用内灰度标签,并根据所述应用内灰度标签将所述外部服务请求路由至应用服务器的业务服务群组的容器组。
应用内灰度策略也由CMC配置中心配置。参见图2所示总体流程图的步骤(4)至步骤(5)。
(4)在应用服务器A内,根据应用内灰度策略对进入接入服务群组的外部服务请求进行识别,并依据识别结果给所述外部服务请求设置应用内灰度标签;
具体为,DSF服务框架/软负载均衡服务框架根据CMC配置中心配置的应用内灰度策略,对进入应用服务器的接入服务群组的外部服务请求重新进行识别,应用内须执行流量染色逻辑,主动调用CocoaUtis.setXTag(xxx)接口设置应用内灰度标签。
(5)借助DSF服务框架/软负载均衡服务框架根据应用内灰度标签将所述进入接入服务群组的外部服务请求路由至业务服务群组1的容器组中。
步骤S106,当产生新的灰度需求时,根据预设的自定义灰度策略为进入所述业务服务群组的不同容器组的所述外部服务请求设置自定义灰度标签,并根据所述自定义灰度标签对所述外部服务请求重新路由。
参见图2所示总体流程图的步骤(60)、(61)、(62)和步骤(6)至步骤(9)。
(60)具体为,利用dubbo的路由扩展机制,扩展一个用户自定义路由类型,同时定义一个抽象的用户路由接口,应用服务器通过实现该抽象接口,编写自定义灰度策略。(61)和(62)为DSF服务框架/软负载均衡服务框架在执行到路由层时,首先要接入拦截,将所有的待选服务提供方送给应用服务器路由接口进行筛选,保留合法的服务提供方,然后返回拦截;之后再如步骤(6)至步骤(9)所示,按照所述自定义灰度策略将外部服务请求重新路由到需要的服务提供方上。此处的服务提供方即相当于容器组。
具体地,与步骤S102和步骤S104类似,根据自定义灰度策略给所述外部服务请求设置自定义灰度标签,并根据所述自定义灰度标签将外部服务请求重新路由,例如步骤(6)中路由至其他服务提供方n上。需要说明的是,步骤(6)至步骤(9)为并列关系,既可能同时执行,也可仅执行其中的一个步骤或两个步骤或三个步骤。
本发明中各级灰度标签的优先级为:自定义灰度标签>应用内灰度标签>全局灰度标签。调用链进入新应用后,应用内灰度标签重新染色;自定义灰度标签在完成对应服务调用后重置;全局灰度标签在完成一次接入服务功能闭环返回入口应用时重置。分布式服务DSF网关作为公共的HTTP转RPC协议的节点,需要调用方在调用时将各级灰度标签携带在HTTP头部,DSF网关自动识别各级灰度标签并传递给后端相应的服务节点。
上述实施例中的基于自定义路由的多分层调用灰度发布方法,解决了现有的多版本灰度设计中,灰度标签固定且后续无法更改的问题;通过DSF服务框架设置更细腻的自定义灰度策略,解决了现有的多版本灰度设计无法针对风险的变化对灰度策略进行调整的问题,实现了对灰度策略的灵活调整和路由。
在一实施例中,所述全局灰度标签包括第一灰度标签及第一非灰度标签,所述根据全局灰度策略为获取的外部服务请求设置全局灰度标签,包括:
根据预先配置的全局灰度策略判断所述外部服务请求是否包含第一灰度标志信息;
若有,则为所述外部服务请求设置第一灰度标签;若无,则为所述外部服务请求设置第一非灰度标签。
其中,该第一灰度标志信息与CMC配置中心配置的全局灰度策略对应。例如,假设全局灰度策略为:若所述外部服务请求对应的地区号尾号为奇数,则为所述外部服务请求设置第一灰度标签;若所述外部服务请求对应的地区号尾号为偶数,则为所述外部服务请求设置第一非灰度标签。则所述第一灰度标志信息记为所述外部服务请求对应的地区号尾号为奇数。
具体参见图2的总体流程图的步骤(3)。DSF网关自动识别外部服务请求的全局灰度标签,当全局灰度标签为第一灰度标签时,将所述外部服务请求路由至接入服务群组的灰度接入服务方;当全局灰度标签为第一非灰度标签时,将所述外部服务请求路由至接入服务群组的正常接入服务方。
在一实施例中,所述应用内灰度标签包括第二灰度标签及第二非灰度标签;
所述根据应用内灰度策略为进入应用服务器的所述外部服务请求设置应用内灰度标签,包括:
根据预先配置的应用内灰度策略识别所述外部服务请求是否包含第二灰度标志信息,若有,则为所述外部服务请求设置第二灰度标签;若无,则为所述外部服务请求设置第二非灰度标签。
其中,该第二灰度标志信息与CMC配置中心配置的应用内灰度策略对应。第二灰度标志信息与第一灰度标志信息类似,此处不再赘述。
具体参见图2所示总体流程图的步骤(5)。DSF网关自动识别外部服务请求的应用内灰度标签,当应用内灰度标签为第二灰度标签时,将所述外部服务请求路由至业务服务群组1中与灰度请求对应的服务提供方上,即服务提供方1和服务提供方2;当全局灰度标签为第一非灰度标签时,将所述外部服务请求路由至接入服务群组1中与非灰度请求对应的服务提供方上,即服务提供方3。服务提供方4用于提供与外部服务请求不同的其他服务,因此这里没有外部服务请求被路由至服务提供方4上。
在一实施例中,所述根据所述自定义灰度标签对所述外部服务请求重新路由,包括:
根据所述自定义灰度标签将所述外部服务请求路由至当前群组内的其他容器组中;或
根据所述自定义灰度标签将所述外部服务请求路由至当前应用服务器的其他群组中;或
根据所述自定义灰度标签将所述外部服务请求路由至其他应用服务器;或
根据所述自定义灰度标签将所述外部服务请求路由至非服务节点。
具体参见图2所示总体流程图的步骤(6)至步骤(9)。(6)为群组内调用,将所述外部服务请求路由至当前群组内的其他容器组(服务提供方);(7)为群组间调用,将所述外部服务请求路由至当前应用服务器的其他群组;(8)为应用服务器间调用,将所述外部服务请求从应用服务器A路由至其他应用服务器B;(9)为非服务节点调用,将所述外部服务请求路由至非服务节点,例如web节点。
在一实施例中,所述灰度发布方法还包括:
获取所述业务服务群组的不同容器组中的服务执行完毕后的动态参数;
根据所述动态参数以及预设的自定义路由规则判断是否产生新的灰度需求。其中,所述预设的自定义路由规则为自定义灰度策略的一部分,
此处结合图3进行说明。图3为图2所示总体流程图的部分示意图。为了简化图形,聚焦核心点,只描述了根据自定义灰度标签进行的应用服务器A内的自定义路由,而略去了应用服务器间调用和其他非服务节点调用的部分。
参见图3,前端处理和接入服务群组等的说明详见对图2的总体流程图的说明。由图3可知,在同一子群组或者应用服务器内跨群组间的服务调用时加入自定义路由。从而可产生如图4所示的服务调用效果。在容器组a的服务1执行完毕之后需要调用服务2,此时需要获取到两个动态参数用以判断是否产生新的灰度需求。比如该笔交易的某费用金额大于10000美元,并且属于某系统的特殊客户,则确定该笔交易属于高风险,此时根据所述自定义路由规则将该笔交易路由至生产子群组中的容器组b中执行服务2;再比如该笔交易的某费用金额大于10000,并且不属于某系统的特殊客户,则确定该笔交易属于中风险,此时可根据所述自定义路由规则将所述外部服务请求路由至前述生产子群组下的另一容器组c中执行服务2ver_n,以提供额外的功能实现,即特殊灰度粒度;再比如该笔交易的某费用金额小于10000,则确定该笔交易属于低风险,此时可根据所述自定义路由规则将所述外部服务请求路由至当前灰度子群组的容器组a中执行服务2ver_1。
综上所述,本发明的基于自定义路由的多分层调用灰度发布方法的核心思想为:
1)进一步细化灰度验证中流量正交和互斥的实验场景。
正交即一份外部服务请求穿越每一层实验的时候,都会随机打散重组,保证每层流量数量相同。互斥即将同一层外部服务请求拆分为多组,不同组的流量不重叠。在图3中体现为:接入服务群组和业务服务群组是正交。业务服务群组中的生产子群组和灰度子群组是互斥。而通过三层灰度标签,即全局灰度标签、应用内灰度标签以及自定义灰度标签,我们能组合更灵活的正交和互斥的实验。比如根据自定义灰度标签进行自定义路由时可以有3个版本(version)的流量互斥,也可以是随机路由到任一容器组的服务中。
2)服务的自定义路由具体到各个容器组。在三级灰度标签(全局灰度标签、应用内灰度标签以及自定义灰度标签)各自的作用域下,分别执行全局路由、应用内路由以及自由定义路由,可以实现根据调用链中随着功能执行产生的变量参数,再进行服务间调用的路由重定向。其中,三级灰度标签中的全局灰度标签和应用内灰度标签不一定同时存在,视需要而定。
本专利的核心在于,基于在服务执行过程中产生的动态参数(比如某费用计算出来、该笔交易在某系统属于特殊客户范畴),有可能产生新的灰度需求,通过服务间调用的灰度重定向的自定义路由,可实现降低投产风险以及满足更细化的灰度策略间的比较。
本发明还提供一个例子对如何实现自定义路由进行说明,具体为对图2所示总体流程图的步骤(6)的更为细化的技术实现说明,同时也是“多分层调用”的基础。此处主要用以说明能定位到容器组的路由实现。参见图5的DSF服务框架结构。
首先是Dubbo编码的实现部分:
1)在DSF服务框架已实现的Router、RouterFactory接口的基础上,通过配置SPI信息,新增UserExtRouterFactory路由类型;
2)定义UserExtRouterFactory、UserExtRouter、IUserRouter等基础组件;
3)实现应用层面实现IUserRouter接口,各服务亦可通过多态实现粒度到服务的自定义路由,该IUserRouter接口的实现方法说明如下:
i)boolean route(URL provider,Object[]arguments)throws RpcException;
其中,URL provider是某个服务提供方的信息,包含该提供方的地址,接口,版本,分组等所有服务方配置的参数。URL对象已经提供了相关的public方法。Object[]arguments是某个服务方法调用时传递的参数列表。该方法要求返回一个布尔值,若为true则表示该服务提供方是合法的,可以提供服务;若返回false,则表示该服务提供方是非法的,不能提供服务。
ii)修改服务注册逻辑和服务路由执行部分,具体为:
修改serviceconfig文件,新增router属性;(a)服务启动时,DubboBeanDefinitionParser解析service标签时,(b)会先强制校验自定义的router是否存在,(c)并设置到serviceconfig中。(d)服务暴露时,对于配置了自定义router的服务,会在服务的routers目录下,新增一条路由规则配置。(e)框架在执行到路由层时,会将服务所有的待选提供方送给应用服务器(粒度可以到服务)路由接口进行筛选,通过自定义保留合法的服务提供方。
iii)路由规则配置举例如下:
<bean id="business"class="com.icbc.cocoa.sample.BusinessRouter"/>
<dubbo:service router="com.icbc.xxx.businessRouter,com.icbc.xxx.HealthRouter"/>
<dubbo:provider router="business"/>
用户配置的自定义路由,会在每次服务调用时都会执行校验。
本发明提供的基于自定义路由的多分层调用灰度发布方法及装置,解决了现有的多版本灰度设计中,灰度标签固定且后续无法更改的问题;通过DSF服务框架设置更细腻的自定义灰度策略,解决了现有的多版本灰度设计无法针对风险的变化对灰度策略进行调整的问题,实现了对灰度策略的灵活调整和路由。
此外,本发明还提供一种基于自定义路由的多分层调用灰度发布装置,可用于实现本发明的任一基于自定义路由的多分层调用灰度发布方法。参见图6,所述灰度发布装置包括:
第一灰度发布模块61,用于根据全局灰度策略为获取的外部服务请求设置全局灰度标签,并根据所述全局灰度标签将所述外部服务请求路由至应用服务器的接入服务群组的不同容器组;
第二灰度发布模块62,用于根据应用内灰度策略为进入应用服务器的所述外部服务请求设置应用内灰度标签,并根据所述应用内灰度标签将所述外部服务请求路由至应用服务器的业务服务群组的不同容器组;
第三灰度发布模块63,用于当产生新的灰度需求时,根据预设的自定义灰度策略为进入所述业务服务群组的不同容器组的所述外部服务请求设置自定义灰度标签,并根据所述自定义灰度标签对所述外部服务请求重新路由。
在一实施例中,参见图7,所述全局灰度标签包括第一灰度标签及第一非灰度标签;所述第一灰度发布模块61包括:
第一识别单元611,用于根据预先配置的全局灰度策略判断所述外部服务请求是否包含第一灰度标志信息;
第一标签单元612,用于当所述外部服务请求包含第一灰度标志信息时,为所述外部服务请求设置第一灰度标签;当所述外部服务请求不包含第一灰度标志信息时,则为所述外部服务请求设置第一非灰度标签。
在一实施例中,参见图8,所述应用内灰度标签包括第二灰度标签及第二非灰度标签;所述第二灰度发布模块62包括:
第二识别单元621,用于根据预先配置的应用内灰度策略识别所述外部服务请求是否包含第二灰度标志信息;
第二标签单元622,用于当所述外部服务请求包含第二灰度标志信息时,为所述外部服务请求设置第二灰度标签;当所述外部服务请求不包含第二灰度标志信息时,则为所述外部服务请求设置第二非灰度标签。
在一实施例中,参见图9,所述第三灰度发布模块63包括:
参数获取单元631,获取所述业务服务群组的不同容器组中的服务执行完毕后的动态参数;
判断单元632,根据所述动态参数以及预设的自定义路由规则判断是否产生新的灰度需求。
在一实施例中,参见图10,所述第三灰度发布模块63还包括自定义路由单元633,用于根据所述自定义灰度标签将所述外部服务请求路由至当前群组内的其他容器组中;或
根据所述自定义灰度标签将所述外部服务请求路由至当前应用服务器的其他群组中;或
根据所述自定义灰度标签将所述外部服务请求路由至其他应用服务器;或
根据所述自定义灰度标签将所述外部服务请求路由至非服务节点。
本发明提供的基于自定义路由的多分层调用灰度发布方法及装置,解决了现有的多版本灰度设计中,灰度标签固定且后续无法更改的问题;通过DSF服务框架设置更细腻的自定义灰度策略,解决了现有的多版本灰度设计无法针对风险的变化对灰度策略进行调整的问题,实现了对灰度策略的灵活调整和路由。
本发明还提供一种电子设备,包括本发明包括上述实施例中的任一基于自定义路由的多分层调用灰度发布装置,如图11所示,所述电子设备100具体包括:
中央处理器(processor)110、存储器(memory)120、通信模块(Communications)130、输入单元140、输出单元150以及电源160。
其中,所述存储器(memory)120、通信模块(Communications)130、输入单元140、输出单元150以及电源160分别与所述中央处理器(processor)110相连接。所述中央处理器110可调用所述存储器120中存储的计算机程序,所述中央处理器110执行所述计算机程序时实现上述实施例中的基于自定义路由的多分层调用灰度发布方法中的全部步骤。
本发明还提供一种计算机存储介质,用于存储计算机程序,所述计算机程序被处理器执行时实现本发明的任一基于自定义路由的多分层调用灰度发布方法。
本领域技术人员应明白,本说明书的实施例可提供为方法、装置或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。
在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (12)
1.一种基于自定义路由的多分层调用灰度发布方法,其特征在于,包括:
根据全局灰度策略为获取的外部服务请求设置全局灰度标签,并根据所述全局灰度标签将所述外部服务请求路由至应用服务器的接入服务群组的不同容器组;
根据应用内灰度策略为进入应用服务器的所述外部服务请求设置应用内灰度标签,并根据所述应用内灰度标签将所述外部服务请求路由至应用服务器的业务服务群组的不同容器组;
当产生新的灰度需求时,根据预设的自定义灰度策略为进入所述业务服务群组的不同容器组的所述外部服务请求设置自定义灰度标签,并根据所述自定义灰度标签对所述外部服务请求重新路由。
2.根据权利要求1所述的灰度发布方法,其特征在于,所述全局灰度标签包括第一灰度标签及第一非灰度标签,所述根据全局灰度策略为获取的外部服务请求设置全局灰度标签,包括:
根据预先配置的全局灰度策略判断所述外部服务请求是否包含第一灰度标志信息;
若有,则为所述外部服务请求设置第一灰度标签;若无,则为所述外部服务请求设置第一非灰度标签。
3.根据权利要求1所述的灰度发布方法,其特征在于,所述应用内灰度标签包括第二灰度标签及第二非灰度标签;
所述根据应用内灰度策略为进入应用服务器的所述外部服务请求设置应用内灰度标签,包括:
根据预先配置的应用内灰度策略识别所述外部服务请求是否包含第二灰度标志信息,若有,则为所述外部服务请求设置第二灰度标签;若无,则为所述外部服务请求设置第二非灰度标签。
4.根据权利要求1所述的灰度发布方法,其特征在于,还包括:
获取所述业务服务群组的不同容器组中的服务执行完毕后的动态参数;
根据所述动态参数以及预设的自定义路由规则判断是否产生新的灰度需求。
5.根据权利要求1至4中任一项所述的灰度发布方法,其特征在于,所述根据所述自定义灰度标签对所述外部服务请求重新路由,包括:
根据所述自定义灰度标签将所述外部服务请求路由至当前群组内的其他容器组中;或
根据所述自定义灰度标签将所述外部服务请求路由至当前应用服务器的其他群组中;或
根据所述自定义灰度标签将所述外部服务请求路由至其他应用服务器;或
根据所述自定义灰度标签将所述外部服务请求路由至非服务节点。
6.一种基于自定义路由的多分层调用灰度发布装置,其特征在于,包括:
第一灰度发布模块,用于根据全局灰度策略为获取的外部服务请求设置全局灰度标签,并根据所述全局灰度标签将所述外部服务请求路由至应用服务器的接入服务群组的不同容器组;
第二灰度发布模块,用于根据应用内灰度策略为进入应用服务器的所述外部服务请求设置应用内灰度标签,并根据所述应用内灰度标签将所述外部服务请求路由至应用服务器的业务服务群组的不同容器组;
第三灰度发布模块,用于当产生新的灰度需求时,根据预设的自定义灰度策略为进入所述业务服务群组的不同容器组的所述外部服务请求设置自定义灰度标签,并根据所述自定义灰度标签对所述外部服务请求重新路由。
7.根据权利要求6所述的灰度发布装置,其特征在于,所述全局灰度标签包括第一灰度标签及第一非灰度标签;所述第一灰度发布模块包括:
第一识别单元,用于根据预先配置的全局灰度策略判断所述外部服务请求是否包含第一灰度标志信息;
第一标签单元,用于当所述外部服务请求包含第一灰度标志信息时,为所述外部服务请求设置第一灰度标签;当所述外部服务请求不包含第一灰度标志信息时,则为所述外部服务请求设置第一非灰度标签。
8.根据权利要求6所述的灰度发布装置,其特征在于,所述应用内灰度标签包括第二灰度标签及第二非灰度标签;所述第二灰度发布模块包括:
第二识别单元,用于根据预先配置的应用内灰度策略识别所述外部服务请求是否包含第二灰度标志信息;
第二标签单元,用于当所述外部服务请求包含第二灰度标志信息时,为所述外部服务请求设置第二灰度标签;当所述外部服务请求不包含第二灰度标志信息时,则为所述外部服务请求设置第二非灰度标签。
9.根据权利要求6所述的灰度发布装置,其特征在于,所述第三灰度发布模块还包括:
参数获取单元,获取所述业务服务群组的不同容器组中的服务执行完毕后的动态参数;
判断单元,根据所述动态参数以及预设的自定义路由规则判断是否产生新的灰度需求。
10.根据权利要求6至9中任一项所述的灰度发布装置,其特征在于,所述第三灰度发布模块还包括自定义路由单元,用于根据所述自定义灰度标签将所述外部服务请求路由至当前群组内的其他容器组中;或
根据所述自定义灰度标签将所述外部服务请求路由至当前应用服务器的其他群组中;或
根据所述自定义灰度标签将所述外部服务请求路由至其他应用服务器;或
根据所述自定义灰度标签将所述外部服务请求路由至非服务节点。
11.一种电子设备,其特征在于,包括:
中央处理器、存储器、通信模块,所述存储器中存储有计算机程序,所述中央处理器可调用所述计算机程序,所述中央处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的基于自定义路由的多分层调用灰度发布方法。
12.一种计算机存储介质,用于存储计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的基于自定义路由的多分层调用灰度发布方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110183544.6A CN112995310B (zh) | 2021-02-10 | 2021-02-10 | 基于自定义路由的多分层调用灰度发布方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110183544.6A CN112995310B (zh) | 2021-02-10 | 2021-02-10 | 基于自定义路由的多分层调用灰度发布方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112995310A true CN112995310A (zh) | 2021-06-18 |
CN112995310B CN112995310B (zh) | 2023-02-21 |
Family
ID=76393271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110183544.6A Active CN112995310B (zh) | 2021-02-10 | 2021-02-10 | 基于自定义路由的多分层调用灰度发布方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112995310B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612686A (zh) * | 2021-06-29 | 2021-11-05 | 中国人民财产保险股份有限公司 | 流量调度方法、装置及电子设备 |
CN113810474A (zh) * | 2021-08-30 | 2021-12-17 | 福建天泉教育科技有限公司 | 一种请求的分流方法及终端 |
CN113965510A (zh) * | 2021-09-23 | 2022-01-21 | 唯品会(广州)软件有限公司 | 一种流量染色方法和系统 |
CN114615192A (zh) * | 2022-02-16 | 2022-06-10 | 杭州信公小安信息科技有限公司 | 一种分布式全链路灰度发布方法及装置 |
CN115334006A (zh) * | 2022-10-14 | 2022-11-11 | 平安银行股份有限公司 | 基于客户端实现的灰度验证方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011891A (zh) * | 2017-12-22 | 2018-05-08 | 深圳乐信软件技术有限公司 | 一种应用访问方法、装置、服务器及计算机存储介质 |
CN108255853A (zh) * | 2016-12-29 | 2018-07-06 | 卓望数码技术(深圳)有限公司 | 一种插件式的请求异步处理方法以及系统 |
CN111600930A (zh) * | 2020-04-09 | 2020-08-28 | 网宿科技股份有限公司 | 微服务请求的流量管理方法、装置、服务器及存储介质 |
CN111953780A (zh) * | 2020-08-13 | 2020-11-17 | 中国工商银行股份有限公司 | 微服务灰度发布方法、装置、设备、系统及存储介质 |
US20200389393A1 (en) * | 2019-06-06 | 2020-12-10 | Cisco Technology Inc. | Systems and methods for routing network traffic using labels |
CN112181782A (zh) * | 2020-10-16 | 2021-01-05 | 中国工商银行股份有限公司 | 基于ab测试的自适应灰度功能发布方法和装置 |
-
2021
- 2021-02-10 CN CN202110183544.6A patent/CN112995310B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255853A (zh) * | 2016-12-29 | 2018-07-06 | 卓望数码技术(深圳)有限公司 | 一种插件式的请求异步处理方法以及系统 |
CN108011891A (zh) * | 2017-12-22 | 2018-05-08 | 深圳乐信软件技术有限公司 | 一种应用访问方法、装置、服务器及计算机存储介质 |
US20200389393A1 (en) * | 2019-06-06 | 2020-12-10 | Cisco Technology Inc. | Systems and methods for routing network traffic using labels |
CN111600930A (zh) * | 2020-04-09 | 2020-08-28 | 网宿科技股份有限公司 | 微服务请求的流量管理方法、装置、服务器及存储介质 |
CN111953780A (zh) * | 2020-08-13 | 2020-11-17 | 中国工商银行股份有限公司 | 微服务灰度发布方法、装置、设备、系统及存储介质 |
CN112181782A (zh) * | 2020-10-16 | 2021-01-05 | 中国工商银行股份有限公司 | 基于ab测试的自适应灰度功能发布方法和装置 |
Non-Patent Citations (1)
Title |
---|
TRUST_FREEDOM: "[SpringCloud]Ribbon如何自定义客户端配置和全局配置", 《HTTPS://BLOG.CSDN.NET/TRUST_FREEDOM》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612686A (zh) * | 2021-06-29 | 2021-11-05 | 中国人民财产保险股份有限公司 | 流量调度方法、装置及电子设备 |
CN113810474A (zh) * | 2021-08-30 | 2021-12-17 | 福建天泉教育科技有限公司 | 一种请求的分流方法及终端 |
CN113810474B (zh) * | 2021-08-30 | 2023-04-28 | 福建天泉教育科技有限公司 | 一种请求的分流方法及终端 |
CN113965510A (zh) * | 2021-09-23 | 2022-01-21 | 唯品会(广州)软件有限公司 | 一种流量染色方法和系统 |
CN114615192A (zh) * | 2022-02-16 | 2022-06-10 | 杭州信公小安信息科技有限公司 | 一种分布式全链路灰度发布方法及装置 |
CN115334006A (zh) * | 2022-10-14 | 2022-11-11 | 平安银行股份有限公司 | 基于客户端实现的灰度验证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112995310B (zh) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112995310B (zh) | 基于自定义路由的多分层调用灰度发布方法及装置 | |
US7558864B2 (en) | Method, system and product for identifying, reserving, and logically provisioning resources in provisioning data processing systems | |
US20210359919A1 (en) | Network Service Management Method, Related Apparatus, and System | |
US8045481B2 (en) | System and method for supporting virtualized links at an exterior network-to-network interface | |
US8375360B2 (en) | Provision of services over a common delivery platform such as a mobile telephony network | |
US8443079B2 (en) | Mixed integer programming model for minimizing leased access network costs | |
US8291077B2 (en) | Provision of services over a common delivery platform such as a mobile telephony network | |
CN108370328B (zh) | 一种nfv mano策略描述符的管理方法及装置 | |
US7054946B2 (en) | Dynamic configuration of network devices to enable data transfers | |
CN108600101B (zh) | 一种针对端到端时延性能优化的网络服务跨域编排方法 | |
US9294867B2 (en) | Provision of services over a common delivery platform such as a mobile telephony network | |
US11567793B2 (en) | Service management method and apparatus | |
CN113037831B (zh) | 一种服务网关报文处理方法及装置 | |
US11178252B1 (en) | System and method for intelligent distribution of integration artifacts and runtime requests across geographic regions | |
CN111726381A (zh) | 一种网络能力开放的实现方法及装置 | |
US7660903B2 (en) | Communications network | |
US20060161616A1 (en) | Provision of services over a common delivery platform such as a mobile telephony network | |
US8570875B2 (en) | Determining collocations with an access transport management system (ATMS) | |
CN114363233B (zh) | 一种分组路由方法、装置、电子设备及存储介质 | |
US20220191777A1 (en) | Telecommunications network | |
US10397342B2 (en) | Web service contract selection | |
CN103945572A (zh) | 一种处理新业务的方法和业务服务器 | |
US10505823B2 (en) | System and method for orchestrating control actions of the access network layer, the core network layer and the application platform layer | |
Thai et al. | Towards realizing a cloud-native B5G mobile core architecture | |
Pages et al. | Orchestrating virtual slices in data centre infrastructures with optical DCN |
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 |