一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Tag多环境系统治理方法及装置与流程

2022-06-01 08:27:31 来源:中国专利 TAG:

一种基于tag多环境系统治理方法及装置
技术领域
1.本发明涉及计算机技术领域,尤其涉及一种基于tag多环境系统治理方法及装置。


背景技术:

2.对于跨境机票,酒店业务而言,是面向全球的不同时区的客户提供服务,意味着任何时候访问系统时相关业务系统是随时可用的,系统需具有24小时提供稳定服务的能力。在生产发版时,代码交付质量及发布方式具有很高的要求,需要保证代码发布生产前是验证过的且保证验证过程出现问题的故障范围可控。现有技术中,解决此问题是准备一套与生产环境镜像的系统如灰度环境,相关更改先发布灰度环境中对应的系统上,然后从生产环境入口切流到灰度环境入口进行调用链验证,没问题再发布到生产环境。
3.类似的还有测试环境,为了相关业务技术团队内部需求测试以及自测不相互干扰,也会采用上述灰度环境的手法搭建几套镜像测试环境,每套环境包括上百个子系统以及几十台机器,这种方案的问题在于并不是任意时刻都需要这么多系统或机器,只有需求测试或灰度的时候才会使用到相关服务或机器。这种方案对于规模小的业务尚可行的通,对于像跨境机票,酒店涉及很多子系统的业务而言,由于每次发完版本之后各个环境同步基线代码也是一个非常繁琐耗时的工作,导致维护一整套相当规模的环境不仅机器支出成本高,且浪费机器资源和缺乏灵活性。


技术实现要素:

4.有鉴于此,本发明提供了一种基于tag多环境治理方法及装置,解决了传统的镜像一整套环境的方式带来的高成本、资源浪费、缺乏灵活性和同步环境的问题,具体采用以下技术方案来实现。
5.第一方面,本发明提供了一种基于tag多环境系统治理方法,包括以下步骤:
6.部署一套全量的基于基准分支代码的服务,根据测试或需求涉及改动的基准服务搭建环境部署各自对应的特性服务并配置特性服务的tag信息;
7.将所述tag信息添加至请求信息,并采用调用服务方式对所述请求信息进行处理,所述调用服务方式包括前端页面调用服务方式和使用api接口调用服务方式;
8.根据前端页面请求到达调用链下个节点服务时,当前服务调用下个处理节点时使用路由方法进行请求路由,判断调用链下个节点服务对应的服务提供方节点是否存在与所述tag信息匹配的服务提供方节点,所述特性服务和所述调用链下个节点服务属于调用链;
9.若是,将请求和tag信息转发至所述特性服务提供方节点;
10.若否,转发请求和tag信息至基准服务提供方节点。
11.作为上述技术方案的进一步改进,将所述tag信息添加至请求信息,并采用调用服务方式对所述请求信息进行处理,包括:
12.获取多测试环境中的至少两个需求信息,所述至少两个需求信息包括第一特征信息和第二特征信息;
13.根据所述第一特征信息和所述第二特征信息部署对应的第一测试服务、第二测试服务,并在配置中心配置所述第一特征信息、所述第二特征信息分别对应的tag信息,其中,第一测试服务和第二测试服务属于特性服务;
14.根据所述第一测试服务和所述第二测试服务从所述配置中心拉取对应的tag信息,确定所述第一测试服务、所述第二测试服务的第一注册信息并将所述tag信息发送至注册中心,所述注册中心推送所述第一注册信息给连接至所述注册中心的其他服务。
15.作为上述技术方案的进一步改进,所述注册中心发送所述第一注册信息给连接至所述注册中心的其他服务,包括:
16.发送带有所述第一特征信息标记的第一请求至第一应用服务,所述第一应用服务接收所述第一请求并解析出所述第一特征信息对应的第一标签,执行内部业务逻辑到达第二应用服务的调用点,其中,所述第一请求属于所述请求信息;
17.根据透传的所述第一特征信息从所述第二应用服务的服务提供方匹配到所述第一测试服务时,转发所述第一请求和所述第一特征信息给所述第一测试服务;
18.所述第二应用服务解析出所述第一标签,执行内部业务逻辑到达第三应用服务的调用点,根据透传所述第一特征信息从所述第三应用服务的服务提供方没有匹配到与所述tag信息匹配的服务提供方时,转发所述第一请求和所述第一特征信息给所述第三应用服务的基准服务。
19.作为上述技术方案的进一步改进,转发所述第一请求和所述第一特征信息给所述第三应用服务的基准服务,包括:
20.所述第三应用服务解析出所述第一标签,执行内部业务逻辑到达第四应用服务的调用点;
21.根据透传的所述第一特征信息从所述第四应用服务的服务提供方中没有匹配到与所述tag信息匹配的服务提供方时,转发所述第一请求和所述第一特征信息给所述第四应用服务的基准服务。
22.作为上述技术方案的进一步改进,所述注册中心推送所述第一注册信息给连接至所述注册中心的其他服务,还包括:
23.发送带有所述第二特征信息标记的第二请求至第一应用服务,所述第一应用服务接收所述第二请求并解析出所述第二特征信息对应的第二标签,执行内部业务逻辑到达第二应用服务的调用点,其中,所述第二请求属于所述请求信息;
24.所述第二应用服务解析出所述第二标签,执行内部业务逻辑到达第三应用服务的调用点,根据透传的所述第二特征信息从所述第二应用服务的服务提供方没有匹配到与所述tag信息匹配的服务提供方时,转发所述第二请求和所述第二特征信息给所述第三应用服务的基准服务;
25.所述第三应用服务解析出所述第二标签,执行内部业务逻辑达到第四应用服务的调用点,根据透传的所述第二特征信息从所述第四应用服务的服务提供方中匹配到所述第二测试服务时,转发所述第二请求和所述第二特征信息给所述第二测试服务。
26.作为上述技术方案的进一步改进,转发所述第二请求和所述第二特征信息给所述第二测试服务之后,包括:
27.向配置中心发布灰度规则和待灰度服务关联的tag,所述配置中心下发所述灰度
规则至连接到所述配置中心的所有生产服务;
28.启动灰度服务并在注册中心生成第二注册信息,所述注册中心推送所述第二注册信息至连接所述注册中心的其他服务;
29.向第一应用服务发送请求,所述第一应用服务执行内部业务逻辑到达第二应用服务的调用点,根据所述灰度规则生成灰度标识信息,并将所述灰度标识信息中的待灰度服务关联的tag和所述请求转发至所述第二应用服务的灰度服务。
30.作为上述技术方案的进一步改进,根据所述灰度规则生成灰度标识信息,并将所述灰度标识信息中的待灰度服务关联的tag和所述灰度请求转发至所述第二应用服务的灰度服务,包括:
31.所述第二应用服务接收到所述请求并解析出所述灰度标识信息中的标签特征,执行内部业务逻辑到达第三应用服务的调用点;
32.根据透传的所述标签特征从所述第三应用服务的服务提供方没有匹配到与所述待灰度服务关联的tag匹配的服务提供方时,转发所述请求和所述标签特征给所述第三应用服务的基准服务。
33.作为上述技术方案的进一步改进,转发所述请求和所述标签特征给所述第三应用服务的基准服务,包括:
34.所述第三应用服务解析出所述标签特征,执行内部业务逻辑到达第四应用服务的调用点;
35.根据透传的所述标签特征从所述第四应用服务的服务提供方中匹配到灰度服务时,转发所述请求和所述标签特征给所述第四应用服务的灰度服务。
36.第二方面,本发明还提供了一种基于tag多环境系统治理装置,包括tag解析模块、tag透传模块、tag路由模块、灰度规则模块和tag注册模块;
37.tag解析模块,用于解析标记前端页面请求头中的tag信息,当服务接收到前端页面请求时,按照预设解析规则从请求头中解析出tag信息并将其发送给tag透传模块;
38.tag透传模块,用于存储服务和tag解析模块解析出的tag信息,同时跟随着服务内部的业务执行流程,透明的无感知的传递tag信息,当内部执行流程到达下个服务的调用点时通过tag透传模块获取到与执行流程绑定的tag信息;
39.tag路由模块,包括通用路由功能和灰度测试流量切入功能,通用路由功能根据透传的tag信息匹配合适的服务提供方转发请求并传递tag信息给下游服务;灰度测试流量切入功能包括根据灰度规则模块提供的信息,切分部分流量到灰度测试服务,将灰度tag放到转发请求头中传递给下游灰度测试服务;
40.灰度规则模块,用于当服务启动时拉取在配置中心配置的灰度规则缓存在本地以及服务启动后监听配置中心灰度规则变化事件来更新本地缓存中本对应的灰度规则;
41.tag注册模块,用于在服务启动时将配置中心中关于服务配置的特殊tag在注册服务时一起注册到注册中心,使上游服务从注册中心得到服务提供方的特殊tag信息作请求匹配,以转发对应请求得到服务提供方的对应节点。
42.作为上述技术方案的进一步改进,tag路由模块还包括:
43.当灰度测试服务上游的生产环境服务没有接收到灰度标记请求时,tag路由模块执行灰度测试流量切入功能;
44.当存在tag信息传递时,调用链中的服务根据tag信息执行tag路由模块的通用路由功能。
45.本发明提供了一种基于tag多环境系统治理方法及装置,相对于现有技术,具有以下的有益效果:
46.通过部署一套全量的基于基准分支代码的服务,根据测试或需求涉及改动的基准服务搭建环境部署各自对应的特性服务并配置特性服务的tag信息,将所述tag信息添加至请求信息,并采用调用服务方式对所述请求信息进行处理,可以根据需要测试更改服务启动部署相应服务,根据前端页面请求到达调用链下个节点服务时,当前服务调用下个处理节点时使用路由方法进行请求路由,判断调用链下个节点服务对应的服务提供方节点是否存在与所述tag信息匹配的服务提供方节点,所述特性服务和所述调用链下个节点服务属于调用链,采用tag标记测试需求,可以提高操作的灵活性,结合多环境测试和灰度测试可以根据tag路由模块的功能,实现不同阶段的路由功能,可以提高测试服务的效率。通过按需部署测试/灰度服务,采用tag生成、tag透传、tag路由、配置灰度规则和流量切入的方法达到标记请求的传递执行,从而实现灰度/需求测试目的,提升了操作灵活性,具有成本低、运维简单和维护高效的特点,同时灰度测试故障范围可控,且可快速关闭流量切入以防止故障长时间影响业务正常运转,一定程度上提高了系统的工作稳定性。
附图说明
47.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
48.图1为本发明实施例提供的基于tag多环境系统治理方法的流程图;
49.图2为本发明实施例提供的第一测试服务的执行过程图;
50.图3为本发明实施例提供的第二测试服务的执行过程图;
51.图4为本发明实施例提供的多测试环境处理方法的原理图;
52.图5为本发明实施例提供的灰度服务的执行过程图;
53.图6为本发明实施例提供的灰度服务处理方法的原理图;
54.图7为本发明实施例提供的基于tag多环境系统治理装置的结构框图。
具体实施方式
55.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
56.需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。相反,当元件被称作“直接在”另一元件“上”时,不存在中间元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
57.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
58.参阅图1,本发明提供了一种基于tag多环境系统治理方法,包括以下步骤:
59.s1:部署一套全量的基于基准分支代码的服务,根据测试或需求涉及改动的基准服务搭建环境部署各自对应的特性服务并配置特性服务的tag信息;
60.s2:将所述tag信息添加至请求信息,并采用调用服务方式对所述请求信息进行处理,所述调用服务方式包括前端页面调用服务方式和使用api接口调用服务方式;
61.s3:根据前端页面请求到达调用链下个节点服务时,当前服务调用下个处理节点时使用路由方法进行请求路由,判断调用链下个节点服务对应的服务提供方节点是否存在与所述tag信息匹配的服务提供方节点,所述特性服务和所述调用链下个节点服务属于调用链;
62.s4:若是,将请求和tag信息转发至特性所述服务提供方节点;
63.s5:若否,转发请求和tag信息至基准服务提供方节点。
64.本实施例中,对于某一个项目的代码,给它建立三条分支:upstream branch、baseline branch、main branch(上游分支、基线分支、主开发分支),其中上游分支即为源代码所在分支,该分支不在建立的代码仓库内;基线分支,用于保存上一次代码升级的上游分支状况,也是代码升级过程中的中转分支;主开发分支,建立的仓库内给研发使用的开发分支,它是基线分支和定制代码。灰度发布指的是在黑与白之间,能够平滑过渡的一种方式。服务灰度发布的主要作用包括:解决服务升级不兼容问题,及时获得用户的意见反馈、完善产品功能和提升服务质量,缩小服务升级所影响的用户范围、降低升级风险。
65.需要说明的是,全量部署一套环境变为按需部署相关测试如灰度服务,任务完成后回收服务器释放资源,先需要有一套基于基线代码(release分支)的全量环境,全量环境可以是生产或者测试环境包含所有的服务即系统,其次当需要测试或灰度相关代码变更的服务时,临时搭建机器并部署相关服务,启动服务前需要配置相关tag信息,测试采用前端页面调用服务方式时需要在页面填写tag信息或者使用api接口调用服务的方式时需要在请求信息中直接带上tag,当http请求到达请求传递到服务调用链中的某个服务并调用下游服务时,通过tag路由转发请求给下游服务,先判断当前调用是否带有tag,然后判断当前要调用的下游服务提供方节点中是否有与该tag匹配的服务提供方,如果有则将http请求连带tag转发到该特性服务提供方节点,如果没有则转发http请求到基准服务提供方节点。
66.应理解,本发明实施例主要包括tag生成、tag透传、tag路由和灰度tag生成的方法,tag生成方法的过程为:tag本身是标记的意思,即用来标记测试/灰度http请求,tag信息可以在前端页面调用服务前时添加,也可以通过api直接调用时添加,或灰度切流时添加,发送http请求时tag信息作为http请求头的一部分与请求参数一起传递,具体的形式为tag:(tagname),约定测试的tagname为测试分支名字,若是灰度的tagname,则默认为gray。
67.tag透传方法的过程为:当服务调用链中的某个节点服务接收到标记的http后,在经过一系列方法调用业务处理后,若需要调用下一个节点服务,则需要将tag信息继续传递
下去,从服务endpoint解析出tag到下一个服务调用点获取到该tag为透传。由于tag信息并不属于业务信息,所以在实际业务代码中并不会考虑tag信息传递,这就导致tag信息无法从请求接入电透传到代码中调用下一个服务的地方,可以使用context的解决思路,隐式的传递tag,在请求接入地方从请求头拿到tag放入context,在调用下游服务时从context取出tag放入http请求头中一起传递给下游服务。
68.tag路由方法的过程为:该方法是本发明提出的方法的核心,本发明提出的方法思路是实现按需部署需求涉及改动的相关测试/灰度服务,要实现这一目标,本发明提出tag路由方法并结合透传tag信息把请求路由给相应的测试/灰度服务,临时部署的测试/灰度启动时会额外注册tag信息,tag路由根据这些额外信息做服务提供方匹配,然后进行请求转发,具体的路由规则是如果存在下游服务提供方的注册信息中包含有与透传tag匹配的信息,则选择该服务提供方,否则选择基准服务提供方。tag路由还负责灰度请求转发,同时为了保证灰度测试过程中出现问题之后的故障影响范围可控制,从而保证服务质量,同时按照百分比转发请求到灰度服务。
69.灰度tag生成方法的过程为:灰度tag与测试tag的生成稍微有不同,测试时tag信息是测试人员在请求入口提供的而灰度tag不行,灰度的流量是来自生产环境,而生产环境流量来自业务方或者客户,他们不能提供tag信息;基于此本发明提出根据灰度转发规则来判断在调用服务时是否执行灰度转发,如果需要灰度转发则自动生成灰度tag并随请求转发给灰度服务,进而tag传递给后续调用链上的其他服务。灰度规则包含需要执行灰度的服务名及转发流量百分比信息,同时约定执行灰度服务提供方注册信息带gray标签。
70.通过按需部署测试/灰度服务,采用tag生成、tag透传、tag路由、配置灰度规则和流量切入的方法达到标记请求的传递执行,从而实现灰度/需求测试目的,提升了操作灵活性,具有成本低、运维简单和维护高效的特点,同时灰度测试故障范围可控,且可快速关闭流量切入以防止故障长时间影响业务正常运转,一定程度上提高了系统的工作稳定性。
71.参阅图2和图5,可选地,将所述tag信息添加至请求信息,并采用调用服务方式对所述请求信息进行处理,包括:
72.s20:获取多测试环境中的至少两个需求信息,所述至少两个需求信息包括第一特征信息和第二特征信息;
73.s21:根据所述第一特征信息和所述第二特征信息部署对应的第一测试服务、第二测试服务,并在配置中心配置所述第一特征信息、所述第二特征信息分别对应的tag信息,其中,第一测试服务和第二测试服务属于特性服务;
74.s22:根据所述第一测试服务和所述第二测试服务从所述配置中心拉取对应的tag信息,确定所述第一测试服务、所述第二测试服务的第一注册信息并将所述tag信息发送至注册中心,所述注册中心推送所述第一注册信息给连接至所述注册中心的其他服务。
75.参阅图3,本实施例中,第一特征信息记为feature_1,第二特征信息记为feature_2,第一测试服务记为app2’,第二测试服务记为app4’,第一应用服务记为app1,第二应用服务记为app2,第三应用服务记为app3,第四应用服务记为app4,第一测试人员记为tester1,第二测试人员记为tester2。在配置中心配置被测试需求所涉及改动服务关联的tag,两个需求同时测试,分支名分别为feature_1、feature_2,部署测试服务分别为app2’、app4’,配置中心tag配置feature_1、feature_2,启动app2’/app4’,同时这两个测试服务从配置中心
拉取对应的tag信息,注册自身信息以及拉取的tag到注册中心,启动完成,注册中心推送新注册服务信息给其他连接到注册中心的服务,完成准备工作。
76.可选地,所述注册中心推送所述第一注册信息给连接至所述注册中心的其他服务,包括:
77.s23:发送带有所述第一特征信息标记的第一请求至第一应用服务,所述第一应用服务接收所述第一请求并解析出所述第一特征信息对应的第一标签,执行内部业务逻辑到达第二应用服务的调用点,其中,所述第一请求属于所述请求信息;
78.s24:根据透传的所述第一特征信息从所述第二应用服务的服务提供方匹配到所述第一测试服务时,转发所述第一请求和所述第一特征信息给所述第一测试服务;
79.s25:所述第二应用服务解析出所述第一标签,执行内部业务逻辑到达第三应用服务的调用点,根据透传的所述第一特征信息从所述第三应用服务的服务提供方没有匹配到与所述tag信息匹配的服务提供方时,转发所述第一请求和所述第一特征信息给所述第三应用服务的基准服务。
80.本实施例中,tester1开始测试发送带有feature_1标记的请求到app1,app1接收到请求解析出标签feature_1,执行内部业务逻辑到达app2调用点,根据透传“feature_1”从app2的服务提供方匹配到app2’,转发请求和“feature_1”给app2’。app2接收到请求解析出标签feature_1,执行内部业务逻辑到达app3调用点,根据透传“feature_1”从app3的服务提供方没有匹配到与tag匹配的服务提供方,转发请求及“feature_1”给基准服务app3。
81.可选地,转发所述第一请求和所述第一特征信息给所述第三应用服务的基准服务,包括:
82.s26:所述第三应用服务解析出所述第一标签,执行内部业务逻辑到达第四应用服务的调用点;
83.s27:根据透传的所述第一特征信息从所述第四应用服务的服务提供方中没有匹配到与所述tag信息匹配的服务提供方时,转发所述第一请求和所述第一特征信息给所述第四应用服务的基准服务。
84.本实施例中,app3接收到请求解析出标签feature_1,执行内部业务逻辑到达app4调用点,根据透传“feature_1”从app4的服务提供方中没有匹配到与tag匹配的服务提供方,转发请求及“feature_1”给基准服务app4,流程结束。处理节点的路径为第一应用服务

