CN110781013A - 一种灰度发布方法、装置、设备及介质 - Google Patents
一种灰度发布方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN110781013A CN110781013A CN201911024493.1A CN201911024493A CN110781013A CN 110781013 A CN110781013 A CN 110781013A CN 201911024493 A CN201911024493 A CN 201911024493A CN 110781013 A CN110781013 A CN 110781013A
- Authority
- CN
- China
- Prior art keywords
- gray scale
- message
- application example
- gray
- normal
- 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
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本申请公开了一种灰度发布方法、装置、设备及介质,包括:通过携带标记信息的第一灰度应用实例获取灰度业务请求,生成与灰度业务请求对应的消息,并判断标记信息是否为灰度标记,若标记信息为灰度标记,则将灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将灰度业务请求对应的消息发送至对应的灰度topic;通过第一正常应用实例获取正常业务请求,然后生成正常业务请求对应的消息,并将正常业务请求对应的消息发送至消息队列中对应的正常topic;通过第二灰度应用实例获取灰度topic中的消息,进行对应的消息消费;通过第二正常应用实例获取正常topic中的消息,进行对应的消息消费。这样进行消息队列的灰度隔离避免了错误业务数据的产生。
Description
技术领域
本申请涉及灰度发布技术领域,特别涉及一种灰度发布方法、装置、设备及介质。
背景技术
系统升级发布时,对于涉及到使用消息队列的系统,比如,kafka,需要先进行灰度发布,由测试人员在灰度实例上验证系统功能的正确性,才能全量发布新版功能。
在现有技术中,对于常用的互联网应用架构,为了解决大并发,基于异步,削峰的考虑,需要用到消息队列来缓冲大流量,此时如果消息队列不支持灰度发布,那么即使RESTful/RPC(即Remote Procedure Call,远程过程调用)请求能正确路由到灰度实例,但是生产的消息会流入正常应用实例,没有做到数据完全隔离,因此可能产生影响业务的错误数据。
发明内容
有鉴于此,本申请的目的在于提供一种灰度发布方法、装置、设备及介质,能够利用灰度topic和正常topic,将第一灰度应用实例和第一正常应用实例生产的消息在消息队列上隔离,使第一灰度应用实例生产的消息仅被对应的第二灰度应用实例消费,第一正常应用实例生产的消息仅被对应的第二正常应用实例消费,从而避免了错误业务数据的产生。其具体方案如下:
第一方面,本申请公开了一种灰度发布方法,包括:
通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic;
通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic;
通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费;
通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。
可选的,所述通过第一灰度应用实例获取灰度业务请求之前,还包括:
将所述第一灰度应用实例和所述第二灰度应用实例的标记信息设置为灰度标记。
可选的,所述通过第一灰度应用实例获取灰度业务请求之前,还包括:
判断所述第二灰度应用实例的标记信息是否为灰度标记,若所述第二灰度应用实例的标记信息为灰度标记,则将所述第二灰度应用实例对应的全部topic确定为灰度topic。
可选的,还包括:
当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例的灰度标记;
或,当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例。
第二方面,本申请公开了一种灰度发布装置,包括:
灰度消息生产模块,用于通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic;
正常消息生产模块,用于通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic;
灰度消息消费模块,用于通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费;
正常消息消费模块,用于通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。
可选的,还包括:
灰度实例标记模块,用于将所述第一灰度应用实例和所述第二灰度应用实例的标记信息设置为灰度标记。
可选的,还包括:
灰度topic注册模块,用于判断所述第二应用实例的标记信息是否为灰度标记,若所述第二应用实例的标记信息为灰度标记,则将所述第二应用实例对应的全部topic确定为灰度topic。
可选的,还包括:
灰度验证结束模块,用于当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例的灰度标记;或,当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例。
第三方面,本申请公开了一种灰度发布设备,包括处理器和存储器;其中,
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述的灰度发布方法。
第四方面,一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的灰度发布方法。
可见,本申请通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic,以及通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic,然后通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费,并通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。这样,利用灰度topic和正常topic,将第一灰度应用实例和第一正常应用实例生产的消息在消息队列上隔离,能够使第一灰度应用实例生产的消息仅被对应的第二灰度应用实例消费,第一正常应用实例生产的消息仅被对应的第二正常应用实例消费,从而避免了错误业务数据的产生。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种灰度发布方法流程图;
图2为本申请公开的一种灰度发布系统架构图;
图3为本申请公开的一种具体的灰度发布方法流程图;
图4为本申请公开的一种灰度发布装置结构示意图;
图5为本申请公开的一种灰度发布设备结构图;
图6为本申请公开的一种服务器结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,对于常用的互联网应用架构,为了解决大并发,基于异步,削峰的考虑,需要用到消息队列来缓冲大流量,此时如果消息队列不支持灰度发布,那么即使RESTful/RPC请求能正确路由到灰度实例,但是生产的消息会流入正常应用实例,没有做到数据完全隔离,因此可能产生影响业务的错误数据。为此,本申请提供了一种灰度发布方案,能够利用灰度topic和正常topic,将第一灰度应用实例和第一正常应用实例生产的消息在消息队列上隔离,使第一灰度应用实例生产的消息仅被对应的第二灰度应用实例消费,第一正常应用实例生产的消息仅被对应的第二正常应用实例消费,从而避免了错误业务数据的产生。
参见图1所示,本申请实施例公开了一种灰度发布方法,包括:
步骤S11:通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic。
在具体的实施方式中,本实施例预先将所述第一灰度应用实例和所述第二灰度应用实例的标记信息设置为灰度标记,以及判断所述第二灰度应用实例的标记信息是否为灰度标记,若所述第二灰度应用实例的标记信息为灰度标记,则将所述第二灰度应用实例对应的全部topic确定为灰度topic。具体的,业务URL(即Uniform Resource Locator,统一资源定位符)请求可以在Header头部带入灰度的信息,比如region:gray,经过灰度网关,RESTful/RPC请求能正确路由到第一灰度应用实例,然后,第一灰度应用实例通过拦截器模式,判断所述第一灰度应用实例的标记信息是否为灰度标记,若所述第一灰度应用实例的标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,比如exampleTopic1_gray。本实施例首先在生产环境中准备发布新版本,应用实例启动时,在Eureka注册中心添加第一应用实例和第二应用灰度应用实例的灰度标识参数,即将所述第一灰度应用实例和所述第二灰度应用实例的标记信息设置为灰度标记,比如,设置Deureka.instance.metadata-map.region=gray,该灰度标识参数随着应用实例的eureka启动完毕,能够自动进入eureka的元数据区域,应用实例可以从eureka的元数据区域获取@Value(“eureka.instance.metadata-map.region”),获取到标记信息为gray的应用实例,都被逻辑上打标成为灰度实例,和其他灰度实例组成灰度区域,而全部正常实例组成正常区域。然后第二灰度应用实例在Kafka启动时,注册监听使用的topic用于消息队列的消费,具体的,复写底层注册监听的逻辑KafkaListenerAnnotationBeanPostProcessor,如果当前应用实例的标记信息为灰度标记,则注册监听将当前应用实例对应的全部topic确定为灰度topic,比如,exampleTopic1_gray,完成消费灰度topic的注册,并且,第二正常应用实例注册相应的正常topic。
步骤S12:通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic。
步骤S13:通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费。
步骤S14:通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。
例如,参见图2所示,图2为本申请公开的一种灰度发布系统架构图。全部应用实例预先在在Eureka注册中心注册,灰度业务请求经过灰度网关路由到携带标记信息的第一灰度应用实例,正常业务请求路由到第一正常应用实例;第一灰度应用实例通过对应的producer生产与灰度业务请求对应的消息,并判断标记信息是否为灰度标记,若标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic,第一正常应用实例通过对应的producer生产与正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic。比如,测试人员在灰度APP端下订单,第一灰度应用实例为该订单生产相应的灰度消息,比如,赠送会员积分的灰度消息、增加商品销售数量的灰度消息和现金券使用情况的灰度消息等,并将赠送会员积分的灰度消息发送至相应的赠送会员积分的灰度topic、将增加商品销售数量的灰度消息发送至相应的增加商品销售数量的灰度topic以及将现金券使用情况的灰度消息发送至相应的现金券使用情况的灰度topic,用户在正常APP端下订单,第一正常应用实例会为用户生成相应的正常消息,比如,赠送会员积分的正常消息等,并将该正常消息发送至相应的赠送会员积分的正常topic;然后第二灰度应用实例获取灰度topic中的消息,并进行对应的消息消费,比如,赠送会员积分、增加商品销售数量等,第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。这样,灰度业务请求进入第一灰度应用实例之后,生产对应的消息,通过灰度Topic,只能在灰度Region流通,正常业务请求进入第一正常应用实例之后,生产对应的消息,通过正常Topic,只能在正常Region流通,通过区分正常topic和灰度topic,正常Region和灰度Region两个区域的消息完全隔离,避免了因正常应用实例和灰度应用实例的处理逻辑不一致引起的业务数据出错。
可见,本申请实施例通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic,以及通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic,然后通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费,并通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。这样,利用灰度topic和正常topic,将第一灰度应用实例和第一正常应用实例生产的消息在消息队列上隔离,能够使第一灰度应用实例生产的消息仅被对应的第二灰度应用实例消费,第一正常应用实例生产的消息仅被对应的第二正常应用实例消费,从而避免了错误业务数据的产生。
参见图3所示,本申请实施例公开了一种具体的灰度发布方法,包括:
步骤S21:通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic。
步骤S22:通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic。
步骤S23:通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费。
步骤S24:通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。
其中,关于上述步骤S21至步骤S24的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S25:结束灰度验证。
在一种具体的实施方式中,本实施例可以删除所述第一灰度应用实例和所述第二灰度应用实例的灰度标记;具体的,可以不设置灰度标识参数Deureka.instance.metadata-map.region,然后进行一次重启,将第一灰度应用实例和第二灰度应用实例划入正常Region。
在另一种具体的实施方式中,本实施例可以删除所述第一灰度应用实例和所述第二灰度应用实例。
参见图4所示,本申请实施例公开了一种灰度发布装置,包括:
灰度消息生产模块11,用于通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic;
正常消息生产模块12,用于通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic;
灰度消息消费模块13,用于通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费;
正常消息消费模块14,用于通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。
可见,本申请实施例通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic,以及通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic,然后通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费,并通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。这样,利用灰度topic和正常topic,将第一灰度应用实例和第一正常应用实例生产的消息在消息队列上隔离,能够使第一灰度应用实例生产的消息仅被对应的第二灰度应用实例消费,第一正常应用实例生产的消息仅被对应的第二正常应用实例消费,从而避免了错误业务数据的产生。
所述灰度发布装置还包括灰度实例标记模块,用于将所述第一灰度应用实例和所述第二灰度应用实例的标记信息设置为灰度标记。
所述灰度发布装置还包括灰度topic注册模块,用于判断所述第二应用实例的标记信息是否为灰度标记,若所述第二应用实例的标记信息为灰度标记,则将所述第二应用实例对应的全部topic确定为灰度topic。
所述灰度发布装置还包括灰度验证结束模块,用于当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例的灰度标记;或,当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例。
参见图5所示,本申请公开了一种灰度发布设备,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,以实现以下步骤:
通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic;通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic;通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费;通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。
可见,本申请实施例通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic,以及通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic,然后通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费,并通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。这样,利用灰度topic和正常topic,将第一灰度应用实例和第一正常应用实例生产的消息在消息队列上隔离,能够使第一灰度应用实例生产的消息仅被对应的第二灰度应用实例消费,第一正常应用实例生产的消息仅被对应的第二正常应用实例消费,从而避免了错误业务数据的产生。
本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:将所述第一灰度应用实例和所述第二灰度应用实例的标记信息设置为灰度标记。
本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:判断所述第二灰度应用实例的标记信息是否为灰度标记,若所述第二灰度应用实例的标记信息为灰度标记,则将所述第二灰度应用实例对应的全部topic确定为灰度topic。
本实施例中,所述处理器21执行所述存储器22中保存的计算机子程序时,可以具体实现以下步骤:当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例的灰度标记;或,当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例。
并且,所述存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储方式可以是短暂存储或者永久存储。
参见图6所示,本申请实施例公开了一种服务器20,包括前述实施例中公开的包括处理器21和存储器22的灰度发布设备。关于上述处理器21具体可以执行的步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
进一步的,本实施例中的服务器20,还可以具体包括电源23、通信接口24、输入输出接口25和通信总线26;其中,所述电源23用于为所述终端20上的各硬件设备提供工作电压;所述通信接口24能够为所述终端20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:
通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic;通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic;通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费;通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。
可见,本申请实施例通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic,以及通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic,然后通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费,并通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。这样,利用灰度topic和正常topic,将第一灰度应用实例和第一正常应用实例生产的消息在消息队列上隔离,能够使第一灰度应用实例生产的消息仅被对应的第二灰度应用实例消费,第一正常应用实例生产的消息仅被对应的第二正常应用实例消费,从而避免了错误业务数据的产生。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:将所述第一灰度应用实例和所述第二灰度应用实例的标记信息设置为灰度标记。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:判断所述第二灰度应用实例的标记信息是否为灰度标记,若所述第二灰度应用实例的标记信息为灰度标记,则将所述第二灰度应用实例对应的全部topic确定为灰度topic。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例的灰度标记;或,当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种灰度发布方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种灰度发布方法,其特征在于,包括:
通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic;
通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic;
通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费;
通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。
2.根据权利要求1所述的灰度发布方法,其特征在于,所述通过第一灰度应用实例获取灰度业务请求之前,还包括:
将所述第一灰度应用实例和所述第二灰度应用实例的标记信息设置为灰度标记。
3.根据权利要求1所述的灰度发布方法,其特征在于,所述通过第一灰度应用实例获取灰度业务请求之前,还包括:
判断所述第二灰度应用实例的标记信息是否为灰度标记,若所述第二灰度应用实例的标记信息为灰度标记,则将所述第二灰度应用实例对应的全部topic确定为灰度topic。
4.根据权利要求1至3任一项所述的灰度发布方法,其特征在于,还包括:
当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例的灰度标记;
或,当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例。
5.一种灰度发布装置,其特征在于,包括:
灰度消息生产模块,用于通过携带标记信息的第一灰度应用实例获取灰度业务请求,然后生成与所述灰度业务请求对应的消息,并判断所述标记信息是否为灰度标记,若所述标记信息为灰度标记,则将所述灰度业务请求对应的消息的发送目标topic确定为消息队列中对应的灰度topic,并将所述灰度业务请求对应的消息发送至对应的所述灰度topic;
正常消息生产模块,用于通过第一正常应用实例获取正常业务请求,然后生成所述正常业务请求对应的消息,并将所述正常业务请求对应的消息发送至所述消息队列中对应的正常topic;
灰度消息消费模块,用于通过第二灰度应用实例获取所述灰度topic中的消息,并进行对应的消息消费;
正常消息消费模块,用于通过第二正常应用实例获取所述正常topic中的消息,并进行对应的消息消费。
6.根据权利要求5所述的灰度发布装置,其特征在于,还包括:
灰度实例标记模块,用于将所述第一灰度应用实例和所述第二灰度应用实例的标记信息设置为灰度标记。
7.根据权利要求5所述的灰度发布装置,其特征在于,还包括:
灰度topic注册模块,用于判断所述第二应用实例的标记信息是否为灰度标记,若所述第二应用实例的标记信息为灰度标记,则将所述第二应用实例对应的全部topic确定为灰度topic。
8.根据权利要求5至7任一项所述的灰度发布装置,其特征在于,还包括:
灰度验证结束模块,用于当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例的灰度标记;或,当灰度验证结束,则删除所述第一灰度应用实例和所述第二灰度应用实例。
9.一种灰度发布设备,其特征在于,包括处理器和存储器;其中,
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至4任一项所述的灰度发布方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的灰度发布方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911024493.1A CN110781013B (zh) | 2019-10-25 | 2019-10-25 | 一种灰度发布方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911024493.1A CN110781013B (zh) | 2019-10-25 | 2019-10-25 | 一种灰度发布方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110781013A true CN110781013A (zh) | 2020-02-11 |
CN110781013B CN110781013B (zh) | 2022-11-18 |
Family
ID=69387822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911024493.1A Active CN110781013B (zh) | 2019-10-25 | 2019-10-25 | 一种灰度发布方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110781013B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290867A (zh) * | 2020-02-27 | 2020-06-16 | 北京三快在线科技有限公司 | 流量调度方法、业务服务器、存储介质及流量调度系统 |
CN111371684A (zh) * | 2020-03-02 | 2020-07-03 | 中国邮政储蓄银行股份有限公司 | 路由处理方法及装置、双活数据中心系统 |
CN111538522A (zh) * | 2020-04-29 | 2020-08-14 | 北京思特奇信息技术股份有限公司 | 一种基于zk的消息中间件在线升级方法及系统 |
CN111737128A (zh) * | 2020-06-19 | 2020-10-02 | 北京百度网讯科技有限公司 | 线上测试方法及灰度分流设备、存储介质 |
CN112015563A (zh) * | 2020-09-02 | 2020-12-01 | 中国平安财产保险股份有限公司 | 消息队列切换方法、装置、电子设备及存储介质 |
CN112114845A (zh) * | 2020-08-06 | 2020-12-22 | 北京健康之家科技有限公司 | 灰度消息的处理方法及装置、存储介质、计算机设备 |
CN114884915A (zh) * | 2022-04-19 | 2022-08-09 | 阿里巴巴(中国)有限公司 | 基于灰度发布的消息处理方法、装置以及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040012579A1 (en) * | 2002-01-31 | 2004-01-22 | Kabushiki Kaisha Tokai-Rika-Denki-Seisakusho | Display screen operation device |
CN107665723A (zh) * | 2016-07-29 | 2018-02-06 | 西部数据技术公司 | 用于非易失性存储器的非二进制编码 |
CN109246051A (zh) * | 2017-05-22 | 2019-01-18 | 中兴通讯股份有限公司 | 灰度发布后链路管理方法、装置、存储介质和计算机设备 |
CN109787858A (zh) * | 2018-12-29 | 2019-05-21 | 福建天泉教育科技有限公司 | 一种批量发布服务的方法及终端 |
CN110365502A (zh) * | 2018-03-26 | 2019-10-22 | 华为技术有限公司 | 一种服务升级管理的方法、装置及存储介质 |
-
2019
- 2019-10-25 CN CN201911024493.1A patent/CN110781013B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040012579A1 (en) * | 2002-01-31 | 2004-01-22 | Kabushiki Kaisha Tokai-Rika-Denki-Seisakusho | Display screen operation device |
CN107665723A (zh) * | 2016-07-29 | 2018-02-06 | 西部数据技术公司 | 用于非易失性存储器的非二进制编码 |
CN109246051A (zh) * | 2017-05-22 | 2019-01-18 | 中兴通讯股份有限公司 | 灰度发布后链路管理方法、装置、存储介质和计算机设备 |
CN110365502A (zh) * | 2018-03-26 | 2019-10-22 | 华为技术有限公司 | 一种服务升级管理的方法、装置及存储介质 |
CN109787858A (zh) * | 2018-12-29 | 2019-05-21 | 福建天泉教育科技有限公司 | 一种批量发布服务的方法及终端 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290867A (zh) * | 2020-02-27 | 2020-06-16 | 北京三快在线科技有限公司 | 流量调度方法、业务服务器、存储介质及流量调度系统 |
CN111371684A (zh) * | 2020-03-02 | 2020-07-03 | 中国邮政储蓄银行股份有限公司 | 路由处理方法及装置、双活数据中心系统 |
CN111371684B (zh) * | 2020-03-02 | 2022-08-09 | 中国邮政储蓄银行股份有限公司 | 路由处理方法及装置、双活数据中心系统 |
CN111538522A (zh) * | 2020-04-29 | 2020-08-14 | 北京思特奇信息技术股份有限公司 | 一种基于zk的消息中间件在线升级方法及系统 |
CN111538522B (zh) * | 2020-04-29 | 2023-08-11 | 北京思特奇信息技术股份有限公司 | 一种基于zk的消息中间件在线升级方法及系统 |
CN111737128A (zh) * | 2020-06-19 | 2020-10-02 | 北京百度网讯科技有限公司 | 线上测试方法及灰度分流设备、存储介质 |
CN112114845A (zh) * | 2020-08-06 | 2020-12-22 | 北京健康之家科技有限公司 | 灰度消息的处理方法及装置、存储介质、计算机设备 |
CN112114845B (zh) * | 2020-08-06 | 2023-08-11 | 北京水滴科技集团有限公司 | 灰度消息的处理方法及装置、存储介质、计算机设备 |
CN112015563A (zh) * | 2020-09-02 | 2020-12-01 | 中国平安财产保险股份有限公司 | 消息队列切换方法、装置、电子设备及存储介质 |
CN112015563B (zh) * | 2020-09-02 | 2023-07-07 | 中国平安财产保险股份有限公司 | 消息队列切换方法、装置、电子设备及存储介质 |
CN114884915A (zh) * | 2022-04-19 | 2022-08-09 | 阿里巴巴(中国)有限公司 | 基于灰度发布的消息处理方法、装置以及设备 |
CN114884915B (zh) * | 2022-04-19 | 2024-03-26 | 阿里巴巴(中国)有限公司 | 基于灰度发布的消息处理方法、装置以及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110781013B (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781013B (zh) | 一种灰度发布方法、装置、设备及介质 | |
CN108462758B (zh) | 银企直联通信方法、装置、设备及计算机可读存储介质 | |
CN111913738A (zh) | 访问请求的处理方法、装置、计算设备和介质 | |
CN110888816B (zh) | 程序测试方法、程序测试装置及存储介质 | |
US8972968B1 (en) | Alternate service for applications | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN110650163A (zh) | 一种灰度发布方法、系统、设备及计算机可读存储介质 | |
CN115516840A (zh) | 一种信息处理方法、设备、系统、介质、芯片及程序 | |
CN109040263B (zh) | 基于分布式系统的业务处理方法及装置 | |
CN110806971A (zh) | 一种版本测试方法、装置及电子设备 | |
CN113391823A (zh) | 灰度发布方法、装置及系统 | |
CN105245581A (zh) | 一种应用程序传输方法及装置 | |
CN113067802B (zh) | 一种用户标识方法、装置、设备及计算机可读存储介质 | |
JP2010113380A (ja) | テスト基盤装置、テスト基盤プログラム、テスト基盤方法 | |
CN113407823A (zh) | 一种ios消息推送方法及系统 | |
CN108345508B (zh) | 接口调用测试方法和装置 | |
CN111061637B (zh) | 接口测试方法、接口测试装置及存储介质 | |
JP5961471B2 (ja) | 複数の情報システムおける出力比較方法 | |
CN112073488A (zh) | 处理请求的方法及装置 | |
CN112328413A (zh) | 应用服务的调用方法、装置及系统 | |
CN116938958A (zh) | Api信息同步方法、装置、系统与计算机可读存储介质 | |
CN111800511A (zh) | 同步登录态的处理方法、系统、设备及可读存储介质 | |
CN110554963A (zh) | 一种应用回滚方法、装置及存储介质 | |
CN108287792B (zh) | 用于输出信息的方法和装置 | |
CN106844502B (zh) | 数据一致性处理方法及设备 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 410000 No. 1501-4, building 9, Xincheng science and Technology Park, No. 588, Yuelu West Avenue, Changsha high tech Development Zone, Changsha City, Hunan Province Applicant after: Hunan Shuiyang Technology Co.,Ltd. Address before: 410000 No. 1501-4, building 9, Xincheng science and Technology Park, No. 588, Yuelu West Avenue, Changsha high tech Development Zone, Changsha City, Hunan Province Applicant before: HUNAN YUJIA TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |