本申请实施例涉及计算机,尤其涉及一种微服务灰度发布方法、装置、设备、介质及产品。
背景技术:
1、现有技术中,基于集中式服务注册发现机制,例如eureka、nacos等微服务集群迁移至kubernetes平台后,改动的地方较大。灰度实现的第一种方式为:提供a/b test系统,即部署至少二套代码环境,以nginx或ingress将用户流量导致新上线的系统;第二种方式是在一套代码环境中,通过在代码中侵入大量开关等逻辑来选择不同的业务逻辑。
2、第一种实现方式部署多套代码环境易造成对资源的浪费,且运维的复杂度增大;第二种实现方式单纯通过代码控制,需在代码中侵入大量开关等逻辑,增加了代码的复杂度和开发成本。
技术实现思路
1、本申请实施例提供一种微服务灰度发布方法、装置、设备、介质及产品,以解决相关技术的灰度发布方式易造成资源浪费、代码侵入,且运维复杂度增大的技术问题。
2、为解决上述技术问题,本申请实施例提供如下几个方面:
3、第一方面,本申请实施例提供一种微服务灰度发布方法,方法包括:
4、接收微服务调用请求;
5、确定所述微服务调用请求是否携带灰度标识信息;
6、如果否,则调用正常版的待调用微服务pod;
7、如果是,则发起k8s的dns查询,以确定所述dns中是否具备已注册的灰度版的待调用微服务pod的service信息;在所述dns中具备已注册的灰度版的待调用微服务pod的service信息的情况下,则根据所述灰度版的待调用微服务pod的service信息,调用所述灰度版的待调用微服务pod;
8、其中,所述service信息包括:待调用微服务pod的service名称和所属的集群服务地址。
9、可选的,在发起k8s的dns查询,以确定所述dns中是否具备已注册的灰度版的待调用微服务pod的service信息之后,所述方法还包括:
10、在所述dns中不具备已注册的灰度版的待调用微服务pod的service信息的情况下,则根据所述dns中已注册的正常版的待调用微服务pod的service信息,调用所述正常版的待调用微服务pod。
11、可选的,所述灰度版的待调用微服务pod和所述正常版的待调用微服务pod,部署在同一代码环境中。
12、可选的,接收微服务调用请求包括以下至少一项:
13、接收来自网关层的微服务调用请求;
14、接收来自上游微服务pod的微服务调用请求。
15、第二方面,本申请实施例提供一种微服务灰度发布装置,所述装置包括:
16、接收模块,用于接收微服务调用请求;
17、执行模块,用于确定所述微服务调用请求是否携带灰度标识信息;
18、如果否,则调用正常版的待调用微服务pod;
19、如果是,则发起k8s的dns查询,以确定所述dns中是否具备已注册的灰度版的待调用微服务pod的service信息;在所述dns中具备已注册的灰度版的待调用微服务pod的service信息的情况下,则根据所述灰度版的待调用微服务pod的service信息,调用所述灰度版的待调用微服务pod;
20、其中,所述service信息包括:待调用微服务pod的服务名称和所属的集群地址。
21、可选的,所述执行模块,还用于在发起dns查询,以确定所述dns中是否具备已注册的灰度版的待调用微服务pod的service信息之后,在所述dns中不具备已注册的灰度版的待调用微服务pod的service信息的情况下,则根据所述dns中已注册的正常版的待调用微服务pod的service信息,调用所述正常版的待调用微服务pod。
22、可选的,所述灰度版的待调用微服务pod和所述正常版的待调用微服务pod,部署在同一代码环境中。
23、可选的,接收微服务调用请求包括以下至少一项:
24、接收来自网关层的微服务调用请求;
25、接收来自上游微服务pod的微服务调用请求。
26、第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的一种微服务灰度发布方法的步骤。
27、第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的一种微服务灰度发布方法的步骤。
28、第五方面,本申请实施例提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如第一方面所述的一种微服务灰度发布方法的步骤。
29、由此,从降低资源浪费和降低代码的逻辑复杂度的角度出发,本申请实施例提出了一种基于kubernetes的微服务灰度发布方法,兼顾了kubernetes的优点,无需部署多套代码环境,实现了业务代码的零侵入,避免了资源浪费,且可支持灵活的灰度部署,提升了用户的体验。
1.一种微服务灰度发布方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在发起kubernetes的dns查询,以确定所述dns中是否具备已注册的灰度版的待调用微服务pod的service信息之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述灰度版的待调用微服务pod和所述正常版的待调用微服务pod,部署在同一代码环境中。
4.根据权利要求1-3中任一项所述的方法,其特征在于,接收微服务调用请求包括以下至少一项:
5.一种微服务灰度发布装置,其特征在于,所述装置包括:
6.根据权利要求5所述的装置,其特征在于,
7.根据权利要求5所述的装置,其特征在于,所述灰度版的待调用微服务pod和所述正常版的待调用微服务pod,部署在同一代码环境中。
8.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1-4中任一项所述的微服务灰度发布方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述程序被所述处理器执行时实现如权利要求1-4中任一项所述的微服务灰度发布方法的步骤。
10.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1-4中任一项所述的微服务灰度发布方法的步骤。