第二应用服务

第一测试服务

第二应用服务

第三应用服务

第四应用服务,通过tester1进行按需测试和透传,可以得到测试数据的完整性,并能提升测试的精度。
85.参阅图3和图5,可选地,所述注册中心推送所述第一注册信息给连接至所述注册中心的其他服务,还包括:
86.s30:发送带有所述第二特征信息标记的第二请求至第一应用服务,所述第一应用服务接收所述第二请求并解析出所述第二特征信息对应的第二标签,执行内部业务逻辑到达第二应用服务的调用点,其中,所述第二请求属于所述请求信息;
87.s31:所述第二应用服务解析出所述第二标签,执行内部业务逻辑到达第三应用服务的调用点,根据透传的所述第二特征信息从所述第二应用服务的服务提供方没有匹配到与所述tag信息匹配的服务提供方时,转发所述第二请求和所述第二特征信息给所述第三应用服务的基准服务;
88.s32:所述第三应用服务解析出所述第二标签,执行内部业务逻辑达到第四应用服务的调用点,根据透传的所述第二特征信息从所述第四应用服务的服务提供方中匹配到所述第二测试服务时,转发所述第二请求和所述第二特征信息给所述第二测试服务。
89.本实施例中,tester2开始测试,发送带有feature_2标记的请求到app1,请求执行路由方法与tester1相同,此处不再赘述,请求处理节点的路径为app1

