CN111930420A - 无侵入式通用代码级灰度路由系统及方法 - Google Patents
无侵入式通用代码级灰度路由系统及方法 Download PDFInfo
- Publication number
- CN111930420A CN111930420A CN202010749884.6A CN202010749884A CN111930420A CN 111930420 A CN111930420 A CN 111930420A CN 202010749884 A CN202010749884 A CN 202010749884A CN 111930420 A CN111930420 A CN 111930420A
- Authority
- CN
- China
- Prior art keywords
- routing
- gray
- parameter
- strategy
- gray scale
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种无侵入式通用代码级灰度路由系统及方法,所述系统包含参数装置、切面装置和路由装置;参数装置根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;切面装置识别各业务功能,当业务功能需要路由时于参数表中获得业务功能的入参数据和参数编号;根据入参数据和参数编号向路由装置发起路由策略申请;以及,根据反馈获得的路由策略和入参数据对业务功能执行灰度处理;路由装置将接收到的参数编号与参数表中的灰度要素进行匹配获得多个匹配项,将匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;根据灰度策略获得对应的路由策略,将路由策略反馈至切面装置。
Description
技术领域
本发明涉及灰度路由领域,尤指一种通用的、代码级别的无侵入式通用代码级灰度路由系统及方法。
背景技术
目前各个应用涉及业务功能上线的灰度,不同应用或不同功能涉及灰度粒度不同,有些根据机构,有些根据客户号,同时在实现灰度时需要各模块根据不同灰度粒度和范围,用不同程序来区别,程序有侵入性的修改。
传统灰度方法分为代码级和系统节点级,系统节点级的灰度一般在网关层进行路由,需要多个节点同时部署运行,运维成本高,需同时维护多套代码,同时灰度期间会有资源浪费,每一个节点都需要申请资源;代码级的灰度运维成本则低很多,只需要维护一套代码就能实现灰度。
而代码级灰度方法目前现状大部分是采用if、else的方式,在业务发展中已暴露出如下问题:
代码耦合。随着系统功能的逐步完善与系统架构的转型,代码越来越厚重,旧代码不敢删除,怕影响现有功能,新代码则一直在新增if、else的分支中运行,循环往复,代码耦合越来越紧密,对代码维护与重构带来了很大的阻碍。
代码侵入。当灰度策略变化时,需要侵入代码调整if、else的逻辑,对程序进行修改才能实现,无法适应动态的灰度场景。
发明内容
本发明目的在于提供一种无侵入式通用代码级灰度路由系统及方法,予以降低新功能发布风险、代码耦合与侵入和技术改造或代码重构风险。
为达上述目的,本发明所提供的无侵入式通用代码级灰度路由系统,具体包含参数装置、切面装置和路由装置;所述参数装置用于根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;所述切面装置用于识别各业务功能,当所述业务功能需要路由时于所述参数表中获得所述业务功能的入参数据和参数编号;根据所述入参数据和所述参数编号向所述路由装置发起路由策略申请;以及,根据反馈获得的路由策略和所述入参数据对所述业务功能执行灰度处理;所述路由装置用于将接收到的所述参数编号与所述参数表中的灰度要素进行匹配获得多个匹配项,将所述匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;根据所述灰度策略获得对应的路由策略,将所述路由策略反馈至所述切面装置。
在上述无侵入式通用代码级灰度路由系统中,优选的,所述参数装置包含参数配置模组、参数装载模组和参数编辑模组;所述参数配置模组用于根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;所述参数装载模组用于加载所述参数配置模组中存储的参数表,将所述参数表提供至所述切面装置和所述路由装置调用;所述参数编辑模组用于当新增或路由策略与灰度状态发生变化时,修改所述参数配置模组中的所述参数表。
在上述无侵入式通用代码级灰度路由系统中,优选的,所述切面装置包含切面配置模组和决策执行模组;所述切面配置模组用于获取系统中涉及灰度的业务功能信息,通过预定标识标识所述业务功能信息对应的业务功能;所述决策执行模组用于识别各业务功能,当所述业务功能需要路由时于所述参数表中获得所述业务功能的入参数据和参数编号;根据所述入参数据和所述参数编号向所述路由装置发起路由策略申请;以及,根据反馈获得的路由策略和所述入参数据对所述业务功能执行灰度处理。
在上述无侵入式通用代码级灰度路由系统中,优选的,所述路由装置包含路由策略配置模组、路由策略复用模组和路由决策模组;所述路由策略配置模组用于预存多个灰度策略与路由策略的关联关系;所述路由策略复用模组用于遍历所述灰度策略与所述业务功能的对应关系,当多个不同所述业务功能使用相同的灰度策略时,根据所述灰度策略生成灰度策略模板,以所述灰度策略模板作为对应的多个不同所述业务功能的灰度策略;所述路由决策模组用于将接收到的所述参数编号与所述参数表中的灰度要素进行匹配获得多个匹配项,将所述匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;根据所述灰度策略获得对应的路由策略,将所述路由策略反馈至所述切面装置。
本发明还提供一种无侵入式通用代码级灰度路由方法,所述方法包含:根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;识别各业务功能,当所述业务功能需要路由时于所述参数表中获得所述业务功能的入参数据和参数编号;将接收到的所述参数编号与所述参数表中的灰度要素进行匹配获得多个匹配项,将所述匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;根据所述灰度策略获得对应的路由策略,根据所述路由策略和所述入参数据对所述业务功能执行灰度处理。
在上述无侵入式通用代码级灰度路由方法中,优选的,所述方法还包含:获取系统中涉及灰度的业务功能信息,通过预定标识标识所述业务功能信息对应的业务功能。
在上述无侵入式通用代码级灰度路由方法中,优选的,所述方法还包含:根据系统中多个业务功能建立至少一个灰度策略,根据所述灰度策略定义对应的路由策略;将所述路由策略与所述灰度策略关联后存储。
在上述无侵入式通用代码级灰度路由方法中,优选的,根据系统中多个业务功能建立至少一个灰度策略还包含:遍历所述灰度策略与所述业务功能的对应关系,当多个不同所述业务功能使用相同的灰度策略时,根据所述灰度策略生成灰度策略模板,以所述灰度策略模板作为对应的多个不同所述业务功能的灰度策略。
在上述无侵入式通用代码级灰度路由方法中,优选的,所述入参数据包含:接口名称、方法签名、路由类名称、参数名称和默认灰度方法版本号。
在上述无侵入式通用代码级灰度路由方法中,优选的,所述参数编号包含灰度方法版本号和灰度方法实现类名称。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明的有益技术效果在于:解决代码级灰度方法高耦合、侵入性问题,通过参数配置手段可以实现无侵入动态灰度,提升了系统灰度的灵活性,降低系统灰度成本。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为本发明一实施例所提供的无侵入式通用代码级灰度路由系统的结构示意图;
图2为本发明一实施例所提供的的参数装置的结构示意图;
图3为本发明一实施例所提供的的切面装置的结构示意图;
图4为本发明一实施例所提供的的路由装置的结构示意图;
图5为本发明一实施例所提供的无侵入式通用代码级灰度路由方法的流程示意图;
图6为本发明一实施例所提供的以Java为例的灰度方法要素图;
图7为本发明一实施例所提供的以Java为例的灰度路由策略生命周期图;
图8为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
请参考图1所示,本发明所提供的一种无侵入式通用代码级灰度路由系统,具体包含参数装置、切面装置和路由装置;所述参数装置用于根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;所述切面装置用于识别各业务功能,当所述业务功能需要路由时于所述参数表中获得所述业务功能的入参数据和参数编号;根据所述入参数据和所述参数编号向所述路由装置发起路由策略申请;以及,根据反馈获得的路由策略和所述入参数据对所述业务功能执行灰度处理;所述路由装置用于将接收到的所述参数编号与所述参数表中的灰度要素进行匹配获得多个匹配项,将所述匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;根据所述灰度策略获得对应的路由策略,将所述路由策略反馈至所述切面装置。具体的,在实际工作中,
参数装置1:该装置使本发明达到灵活的效果。用户首先需配置与维护一些参数,做为切面装置2、路由装置3的基础。在灰度场景下灰度要素、灰度策略的更改均依赖该装置。以Java为例,参数装置需维护的要素将在图5的灰度方法要素图中进行详细说明。
切面装置2:该装置使本发明达到业务代码无侵入的效果。切面负责在真正的业务功能前设置拦截器,主要是识别哪些业务功能需要路由,并根据路由装置3的路由决策,执行策略内容。因切面与业务代码已进行解耦,当路由策略变动时,不再需要修改if、else中的代码,只需要修改路由装置的内容,从而达到无业务代码侵入的效果。以Java为例,自定义一个注解:@GrayScale,将所有灰度功能对应的方法都标注该注解,当系统执行到标记了该注解的方法时,切面会自动识别并与路由装置交互最终按照灰度策略完成灰度,最终用户感知的效果如:不同地区的用户可以使用不同功能。
路由装置3:该装置使本发明达到动态的效果。本装置负责根据灰度策略进行决策,需要与参数装置、切面装置进行交互。从参数装置中获取策略,根据与入参动态匹配得到灰度决策的结果,最终将决策结果反馈给切面装置,由切面装置去执行决策内容。
在本发明一实施例中,所述参数装置可包含参数配置模组、参数装载模组和参数编辑模组;所述参数配置模组用于根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;所述参数装载模组用于加载所述参数配置模组中存储的参数表,将所述参数表提供至所述切面装置和所述路由装置调用;所述参数编辑模组用于当新增或路由策略与灰度状态发生变化时,修改所述参数配置模组中的所述参数表。具体的,请参考图2所示,在实际工作中,参数配置模组10负责将灰度要素按照约定的配置规则保存在参数表中,如路由的策略、灰度要素、灰度状态等。参数装载模组11负责参数配置中的参数读取以供切面装置、路由装置使用,包括2种方式,一种是通过直接访问数据库获取参数信息,一种是通过缓存的方式获取参数信息。直接访问数据库可以实时获取数据,但需要消耗网络资源,对于时常变动灰度策略的场景可以采用这种方式。缓存则只需要加载一次参数,能降低资源消耗提升性能,但无法实时热加载,对于灰度策略多的场景可以采用这种方式。参数编辑模组即参数使用12负责处理参数表数据的增删改查。如:当新增了灰度功能时,则需要新增参数表数据,当路由的策略、灰度状态变化时,需要修改参数表数据。当下线了旧功能时,则可以删除参数表数据。当触发切面工作时,则需要查询参数表数据。
在本发明一实施例中,所述切面装置可包含切面配置模组和决策执行模组;所述切面配置模组用于获取系统中涉及灰度的业务功能信息,通过预定标识标识所述业务功能信息对应的业务功能;所述决策执行模组用于识别各业务功能,当所述业务功能需要路由时于所述参数表中获得所述业务功能的入参数据和参数编号;根据所述入参数据和所述参数编号向所述路由装置发起路由策略申请;以及,根据反馈获得的路由策略和所述入参数据对所述业务功能执行灰度处理。具体请参考图3所示,实际工作中,切面配置模组20:负责给灰度功能打标签,以便自动识别出哪些系统功能需要灰度。以Java为例,自定义一个注解:@GrayScale,将所有灰度功能对应的方法都标注该注解,而切面的切入点配置成标记@GrayScale注解的方法,当系统执行到标记了该注解的方法时,切面会自动识别该功能时灰度功能。决策执行模组21:负责执行路由装置反馈的决策内容,完成灰度。
在本发明一实施例中,所述路由装置包含路由策略配置模组、路由策略复用模组和路由决策模组;所述路由策略配置模组用于预存多个灰度策略与路由策略的关联关系;所述路由策略复用模组用于遍历所述灰度策略与所述业务功能的对应关系,当多个不同所述业务功能使用相同的灰度策略时,根据所述灰度策略生成灰度策略模板,以所述灰度策略模板作为对应的多个不同所述业务功能的灰度策略;所述路由决策模组用于将接收到的所述参数编号与所述参数表中的灰度要素进行匹配获得多个匹配项,将所述匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;根据所述灰度策略获得对应的路由策略,将所述路由策略反馈至所述切面装置。具体请参考图4所示,实际工作中,路由策略配置模组31负责自定义灰度策略,例:地区号2-5位是0010的用户使用版本1的功能,不符合这个策略的用户使用版本2的功能。路由策略复用模组32负责当不同功能使用相同的路由策略时,设置一个模板,多个功能之间复用,结合参数装置实现既共享又互不影响的效果。减少重复配置灰度策略。路由决策模组33与入参动态匹配,最终得出决策结果,例:使用哪一个版本的灰度功能。
请参考图5所示,本发明还提供一种无侵入式通用代码级灰度路由方法,所述方法包含:
S501根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;
S502识别各业务功能,当所述业务功能需要路由时于所述参数表中获得所述业务功能的入参数据和参数编号;
S503将接收到的所述参数编号与所述参数表中的灰度要素进行匹配获得多个匹配项,将所述匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;
S504根据所述灰度策略获得对应的路由策略,根据所述路由策略和所述入参数据对所述业务功能执行灰度处理。
在上述实施例中,所述入参数据包含:接口名称、方法签名、路由类名称、参数名称和默认灰度方法版本号;所述参数编号包含灰度方法版本号和灰度方法实现类名称。
在本发明一实施例中,所述方法可还包含:获取系统中涉及灰度的业务功能信息,通过预定标识标识所述业务功能信息对应的业务功能。在本发明另一实施例中,所述方法还包含:根据系统中多个业务功能建立至少一个灰度策略,根据所述灰度策略定义对应的路由策略;将所述路由策略与所述灰度策略关联后存储。其中,根据系统中多个业务功能建立至少一个灰度策略还包含:遍历所述灰度策略与所述业务功能的对应关系,当多个不同所述业务功能使用相同的灰度策略时,根据所述灰度策略生成灰度策略模板,以所述灰度策略模板作为对应的多个不同所述业务功能的灰度策略。
为便于更清楚的理解本发明所提供的上述无侵入式通用代码级灰度路由方法,以下请参考图6和图7所示,对上述方法在实际工作中的具体使用做详细说明,如图6所示,以Java为例,主要说明如何通过灰度要素配置最终得出灰度决策结果。
该图包含接口中的方法要素1、实现类中的方法要素2。
接口中的方法要素1:指接口中的方法具备的统一要素集合,这些要素的值对于不同实现类中的方法都是相同的。例:不管接口A中的MethodA有多少个实现方法,这些要素都是实现类共享和统一的。该集合包含interface(接口名称)、singnatrue(方法签名)、router(路由类名)、paramName(参数名)、defautVersion(默认灰度版本号)。
实现类中的方法要素2:指接口中的方法个性化配置的要素集合,灰度过程主要是靠这些要素进行决策完成。该集合包含verison(灰度版本号)、implementName(方法签名)。其中又包含灰度方法21、灰度方法22、灰度方法23。
灰度方法21是接口A中MethodA的其中一个实现、灰度方法22是接口A中MethodA的另一个一个实现、灰度方法23是接口A中MethodA的第N个实现,依次类推。每一个实现方法都可以定义一个版本号,以此标记灰度版本,最终将由这些版本号的不同体现出不同的灰度功能。
灰度要素使用过程如下,切面装置去调用参数装置,联表查参数表,获取接口中的方法要素1,查出查询语句的输入为:interface_name(接口名称)、singnatrue(方法签名),输出为ListA:routerName(路由类名称)、paramName(参数名称)、defaultVersion(默认灰度方法版本号)。
欲通过该查询获取到一个接口下的某灰度方法使用什么灰度策略去路由,同时得到多条记录包含了实现类中的方法要素2:version(灰度方法版本号)、implementName(灰度方法实现类名称)。
切面装置获取到数据后去调路由装置,以Java为例,基于routerName(路由类名称),通过反射去调自定义Router类。调路由装置将基于paramName(参数名称)得到路由策略,再与入参匹配得出最后的决策结果version(灰度方法版本号)。
切面装置拿到决策结果后,遍历ListA,得到implementName(灰度方法实现类名称),获取bean对象并调用bean对象的灰度方法,真正的灰度方法被执行。如灰度方法有返回值,则返回结果,完成灰度结束。
再请参考图7所示,图7为以Java为例的灰度路由策略生命周期图,以Java为例,主要说明当灰度功能(方法)中存在嵌套调用时,每一个灰度功能可能都配置了个性化自定义的灰度配置,如何解决这种冲突,以哪一个策略为准。该图包含MethodA1、MethodA配置的RouterA2、MethodB3、MethodB配置的RouterB4、MethodN5、MethodN配置的RouterC6。当MethodA1是灰度方法时,它配置了自己的RouterA,RouterA中已确定用什么策略进行路由,比如地区号2-5位是0010就用版本号未1的灰度方法,那么被MethodA1嵌套调用的MethodB、MethodN都将使用RouterA中的策略。即使MethodB、MethodN分别配置了自己的Router,但生效的Router只有RouterA,依次类推。
本发明的有益技术效果在于:解决代码级灰度方法高耦合、侵入性问题,通过参数配置手段可以实现无侵入动态灰度,提升了系统灰度的灵活性,降低系统灰度成本。具体的:
1、降低系统新功能发布风险。多个灰度方法实现不同的灰度功能,根据用户自定义的要素进行路由到不同的灰度方法,从而系统对不同的用户提供不同的灰度功能。一旦出现功能问题可以及时下线旧功能,降低了系统发布风险。
2、降低代码耦合与侵入。通过接口的多实现类特性,可以定制多个灰度版本,当旧功能下线时,可直接删除实现类中的灰度方法,降低代码耦合。当策略变动时,通过参数动态调整,减少代码侵入。
3、降低技术改造或代码重构风险。随着架构转型趋势,系统代码随时面临大面积的技术改造,本灰度方法面向接口编程,代码功能的新增与废弃变得更加容易,因其低耦合性,改造风险也更低。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图8所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图8中所示的所有部件;此外,电子设备600还可以包括图8中没有示出的部件,可以参考现有技术。
如图8所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种无侵入式通用代码级灰度路由系统,其特征在于,所述系统包含参数装置、切面装置和路由装置;
所述参数装置用于根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;
所述切面装置用于识别各业务功能,当所述业务功能需要路由时于所述参数表中获得所述业务功能的入参数据和参数编号;根据所述入参数据和所述参数编号向所述路由装置发起路由策略申请;以及,根据反馈获得的路由策略和所述入参数据对所述业务功能执行灰度处理;
所述路由装置用于将接收到的所述参数编号与所述参数表中的灰度要素进行匹配获得多个匹配项,将所述匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;根据所述灰度策略获得对应的路由策略,将所述路由策略反馈至所述切面装置。
2.根据权利要求1所述的无侵入式通用代码级灰度路由系统,其特征在于,所述参数装置包含参数配置模组、参数装载模组和参数编辑模组;
所述参数配置模组用于根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;
所述参数装载模组用于加载所述参数配置模组中存储的参数表,将所述参数表提供至所述切面装置和所述路由装置调用;
所述参数编辑模组用于当新增或路由策略与灰度状态发生变化时,修改所述参数配置模组中的所述参数表。
3.根据权利要求1所述的无侵入式通用代码级灰度路由系统,其特征在于,所述切面装置包含切面配置模组和决策执行模组;
所述切面配置模组用于获取系统中涉及灰度的业务功能信息,通过预定标识标识所述业务功能信息对应的业务功能;
所述决策执行模组用于识别各业务功能,当所述业务功能需要路由时于所述参数表中获得所述业务功能的入参数据和参数编号;根据所述入参数据和所述参数编号向所述路由装置发起路由策略申请;以及,根据反馈获得的路由策略和所述入参数据对所述业务功能执行灰度处理。
4.根据权利要求1所述的无侵入式通用代码级灰度路由系统,其特征在于,所述路由装置包含路由策略配置模组、路由策略复用模组和路由决策模组;
所述路由策略配置模组用于预存多个灰度策略与路由策略的关联关系;
所述路由策略复用模组用于遍历所述灰度策略与所述业务功能的对应关系,当多个不同所述业务功能使用相同的灰度策略时,根据所述灰度策略生成灰度策略模板,以所述灰度策略模板作为对应的多个不同所述业务功能的灰度策略;
所述路由决策模组用于将接收到的所述参数编号与所述参数表中的灰度要素进行匹配获得多个匹配项,将所述匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;根据所述灰度策略获得对应的路由策略,将所述路由策略反馈至所述切面装置。
5.一种无侵入式通用代码级灰度路由方法,其特征在于,所述方法包含:
根据预设配置规则将灰度要素、路由策略和灰度状态关联于参数表中;
识别各业务功能,当所述业务功能需要路由时于所述参数表中获得所述业务功能的入参数据和参数编号;
将接收到的所述参数编号与所述参数表中的灰度要素进行匹配获得多个匹配项,将所述匹配项与预存的多个灰度策略比对,获得比对相符的灰度策略;
根据所述灰度策略获得对应的路由策略,根据所述路由策略和所述入参数据对所述业务功能执行灰度处理。
6.根据权利要求5所述的无侵入式通用代码级灰度路由方法,其特征在于,所述方法还包含:获取系统中涉及灰度的业务功能信息,通过预定标识标识所述业务功能信息对应的业务功能。
7.根据权利要求5所述的无侵入式通用代码级灰度路由方法,其特征在于,所述方法还包含:根据系统中多个业务功能建立至少一个灰度策略,根据所述灰度策略定义对应的路由策略;将所述路由策略与所述灰度策略关联后存储。
8.根据权利要求7所述的无侵入式通用代码级灰度路由方法,其特征在于,根据系统中多个业务功能建立至少一个灰度策略还包含:遍历所述灰度策略与所述业务功能的对应关系,当多个不同所述业务功能使用相同的灰度策略时,根据所述灰度策略生成灰度策略模板,以所述灰度策略模板作为对应的多个不同所述业务功能的灰度策略。
9.根据权利要求5所述的无侵入式通用代码级灰度路由方法,其特征在于,所述入参数据包含:接口名称、方法签名、路由类名称、参数名称和默认灰度方法版本号。
10.根据权利要求5所述的无侵入式通用代码级灰度路由方法,其特征在于,所述参数编号包含灰度方法版本号和灰度方法实现类名称。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求5至10任一所述方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求5至10任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010749884.6A CN111930420B (zh) | 2020-07-30 | 2020-07-30 | 无侵入式通用代码级灰度路由系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010749884.6A CN111930420B (zh) | 2020-07-30 | 2020-07-30 | 无侵入式通用代码级灰度路由系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930420A true CN111930420A (zh) | 2020-11-13 |
CN111930420B CN111930420B (zh) | 2023-07-07 |
Family
ID=73314930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010749884.6A Active CN111930420B (zh) | 2020-07-30 | 2020-07-30 | 无侵入式通用代码级灰度路由系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930420B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113467800A (zh) * | 2021-05-24 | 2021-10-01 | 康键信息技术(深圳)有限公司 | 应用程序的灰度发布方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108494867A (zh) * | 2018-04-04 | 2018-09-04 | 广州华多网络科技有限公司 | 服务灰度处理的方法、装置、系统以及路由服务器 |
CN109101265A (zh) * | 2017-06-14 | 2018-12-28 | 中国移动通信集团重庆有限公司 | 灰度发布的方法和系统 |
CN109474522A (zh) * | 2017-09-07 | 2019-03-15 | 华为技术有限公司 | 业务路由的方法、装置及存储介质 |
CN110784530A (zh) * | 2019-10-22 | 2020-02-11 | 聚好看科技股份有限公司 | 灰度的发布方法和服务器 |
CN111209032A (zh) * | 2020-01-06 | 2020-05-29 | 中国银联股份有限公司 | 灰度发布方法、配置中心服务器、用户终端、系统及介质 |
-
2020
- 2020-07-30 CN CN202010749884.6A patent/CN111930420B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101265A (zh) * | 2017-06-14 | 2018-12-28 | 中国移动通信集团重庆有限公司 | 灰度发布的方法和系统 |
CN109474522A (zh) * | 2017-09-07 | 2019-03-15 | 华为技术有限公司 | 业务路由的方法、装置及存储介质 |
CN108494867A (zh) * | 2018-04-04 | 2018-09-04 | 广州华多网络科技有限公司 | 服务灰度处理的方法、装置、系统以及路由服务器 |
CN110784530A (zh) * | 2019-10-22 | 2020-02-11 | 聚好看科技股份有限公司 | 灰度的发布方法和服务器 |
CN111209032A (zh) * | 2020-01-06 | 2020-05-29 | 中国银联股份有限公司 | 灰度发布方法、配置中心服务器、用户终端、系统及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113467800A (zh) * | 2021-05-24 | 2021-10-01 | 康键信息技术(深圳)有限公司 | 应用程序的灰度发布方法、装置、设备及存储介质 |
CN113467800B (zh) * | 2021-05-24 | 2023-10-20 | 康键信息技术(深圳)有限公司 | 应用程序的灰度发布方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111930420B (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8196125B2 (en) | Optimization of policy enforcement | |
US10095482B2 (en) | Systems, methods, and media for graphical task creation | |
US10956868B1 (en) | Virtual reality collaborative workspace that is dynamically generated from a digital asset management workflow | |
US20180247075A1 (en) | Configuring image as private within storage container | |
WO2019047809A1 (zh) | 处理应用中图像的方法、装置、终端设备和存储介质 | |
CN101876913A (zh) | 软件组件管理方法及软件组件管理器 | |
KR20140015195A (ko) | 사운드 제어 시스템 및 사운드 제어 방법 | |
CN103677913A (zh) | 基于业务流程管理bpm的业务处理方法及装置 | |
CN113535225A (zh) | 应用软件的环境配置文件处理方法、装置、设备和介质 | |
CN111930420A (zh) | 无侵入式通用代码级灰度路由系统及方法 | |
CN112396511B (zh) | 分布式风控变量数据处理方法、装置及系统 | |
CN111367561B (zh) | 软件程序远程开发方法及装置 | |
US20060248274A1 (en) | Configuration profiles for output cached pages | |
US9191445B2 (en) | Systems and methods for managing emulation sessions | |
CN111858018B (zh) | Cgroup配置的方法、装置、计算机设备及存储介质 | |
CN100416564C (zh) | 存储器映射控制装置、信息存储控制装置及数据移动方法 | |
US12079240B2 (en) | Method and system for managing items in warehouses through distributed ledger | |
US11983295B2 (en) | Method and system for identifying personally identifiable information (PII) through secret patterns | |
CN116341508A (zh) | 报文模板的动态配置方法、装置、计算机设备及存储介质 | |
US20100058433A1 (en) | Modular data synchronization method | |
CN114493493A (zh) | 决策引擎及决策引擎实现方法 | |
CN113660684A (zh) | 终端设备网络自适应优化方法及装置 | |
CN112597510A (zh) | 访问控制方法及装置 | |
CN110909065A (zh) | 一种多数据源智能调用方法 | |
CN113435752B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |