System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,特别是涉及一种全链路灰度发布方法、系统、设备、存储介质及程序产品。
技术介绍
1、随着用户和业务的急速增长,服务更新迭代越来越快,服务的稳定性要求也越来越高,这就对研发人员和系统升级方式提出更严峻的考验。基于系统稳定性和快速迭代的综合考虑,一般采用灰度发布方式来进行服务迭代升级。
2、目前业界的灰度发布方法多是针对单个微服务的灰度,即使考虑了多个微服务也仅仅是请求链路的灰度,没有数据层面的灰度设计。而实际生产使用过程中,微服务架构下各服务间的依赖错综复杂,单个微服务的灰度发布无法满足实际需要,且服务升级过程中往往同时伴随着数据库表结构的更新和灰度过程中表数据的更新,需要同时实现链路和数据库的全链路灰度发布。
3、因此,上述现有的灰度发布方法,在使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。如何能创设一种可实现链路和数据库的全链路灰度发布方法,成为当前业界急需改进的目标。
技术实现思路
1、有鉴于此,本专利技术实施例提供一种可实现链路和数据库的全链路灰度发布方法,至少部分解决现有技术中存在的问题。
2、第一方面,本专利技术实施例提供了全链路灰度发布方法,包括:
3、接收租户请求,并解析租户请求上下文中的租户组信息;所述租户组信息是通过将租户按照数据库分库信息进行分组获得,并作为分流标识在上下文传递;
4、将所述租户请求中的租户组信息与灰度分流规则进行匹配,匹配成功后,将灰度标识trafficgr
5、根据租户请求的上下文中的灰度标识trafficgroup是否存在进行负载均衡,如存在灰度标识trafficgroup,则将当前请求对应的灰度分流版本的分流实例做转发,进入对应微服务的灰度分流实例,所述灰度分流实例连接灰度数据库;如不存在,则进入对应微服务的主实例,所述主实例连接主数据库。
6、根据本专利技术实施例的一种具体实现方式,所述通过将租户按照数据库分库信息进行分组包括:按照数据库的租户分库,将使用同一数据源的租户定义为一个租户组;其中,一个数据源包含一个或多个数据库连接,每个数据库连接对应不同标签,标明适用于不同的租户级别。
7、根据本专利技术实施例的一种具体实现方式,所述租户组信息被预置到租户登录token中作为分流标识在上下文传递。
8、根据本专利技术实施例的一种具体实现方式,所述灰度分流规则直接放到数据库中供页面查看,以及所述灰度分流规则还以注解形式放到微服务对应的ingress对象和容器环境变量中,最终存储到etcd和注册中心上,用于灰度分流规则进行匹配时获取使用。
9、根据本专利技术实施例的一种具体实现方式,所述灰度分流规则包括:按租户组进行灰度,以维度为单位,一个维度下有一至多个数据源,每个数据源对应一个租户组。
10、根据本专利技术实施例的一种具体实现方式,根据租户请求的上下文中的灰度标识trafficgroup是否存在进行负载均衡时,如不存在灰度标识trafficgroup,或不存在当前请求对应的灰度分流版本的分流实例,则按照各类型分流优先级一次匹配具体规则,再进入对应微服务的主实例。
11、根据本专利技术实施例的一种具体实现方式,还包括灰度分流一键切入切出;
12、切入前,主实例同时连接主数据库和灰度数据库,灰度分流实例连接灰度数据库;切入后,断开主实例与灰度数据库的绑定,主实例只连接主数据库,灰度分流实例只连接灰度数据库。
13、第二方面,本专利技术实施例提供了一种全链路灰度发布系统,包括:
14、请求解析模块,被配置用于接收租户请求,并解析租户请求上下文中的租户组信息;所述租户组信息是通过将租户按照数据库分库信息进行分组获得,并作为分流标识在上下文传递;
15、匹配染色模块,被配置用于将所述租户请求中的租户组信息与灰度分流规则进行匹配,匹配成功后,将灰度标识trafficgroup恢复到租户请求的上下文中,进行全链路染色传递;
16、负载均衡转发模块,被配置用于根据租户请求的上下文中的灰度标识trafficgroup是否存在进行负载均衡,如存在灰度标识trafficgroup,则将当前请求对应的灰度分流版本的分流实例做转发,进入对应微服务的灰度分流实例,所述灰度分流实例连接灰度数据库;如不存在,则进入对应微服务的主实例,所述主实例连接主数据库。
17、第三方面,本专利技术实施例提供了一种电子设备,所述电子设备包括:
18、至少一个处理器;以及,
19、与所述至少一个处理器通信连接的存储器;其中,
20、所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使所述至少一个处理器前述第一方面或第一方面的任一实现方式中的任一项所述的全链路灰度发布方法。
21、第四方面,本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令当由至少一个处理器执行时使所述至少一个处理器执行前述第一方面或第一方面的任一实现方式中的全链路灰度发布方法。
22、第五方面,本专利技术实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序指令,所述计算机程序指令被处理器执行时实现前述第一方面或第一方面的任一实现方式中的全链路灰度发布方法。
23、本专利技术是将租户按照数据库分库信息进行分组,各租户数据只访问对应的数据库实例,并按照租户组进行请求灰度分流,灰度租户组只会请求灰度分流实例,本专利技术考虑了多个微服务,可实现链路和数据库的全链路灰度,保证生产环境稳定,且灰度范围灵活可控。
本文档来自技高网...【技术保护点】
1.一种全链路灰度发布方法,其特征在于,包括:
2.根据权利要求1所述的全链路灰度发布方法,其特征在于,所述通过将租户按照数据库分库信息进行分组包括:按照数据库的租户分库,将使用同一数据源的租户定义为一个租户组;其中,一个数据源包含一个或多个数据库连接,每个数据库连接对应不同标签,标明适用于不同的租户级别。
3.根据权利要求1所述的全链路灰度发布方法,其特征在于,所述租户组信息被预置到租户登录token中作为分流标识在上下文传递;
4.根据权利要求1所述的全链路灰度发布方法,其特征在于,所述灰度分流规则包括:按租户组进行灰度,以维度为单位,一个维度下有一至多个数据源,每个数据源对应一个租户组。
5.根据权利要求1所述的全链路灰度发布方法,其特征在于,根据租户请求的上下文中的灰度标识trafficGroup是否存在进行负载均衡时,如不存在灰度标识trafficGroup,或不存在当前请求对应的灰度分流版本的分流实例,则按照各类型分流优先级一次匹配具体规则,再进入对应微服务的主实例。
6.根据权利要求1所述的全链路灰度发布方
7.一种全链路灰度发布系统,其特征在于,包括:
8.一种电子设备,其特征在于,所述电子设备包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令当由至少一个处理器执行时使所述至少一个处理器执行如权利要求1至6中的任一项所述的全链路灰度发布方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序指令,所述计算机程序指令被处理器执行时实现权利要求1至6任一项所述的全链路灰度发布方法。
...【技术特征摘要】
1.一种全链路灰度发布方法,其特征在于,包括:
2.根据权利要求1所述的全链路灰度发布方法,其特征在于,所述通过将租户按照数据库分库信息进行分组包括:按照数据库的租户分库,将使用同一数据源的租户定义为一个租户组;其中,一个数据源包含一个或多个数据库连接,每个数据库连接对应不同标签,标明适用于不同的租户级别。
3.根据权利要求1所述的全链路灰度发布方法,其特征在于,所述租户组信息被预置到租户登录token中作为分流标识在上下文传递;
4.根据权利要求1所述的全链路灰度发布方法,其特征在于,所述灰度分流规则包括:按租户组进行灰度,以维度为单位,一个维度下有一至多个数据源,每个数据源对应一个租户组。
5.根据权利要求1所述的全链路灰度发布方法,其特征在于,根据租户请求的上下文中的灰度标识trafficgroup是否存在...
【专利技术属性】
技术研发人员:马晓荣,邵书超,綦玉冰,
申请(专利权)人:用友网络科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。