app2

app3

app4’,即第一应用服务

第二应用服务

第三应用服务

第二测试服务。
90.参阅图4和图6,可选地,转发所述第二请求和所述第二特征信息给所述第二测试服务之后,包括:
91.s40:向配置中心发布灰度规则和待灰度服务关联的tag,所述配置中心下发所述灰度规则至连接到所述配置中心的所有生产服务;
92.s41:启动灰度服务并在注册中心生成第二注册信息,所述注册中心推送所述第二注册信息至连接所述注册中心的其他服务;
93.s42:向第一应用服务发送请求,所述第一应用服务执行内部业务逻辑到达第二应用服务的调用点,根据灰度规则生成灰度标识信息,并将所述灰度标识信息中的待灰度服务关联的tag和所述请求转发至所述第二应用服务的灰度服务。
94.本实施例中,先发布灰度规则和待灰度服务关联的tag到配置中心,配置中心下发灰度规则到生产服务,启动灰度服务,并注册服务信息到注册中心,注册中心推送服务注册信息给其他服务,客户端请求发送到app1,app1执行内部业务逻辑到达app2调用点,根据灰度规则生成灰度tag-gray,并将tag和请求转发到第二应用服务的灰度服务即灰度服务app2,灰度服务app2比第二应用服务的基准服务app2颜色深。
95.可选地,根据所述灰度规则生成灰度标识信息,并将所述灰度标识信息中的待灰度服务关联的tag和所述请求转发至所述第二应用服务,包括:
96.s43:所述第二应用服务接收到所述请求并解析出所述灰度标识信息中的标签特征,执行内部业务逻辑到达第三应用服务的调用点;
97.s44:根据透传的所述标签特征从所述第三应用服务的服务提供方没有匹配到与所述待灰度服务关联的tag匹配的服务提供方时,转发所述请求和所述标签特征给所述第三应用服务的基准服务。
98.本实施例中,app2收到请求解析出标签gray,执行内部业务逻辑到达app3调用点,根据透传的“gray”从app3的服务提供方没有匹配到与tag匹配的服务提供方,转发请求和“gray”给基准服务app3。
99.可选地,转发所述请求和所述标签特征给所述第三应用服务的基准服务,包括:
100.s45:所述第三应用服务解析出所述标签特征,执行内部业务逻辑到达第四应用服务的调用点;
101.s46:根据透传的所述标签特征从所述第四应用服务的服务提供方中匹配到灰度服务时,转发所述请求和所述标签特征给所述第四应用服务的灰度服务。
102.本实施例中,app3接收到请求解析出标签gray,执行内部业务逻辑到达app4调用点,根据透传“gray”从app4的服务提供方中匹配到灰度服务时,转发请求和“gray”给灰度服务app4,流程结束,第四应用服务的灰度服务即灰度服务app4,灰度服务app4比基准服务app4的颜色深。通过灰度测试环境中在配置中心的配置灰度tag、在注册中心注册服务信息
可以快速实现灰度测试,操作简单易实现。
103.参阅图7,本发明还提供了一种基于tag多环境系统治理装置,包括tag解析模块、tag透传模块、tag路由模块、灰度规则模块和tag注册模块;
104.tag解析模块,用于解析标记前端页面请求头中的tag信息,当服务接收到前端页面请求时,按照预设解析规则从请求头中解析出tag信息并将其发送给tag透传模块;
105.tag透传模块,用于存储服务和tag解析模块解析出的tag信息,同时跟随着服务内部的业务执行流程,透明的无感知的传递tag信息,当内部执行流程到达下个服务的调用点时通过tag透传模块获取到与执行流程绑定的tag信息;
106.tag路由模块,包括通用路由功能和灰度测试流量切入功能,通用路由功能根据透传的tag信息匹配合适的服务提供方转发请求并传递tag信息给下游服务;灰度测试流量切入功能包括根据灰度规则模块提供的信息,切分部分流量到灰度测试服务,将灰度tag放到转发请求头中传递给下游灰度测试服务;
107.灰度规则模块,用于当服务启动时拉取在配置中心配置的灰度规则缓存在本地以及服务启动后监听配置中心灰度规则变化事件来更新本地缓存中本对应的灰度规则;
108.tag注册模块,用于在服务启动时将配置中心中关于服务配置的特殊tag在注册服务时一起注册到注册中心,使上游服务从注册中心得到服务提供方的特殊tag信息作请求匹配,以转发对应请求得到服务提供方的对应节点。
109.本实施例中,tag路由模块还包括:当灰度测试服务上游的生产环境服务没有接收到灰度标记请求时,tag路由模块执行灰度测试流量切入功能;当存在tag信息传递时,调用链中的服务根据tag信息执行tag路由模块的通用路由功能。tag解析模块用于解析标记http请求头中的tag信息,tag数据是放在http请求头中,当服务接收到http请求后,由该模块从请求头中按照约定的规则解析出tag信息并交给透传模块。tag透传模块用于存储服务tag解析模块解析出的tag信息,同时跟随者服务内部的业务执行流程,透明的无感知的传递tag信息,当内部执行流程到达下个服务的调用点时,可以通过tag透传模块获取到与执行流程绑定的tag信息。
110.需要说明的是,tag路由模块具有两个作用:1)通用的路由功能,根据透传的tag信息匹配合适的服务提供方将转发请求一起传递tag信息给下游服务;2)灰度测试流量切入,根据灰度规则模块提供的信息,切分部分流量到灰度测试服务,同时将灰度tag放到转发请求头中传递给下游灰度测试服务,其中,只有灰度测试服务上游的生产环境没有接收到灰度标记请求时该功能才起作用,后续有tag传下去,后续调用链中的服务根据tag信息执行调用tag路由逻辑即可。灰度规则模块负责在服务启动时拉取在配置中心配置的灰度规则并缓存在本地以及服务启动后监听配置中心灰度规则变化事件,以更新本地缓存中对应的灰度规则。tag注册模块负责在服务启动时把配置中心里针对该服务配置的特殊tag在注册服务时一起注册到注册中心,这样上游服务才能从注册中心拿到服务提供发的特殊tag信息做请求匹配,进而转发对应请求到服务提供方的对应节点。
111.在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
112.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
113.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献