本技术涉及计算机,特别是涉及一种适用于灰度发布的流量分配方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:
1、目前,微服务灰度发布主要处理流程为,请求流量从前端通过负载均衡策略,并基于上下文根或http域名进入流量网关,并且请求流量通过微服务的端口时通过负载均衡策略进行控制,最终将请求流量分流到灰度群组。由于分布式体系架构中服务数量众多,采用上述分流策略时请求链路会经过多个微服务,造成高频长时并行开发,导致计算资源和存储资源不足,从而降低系统的运行效率。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够提升系统运行效率的适用于灰度发布的流量分配方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
2、第一方面,本技术提供了一种适用于灰度发布的流量分配方法。所述方法包括:
3、基于业务访问流量对应的访问请求,从业务系统包含的多个微服务中,确定与所述访问请求对应的目标微服务;所述业务系统中包含的各所述微服务对应配置有代理实例,且针对各所述代理实例分别配置有流量分配规则;
4、根据所述目标微服务对应的目标代理实例,以及所述目标代理实例的流量分配规则,将所述业务访问流量分流至所述目标微服务中部署完成的多个灰度版本服务,得到各所述灰度版本服务输出的业务中转流量;
5、基于所述目标微服务对应的业务流量传输路径、所述业务流量传输路径中包含的各关联微服务的代理实例,以及所述关联微服务的代理实例对应的流量分配规则,将所述业务中转流量分配至所述目标微服务关联的下一个微服务,直到所述业务中转流量分流至所述目标微服务对应的终点微服务;所述终点微服务用于将所述业务访问流量对应的处理结果返回至生成所述业务访问流量的终端。
6、在其中一个实施例中,所述目标代理实例的流量分配规则包括基于所述业务访问流量中各用户的用户基本信息确定分流的分配规则;所述根据所述目标微服务对应的目标代理实例,以及所述目标代理实例的流量分配规则,将所述业务访问流量分流至所述目标微服务中部署完成的多个灰度版本服务,包括:
7、获取所述业务访问流量包含的多个用户基本信息,以及所述目标微服务对应的多个灰度版本服务;所述业务访问流量中包含多个用户访问流量,所述用户访问流量与所述用户基本信息一一对应;
8、若所述用户基本信息的属性值与所述目标代理实例的流量分配规则中的预设值相匹配,则将所述用户基本信息对应的用户访问流量,分流至所述流量分配规则确定的灰度版本服务。
9、在其中一个实施例中,所述目标微服务对应的目标代理实例配置有多个不同的流量分配规则;所述根据所述目标微服务对应的目标代理实例,以及所述目标代理实例的流量分配规则,将所述业务访问流量分流至所述目标微服务中部署完成的多个灰度版本服务之前,还包括:
10、根据各所述不同的流量分配规则中的优先级标识符,对各所述不同的流量分配规则进行排序,确定排序后的流量分配规则为所述目标代理实例的流量分配规则。
11、在其中一个实施例中,所述基于业务访问流量对应的访问请求,从业务系统包含的多个微服务中,确定与所述访问请求对应的目标微服务之前,还包括:
12、建立各微服务对应的代理实例,并确定各所述代理实例对应的流量分配规则;
13、基于各所述微服务的数据交互关系,连接各所述微服务的代理实例,得到所述业务系统对应的服务网格;
14、基于所述服务网格,确定所述目标微服务至所述目标微服务对应的终点微服务的业务流量传输路径。
15、在其中一个实施例中,所述确定各所述代理实例对应的流量分配规则,包括:
16、针对各所述代理实例,获取当前代理实例对应的服务标识;
17、从规则组件中获取与所述当前代理实例对应的服务标识相匹配的流量分配规则;所述规则组件用于管理各所述代理实例对应的流量分配规则;所述规则组件在获取用户配置文件后,对所述用户配置文件进行验证,并在通过验证后解析得到所述用户配置文件包含的代理实例对应的流量分配规则。
18、在其中一个实施例中,所述基于业务访问流量对应的访问请求,从业务系统包含的多个微服务中,确定与所述访问请求对应的目标微服务,包括:
19、解析所述访问请求,得到所述业务访问流量对应的服务标识;
20、将业务系统包含的多个微服务的服务标识,分别与所述业务访问流量对应的服务标识进行匹配,得到与所述业务访问流量匹配的目标微服务。
21、在其中一个实施例中,所述方法还包括:
22、在确定所述业务访问流量进行分流时发生故障的情况下,确定所述业务访问流量的故障类型;
23、获取当前代理实例预先配置的与所述故障类型对应的故障恢复策略;所述当前代理实例为分配所述业务访问流量的代理实例;
24、基于所述故障恢复策略通过所述当前代理实例对所述业务访问流量进行故障恢复。
25、第二方面,本技术还提供了一种适用于灰度发布的流量分配装置。所述装置包括:
26、微服务确定模块,用于基于业务访问流量对应的访问请求,从业务系统包含的多个微服务中,确定与所述访问请求对应的目标微服务;所述业务系统中包含的各所述微服务对应配置有代理实例,且针对各所述代理实例分别配置有流量分配规则;
27、第一分流模块,用于根据所述目标微服务对应的目标代理实例,以及所述目标代理实例的流量分配规则,将所述业务访问流量分流至所述目标微服务中部署完成的多个灰度版本服务,得到各所述灰度版本服务输出的业务中转流量;
28、第二分流模块,用于基于所述目标微服务对应的业务流量传输路径、所述业务流量传输路径中包含的各关联微服务的代理实例,以及所述关联微服务的代理实例对应的流量分配规则,将所述业务中转流量分配至所述目标微服务关联的下一个微服务,直到所述业务中转流量分流至所述目标微服务对应的终点微服务;所述终点微服务用于将所述业务访问流量对应的处理结果返回至生成所述业务访问流量的终端。
29、第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
30、第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
31、第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述方法的步骤。
32、上述适用于灰度发布的流量分配方法、装置、计算机设备、存储介质和计算机程序产品,通过业务访问流量对应的访问请求,从业务系统包含的多个微服务中确定与访问请求相对应的目标微服务。业务系统中包含已部署的多个微服务,每一个微服务可以部署多个版本的灰度版本服务。业务系统中的每个微服务对应部署有代理实例。基于此,通过目标微服务对应的目标代理实例,以及目标代理实例对应的流量分配规则,将业务访问流量分流至目标微服务中部署完成的多个灰度版本服务中,从而使目标微服务处理业务访问流量,并得到待传输至下一服务节点的业务中转流量。之后,服务器可以基于目标微服务对应的业务流量传输路径、业务流量传输路径包含的各个关联微服务的代理实例,以及各代理实例对应的流量分配规则,将业务中转流量一步步分流至下一个中转微服务中,直到将业务中转流量分流至业务流量传输路径的终点微服务,从而基于业务系统包含的多个微服务对应的代理实例,完成对业务访问流量的全部调度。服务器通过上述方法能够将业务访问流量分配至业务系统中用于灰度发布的全部微服务。由于每个微服务均存在代理实例以及代理实例对应的流量分配规则,服务器在调度过程中能够通过代理实例对业务访问流量进行分流,无需微服务参与分流过程,降低了微服务对计算资源的消耗。此外,业务访问流量依据业务流量传输路径能够预先规划分流方向,进一步减少各微服务接收到的流量,减少并行开发的时间,从而提升业务系统的运行效率。
1.一种适用于灰度发布的流量分配方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述目标代理实例的流量分配规则包括基于所述业务访问流量中各用户的用户基本信息确定分流的分配规则;所述根据所述目标微服务对应的目标代理实例,以及所述目标代理实例的流量分配规则,将所述业务访问流量分流至所述目标微服务中部署完成的多个灰度版本服务,包括:
3.根据权利要求1所述的方法,其特征在于,所述目标微服务对应的目标代理实例配置有多个不同的流量分配规则;所述根据所述目标微服务对应的目标代理实例,以及所述目标代理实例的流量分配规则,将所述业务访问流量分流至所述目标微服务中部署完成的多个灰度版本服务之前,还包括:
4.根据权利要求1所述的方法,其特征在于,所述基于业务访问流量对应的访问请求,从业务系统包含的多个微服务中,确定与所述访问请求对应的目标微服务之前,还包括:
5.根据权利要求4所述的方法,其特征在于,所述确定各所述代理实例对应的流量分配规则,包括:
6.根据权利要求1所述的方法,其特征在于,所述基于业务访问流量对应的访问请求,从业务系统包含的多个微服务中,确定与所述访问请求对应的目标微服务,包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种适用于灰度发布的流量分配装置,其特征在于,所述装置包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
