掌桥专利:专业的专利平台
掌桥专利
首页

基于微服务架构的灰度发布方法、装置及电子设备

文献发布时间:2024-04-18 19:58:26


基于微服务架构的灰度发布方法、装置及电子设备

技术领域

本发明涉及灰度发布技术领域,尤其涉及一种基于微服务架构的灰度发布方法、装置及电子设备。

背景技术

灰度发布是指在黑与白之间能够平滑过渡的一种发布方式,用于在生产环境中逐步将新版本的软件功能或改进引入到部分用户或服务器中,以确保系统的稳定性和可靠性。微服务架构是一种新型的软件架构模式,将一个大型复杂的应用程序拆分成一组相互独立的小型服务,每个服务都关注某个特定的业务功能,并通过明确定义的接口进行通信。

当前主要是通过Nginx负载均衡算法,按算法规则分配目标服务从而实现灰度发布。但是利用Nginx负载均衡算法实现灰度发布的运维成本高,并且无法实现自定义的灰度用户组,只能按来源或流量比例等一定规则进行分流,因此当前通过Nginx负载均衡算法实现灰度发布存在着运维成本高、无法灵活配置灰度用户组的问题。

发明内容

本发明提供一种基于微服务架构的灰度发布方法装置及电子设备,其主要目的在于解决当前通过Nginx负载均衡算法实现灰度发布存在着运维成本高、无法灵活配置灰度用户组的问题。

为实现上述目的,本发明提供的一种基于微服务架构的灰度发布方法,包括:

根据预设的灰度发布计划指定灰度发布的初始灰度服务和灰度前端,利用所述初始灰度服务和灰度前端配置灰度发布版本;

获取灰度前端的配置信息,根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单;

将初始灰度服务注册到Nacos中,得到目标灰度服务,获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号;

所述获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号,包括:

接收配置文件获取指令,并构建与预构建的Nacos配置服务的安全连接;

在所述配置文件获取指令中提取目标灰度服务的标识信息,根据所述标识信息获取Nacos的配置文件;

对所述Nacos的配置文件进行解析,得到与目标灰度服务相关的配置信息;

从所述配置信息中识别出目标灰度服务的灰度版本号;

获取目标灰度服务的配置信息和本地路由规则,利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则;

基于Spring Cloud Gateway网关接收操作请求,获取操作请求的前端资源信息,根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,得到灰度请求;

获取灰度请求的版本信息,在灰度发布版本中,根据灰度请求的版本信息和网关路由规则将灰度请求路由至所述目标灰度服务,并运行所述目标灰度服务,得到灰度请求反馈,其中所述目标灰度服务与所述灰度请求的灰度版本号及URL路径相同;

根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单,完成基于微服务架构的灰度发布。

可选地,所述利用所述初始灰度服务和灰度前端配置灰度发布版本,包括:

创建初始灰度环境,将所述初始灰度服务和灰度前端引入到初始灰度环境中,得到目标灰度环境;

将目标灰度环境投入到预构建的服务平台中,得到灰度发布版本。

可选地,所述根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单,包括:

在所述灰度前端的配置信息中提取灰度前端的IP地址,得到目标灰度IP地址;

获取具有所述目标灰度IP地址的服务对象,将所述服务对象指定为灰度对象;

将所述灰度对象进行汇总,得到灰度对象名单。

可选地,所述将初始灰度服务注册到Nacos中,得到目标灰度服务,包括:

获取初始灰度服务的服务信息,创建初始Servicelnstance实例,在所述初始Servicelnstance实例中配置初始灰度服务的服务信息,得到目标Servicelnstance实例;

添加Nacos Client SDK,利用Nacos Client SDK初始化Nacos配置,得到初始Nacos配置;

利用所述初始Nacos配置指定Nacos的端口,得到灰度服务注册端口;

根据目标Servicelnstance实例调用Nacos Client SDK中预设的registerlnstance方法,利用所述registerlnstance方法和灰度服务注册端口在Nacos中注册初始灰度服务,得到目标灰度服务。

可选地,所述利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则,包括:

在所述目标灰度服务的配置信息中提取目标灰度服务的灰度版本号和URL路径;

根据所述目标灰度服务的灰度版本号和URL路径创建路由配置空间,将灰度版本号设置为路由配置空间的接口;

在所述路由配置空间中,匹配与所述路由配置空间的接口具有相同灰度版本号及URL路径的目标灰度服务,得到利用灰度版本号和URL路径路由目标灰度服务的版本路由规则;

利用Nacos将版本路由规则同步更新到所述本地路由规则中,得到网关路由规则。

可选地所述基于Spring Cloud Gateway网关接收操作请求,包括:

获取Maven的配置文件,在Maven的配置文件中添加Spring Cloud Gateway网关和预构建的Netty框架的相应依赖项,得到Netty依赖;

将Netty框架作为底层创建HTTP,基于Netty依赖利用所述HTTP监听并接收操作请求。

可选地,所述根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,得到灰度请求,包括:

在所述操作请求的前端资源信息中提取操作请求的IP地址;

获取灰度对象名单的配置信息,在初始灰度用户名单的配置信息中提取灰度对象名单的IP地址;

根据灰度对象名单的IP地址和操作请求的IP地址,从操作请求中提取与灰度对象名单的IP地址相同的操作请求,得到灰度请求。

可选地,所述根据灰度请求的版本信息和网关路由规则将灰度请求路由至所述目标灰度服务,并运行所述目标灰度服务,得到灰度请求反馈,包括:

创建Gateway配置类,利用Gateway配置类将网关路由规则配置到所述SpringCloud Gateway网关中,得到目标路由规则;

在灰度请求的版本信息中提取灰度请求的版本号和URL路径,将灰度请求的版本号作为Spring Cloud Gateway网关的请求接口;

根据Spring Cloud Gateway网关的请求接口和目标路由规则匹配与灰度请求具有相同灰度版本号和相同URL路径的目标灰度服务;

根据目标路由规则,利用Spring Cloud Gateway网关将灰度请求路由到所述目标灰度服务;

根据灰度请求运行所述目标灰度服务,得到灰度请求反馈。

可选地,所述根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单,完成基于微服务架构的灰度发布,包括:

利用Nacos,根据灰度服务反馈判断与灰度请求具有相同灰度版本号和相同URL路径的目标灰度服务是否为可用服务;

若所述目标灰度服务不为可用服务,则利用Nacos对所述目标灰度服务进行调整,并返回上述利用Nacos,根据灰度服务反馈判断与灰度请求具有相同灰度版本号和相同URL路径的目标灰度服务是否为可用服务的步骤;

若所述目标灰度服务为可用服务,则获取灰度对象名单的配置文件,利用所述灰度对象名单的配置文件扩大所述目标灰度服务的服务对象,得到服务用户名单;

根据服务用户名单扩大灰度发布版本的范围,实现基于微服务架构的灰度发布。

为了解决上述问题,本发明还提供一种基于微服务架构的灰度发布装置,所述装置包括:

灰度发布版本配置模块,用于根据预设的灰度发布计划指定灰度发布的初始灰度服务和灰度前端,利用所述初始灰度服务和灰度前端配置灰度发布版本;获取灰度前端的配置信息,根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单;将初始灰度服务注册到Nacos中,得到目标灰度服务,获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号;所述获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号,包括:接收配置文件获取指令,并构建与预构建的Nacos配置服务的安全连接; 在所述配置文件获取指令中提取目标灰度服务的标识信息,根据所述标识信息获取Nacos的配置文件;对所述Nacos的配置文件进行解析,得到与目标灰度服务相关的配置信息;从所述配置信息中识别出目标灰度服务的灰度版本号;

网关路由模块,用于获取目标灰度服务的配置信息和本地路由规则,利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则;基于Spring Cloud Gateway网关接收操作请求,获取操作请求的前端资源信息,根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,得到灰度请求;获取灰度请求的版本信息,在灰度发布版本中,根据灰度请求的版本信息和网关路由规则将灰度请求路由至所述目标灰度服务,并运行所述目标灰度服务,得到灰度请求反馈,其中所述目标灰度服务与所述灰度请求的灰度版本号及URL路径相同;

灰度发布版本释放模块,用于根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单,完成基于微服务架构的灰度发布。

为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以实现上述所述的基于微服务架构的灰度发布方法。

相比于背景技术所述:当前通过Nginx负载均衡算法实现灰度发布存在着运维成本高、无法灵活配置灰度用户组的现象,本发明实施例通过配置灰度发布版本,指定灰度发布版本影响的初始灰度服务、灰度前端以及灰度对象,从而汇总灰度对象得到灰度对象名单,利用Nocas指定目标灰度服务的灰度版本号,根据灰度服务的灰度版本号配置版本路由规则,利用Nacos更新本地路由规则,从而得到网关路由规则,接收客户端的操作请求,根据灰度对象名单筛选出灰度请求,基于网关路由规则,利用Spring Cloud Gateway网关路由灰度请求并运行所述目标灰度服务,得到灰度请求反馈,根据灰度请求反馈判断目标灰度服务的可用性,更新灰度对象名单,实现灰度发布。因此本发明提出的基于微服务架构的灰度发布方法、装置及电子设备,可以解决当前通过Nginx负载均衡算法实现灰度发布存在着运维成本高、无法灵活配置灰度用户组的问题。

附图说明

图1为本发明一实施例提供的基于微服务架构的灰度发布方法的流程示意图;

图2为本发明一实施例提供的基于微服务架构的灰度发布装置的功能模块图;

图3为本发明一实施例提供的实现所述基于微服务架构的灰度发布方法的电子设备的结构示意图。

本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本申请实施例提供一种基于微服务架构的灰度发布方法。所述基于微服务架构的灰度发布方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述基于微服务架构的灰度发布方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。

实施例1:参照图1所示,为本发明一实施例提供的基于微服务架构的灰度发布方法的流程示意图。在本实施例中,所述基于微服务架构的灰度发布方法包括:

S1、根据预设的灰度发布计划指定灰度发布的初始灰度服务和灰度前端,利用所述初始灰度服务和灰度前端配置灰度发布版本。

可解释的,所述灰度发布计划指灰度发布的目标和需要进行灰度发布的新版本服务,示例性的,线上已运行了一套对外提供七层服务的服务A,此时开发了一些新的服务特性,需要发布一个包含新的服务特性的版本服务B。

本发明实施例中,所述初始灰度服务是指需要进行灰度发布的新版本服务,灰度前端是指新版本服务的前端资源。

本发明实施例中,所述利用所述初始灰度服务和灰度前端配置灰度发布版本,包括:

创建初始灰度环境,将所述初始灰度服务和灰度前端引入到初始灰度环境中,得到目标灰度环境;

将目标灰度环境投入到预构建的服务平台中,得到灰度发布版本。

可解释的,所述灰度发布版本是指用于灰度发布的服务平台,其中,服务平台是指提供服务的集中化平台,用于连接服务和服务对象,并提供一系列功能和工具对服务进行管理和交互。

可解释的是,所述目标灰度环境是处于开发环境和生产环境之间、用于执行灰度发布的特殊环境,可以逐步有序地对新版本进行测试和验证。在灰度环境中,只有一部分用户被引导到新版本,其他用户仍然使用旧版本。利用灰度环境进行灰度发布,可以限制新版本服务潜在问题的影响范围,并逐步检验新版本服务的性能、稳定性和用户体验。

需解释的是,所述目标灰度环境要与生产环境具有相同的配置和规模以及相似的服务环境。

S2、获取灰度前端的配置信息,根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单。

可解释的,所述灰度前端的配置信息包括灰度前端的IP地址,灰度前端的IP地址是指客户端在网络通信中使用的IP地址,用于识别用户、进行地理位置定位、安全验证,例如:用户终端设备的公共IP地址和局域网中的私有IP地址。

本发明实施例中,所述灰度对象名单是指满足条件的灰度发布的服务对象列表。

本发明实施例中,所述根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单,包括:

在所述灰度前端的配置信息中提取灰度前端的IP地址,得到目标灰度IP地址;

获取具有所述目标灰度IP地址的服务对象,将所述服务对象指定为灰度对象;

将所述灰度对象进行汇总,得到灰度对象名单。

S3、将初始灰度服务注册到Nacos中,得到目标灰度服务,获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号。

可解释的,所述Nacos是指开源的分布式配置管理和服务发现平台,提供用于动态配置管理、服务注册和发现功能。示例性的,Nacos能够动态获取配置,同步更新路由规则。

详细地,Nacos包括Nacos注册中心,能够通过Nacos注册中心注册自身服务,并发现其他服务。示例性的,Nacos通过调用Nacos Client SDK中的registerlnstance方法,将初始灰度服务注册到所述Nacos注册中心。

本发明实施例中,所述将初始灰度服务注册到Nacos中,得到目标灰度服务,包括:

获取初始灰度服务的服务信息,创建初始Servicelnstance实例,在所述初始Servicelnstance实例中配置初始灰度服务的服务信息,得到目标Servicelnstance实例;

添加Nacos Client SDK,利用Nacos Client SDK初始化Nacos配置,得到初始Nacos配置;

利用所述初始Nacos配置指定Nacos的端口,得到灰度服务注册端口;

根据目标Servicelnstance实例调用Nacos Client SDK中预设的registerlnstance方法,利用所述registerlnstance方法和灰度服务注册端口在Nacos中注册初始灰度服务,得到目标灰度服务。

本发明实施例中,所述利用Nacos的配置文件指定目标灰度服务的灰度版本号,包括:

在所述Nacos的配置文件中提取灰度配置项并指定灰度配置项的值,得到目标配置值;

根据所述目标配置值匹配目标灰度服务,得到灰度版本号。

可解释的,所述初始灰度服务的配置信息包括服务名称、IP地址、端口、URL路径。

可解释的,所述URL路径是指在一个完整的URL中,表示要访问的资源在服务器上的位置或路径,通常在域名后面的第一个正斜杠开始,并以斜杠或者资源的扩展名结束。

可解释的,所述Servicelnstance实例是微服务架构中用来表示一个服务实例的对象,Servicelnstance实例的属性中包含了服务实例的信息,示例性的,Servicelnstance实例的Serxice Host属性表示服务实例的IP地址,客户端能通过IP地址访问相关服务。

可解释的,所述Nacos Client SDK是针对Nacos的客户端开发工具包,常用于与Nacos服务器进行通信和交互。示例性的,Nacos通过调用Nacos Client SDK中的registerlnstance方法,将灰度服务注册到Nacos注册中心。

可解释的,所述灰度配置项是指用于指定灰度服务版本号的配置属性,例如:指定灰度配置项的值为1,则灰度服务的版本号为1。

可选地,所述所述获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号,还可以包括:

接收配置文件获取指令,并构建与预构建的Nacos配置服务的安全连接;

在所述配置文件获取指令中提取目标灰度服务的标识信息,根据所述标识信息获取Nacos的配置文件;

对所述Nacos的配置文件进行解析,得到与目标灰度服务相关的配置信息;

从所述配置信息中识别出目标灰度服务的灰度版本号。

S4、获取目标灰度服务的配置信息和本地路由规则,利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则。

可解释的,路由规则是指用于确定网络数据包的传输路径的规则,指定数据包从源地址到目标地址的路由路径,示例性的,版本路由规则根据服务版本号匹配灰度请求的目标灰度服务。

本发明实施例中,所述本地路由规则是指在Nacos中定义的规则,包括默认规则、子网规则、源地址规则,用于决定数据包的转发路径。示例性的,在没有特定规则匹配时,系统按照默认规则进行处理,将数据包发送到默认网关。

本发明实施例中,所述利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则,包括:

在所述目标灰度服务的配置信息中提取目标灰度服务的灰度版本号和URL路径;

根据所述目标灰度服务的灰度版本号和URL路径创建路由配置空间,将灰度版本号设置为路由配置空间的接口,在所述路由配置空间中,匹配与所述路由配置空间的接口具有相同灰度版本号及URL路径的目标灰度服务,得到利用灰度版本号和URL路径路由目标灰度服务的版本路由规则;

利用Nacos将版本路由规则同步更新到所述本地路由规则中,得到网关路由规则。

S5、基于Spring Cloud Gateway网关接收操作请求,获取操作请求的前端资源信息,根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,得到灰度请求。

可解释的,Spring Cloud是用于构建和管理分布式系统的框架,用于开发和管理分布式应用程序的常见问题。示例性的,利用Spring Cloud Gateway网关对外部请求进行路由和过滤,从而保护内部微服务的安全性和稳定性。其中,所述Spring Cloud Gateway网关是指轻量级的、非阻塞的、响应式的API网关。

本发明实施例中,所述操作请求是指客户端申请获得对应目标灰度服务的请求,所述操作请求的前端资源信息包括操作请求的IP地址。

本发明实施例中,所述灰度请求是指属于灰度对象名单的客户端申请获得对应目标灰度服务的请求。

本发明实施例中,所述基于Spring Cloud Gateway网关接收操作请求,包括:

获取Maven的配置文件,在Maven的配置文件中添加Spring Cloud Gateway网关和预构建的Netty框架的相应依赖项,得到Netty依赖;

将Netty框架作为底层创建HTTP,基于Netty依赖利用所述HTTP监听并接收操作请求。

可解释的,所述Maven是用来管理Java项目的依赖项、编译、测试以及压缩任务的构建工具,通过Maven的pom.xml配置文件定义服务项目的属性和依赖项。其中所述pom.xml配置文件是指项目对象模型。

可解释的,所述Netty框架是值开源的网络应用程序框架,用于快速开发高性能的网络服务器和客户端。

本发明实施例中,所述Netty依赖是指Spring Cloud Gateway网关和Netty框架之间的相关依赖性。

本发明实施例中,在所述操作请求的前端资源信息中提取操作请求的IP地址;

获取灰度对象名单的配置信息,在初始灰度用户名单的配置信息中提取灰度对象名单的IP地址;

根据灰度对象名单的IP地址和操作请求的IP地址,从操作请求中提取与灰度对象名单的IP地址相同的操作请求,得到灰度请求。

可解释的,所述灰度用户名单的配置信息包括灰度对象名单的IP地址。

S6、获取灰度请求的版本信息,在灰度发布版本中,根据灰度请求的版本信息和网关路由规则将灰度请求路由至所述目标灰度服务,并运行所述目标灰度服务,得到灰度请求反馈,其中所述目标灰度服务与所述灰度请求的灰度版本号及URL路径相同。

可解释的,所述灰度请求的版本信息包括灰度请求的灰度版本号和URL路径,所述灰度请求反馈是指运行所述与灰度请求的灰度版本号和URL路径相同的目标灰度服务得到的结果。

本发明实施例中,所述在灰度发布版本中,根据灰度请求的版本信息和网关路由规则将灰度请求路由至所述目标灰度服务,并运行所述目标灰度服务,得到灰度请求反馈,包括:

创建Gateway配置类,利用Gateway配置类将网关路由规则配置到所述SpringCloud Gateway网关中,得到目标路由规则;

在灰度请求的版本信息中提取灰度请求的版本号和URL路径,将灰度请求的版本号作为Spring Cloud Gateway网关的请求接口;

根据Spring Cloud Gateway网关的请求接口和目标路由规则匹配与灰度请求具有相同灰度版本号和相同URI路径的目标灰度服务;

根据目标路由规则,利用Spring Cloud Gateway网关将灰度请求路由到所述目标灰度服务;

根据灰度请求运行所述目标灰度服务,得到灰度请求反馈。

S7、根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单,完成基于微服务架构的灰度发布。

本发明实施例中,所述根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单,完成基于微服务架构的灰度发布,包括:

利用Nacos,根据灰度服务反馈判断与灰度请求具有相同灰度版本号和相同URI路径的目标灰度服务是否为可用服务;

若所述目标灰度服务不为可用服务,则利用Nacos对所述目标灰度服务进行调整,并返回上述根据灰度服务目标判断与灰度请求具有相同灰度版本号和相同URI路径的目标灰度服务是否为可用服务的步骤;

若所述目标灰度服务为可用服务,则获取灰度对象名单的配置文件,利用所述灰度对象名单的配置文件扩大所述目标灰度服务的服务对象,得到服务用户名单;

根据服务用户名单扩大灰度发布版本的范围,实现基于微服务架构的灰度发布。

相比于背景技术所述:当前通过Nginx负载均衡算法实现灰度发布存在着运维成本高、无法灵活配置灰度用户组的现象,本发明实施例通过配置灰度发布版本,指定灰度发布版本影响的初始灰度服务、灰度前端以及灰度对象,从而汇总灰度对象得到灰度对象名单,利用Nocas指定目标灰度服务的灰度版本号,根据灰度服务的灰度版本号配置版本路由规则,利用Nacos更新本地路由规则,从而得到网关路由规则,接收客户端的操作请求,根据灰度对象名单筛选出灰度请求,基于网关路由规则,利用Spring Cloud Gateway网关路由灰度请求并运行所述目标灰度服务,得到灰度请求反馈,根据灰度请求反馈判断目标灰度服务的可用性,更新灰度对象名单,实现灰度发布。因此本发明提出的基于微服务架构的灰度发布方法、装置及电子设备,可以解决当前通过Nginx负载均衡算法实现灰度发布存在着运维成本高、无法灵活配置灰度用户组的问题。

实施例2:如图2所示,是本发明一实施例提供的基于微服务架构的灰度发布装置的功能模块图。

本发明所述基于微服务架构的灰度发布装置100可以安装于电子设备中。根据实现的功能,所述基于微服务架构的灰度发布装置100可以包括灰度发布版本配置模块101、网关路由模块102及灰度发布版本释放模块103。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

所述灰度发布版本配置模块101,用于根据预设的灰度发布计划指定灰度发布的初始灰度服务和灰度前端,利用所述初始灰度服务和灰度前端配置灰度发布版本;获取灰度前端的配置信息,根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单;将初始灰度服务注册到Nacos中,得到目标灰度服务,获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号;所述获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号,包括:接收配置文件获取指令,并构建与预构建的Nacos配置服务的安全连接; 在所述配置文件获取指令中提取目标灰度服务的标识信息,根据所述标识信息获取Nacos的配置文件;对所述Nacos的配置文件进行解析,得到与目标灰度服务相关的配置信息;从所述配置信息中识别出目标灰度服务的灰度版本号;

所述网关路由模块102,用于获取目标灰度服务的配置信息和本地路由规则,利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则;基于Spring Cloud Gateway网关接收操作请求,获取操作请求的前端资源信息,根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,得到灰度请求;获取灰度请求的版本信息,在灰度发布版本中,根据灰度请求的版本信息和网关路由规则将灰度请求路由至所述目标灰度服务,并运行所述目标灰度服务,得到灰度请求反馈,其中所述目标灰度服务与所述灰度请求的灰度版本号及URL路径相同;

所述灰度发布版本释放模块103,用于根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单,完成基于微服务架构的灰度发布。

详细地,本发明实施例中所述基于微服务架构的灰度发布装置100中的所述各模块在使用时采用与上述的图1中所述的基于微服务架构的灰度发布方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。

实施例3:如图3所示,是本发明一实施例提供的实现基于微服务架构的灰度发布方法的电子设备的结构示意图。

所述电子设备1可以包括处理器10、存储器11、总线12和通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如基于微服务架构的灰度发布程序。

所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如基于微服务架构的灰度发布程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。

所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。

图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。

进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。

可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

所述电子设备1中的所述存储器11存储的基于微服务架构的灰度发布程序是多个指令的组合,在所述处理器10中运行时,可以实现:

根据预设的灰度发布计划指定灰度发布的初始灰度服务和灰度前端,利用所述初始灰度服务和灰度前端配置灰度发布版本;

获取灰度前端的配置信息,根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单;

将初始灰度服务注册到Nacos中,得到目标灰度服务,获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号;所述获取Nacos的配置文件,利用Nacos的配置文件指定目标灰度服务的灰度版本号,包括:

接收配置文件获取指令,并构建与预构建的Nacos配置服务的安全连接;

在所述配置文件获取指令中提取目标灰度服务的标识信息,根据所述标识信息获取Nacos的配置文件;

对所述Nacos的配置文件进行解析,得到与目标灰度服务相关的配置信息;

从所述配置信息中识别出目标灰度服务的灰度版本号;

获取目标灰度服务的配置信息和本地路由规则,利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则;

基于Spring Cloud Gateway网关接收操作请求,获取操作请求的前端资源信息,根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,得到灰度请求;

获取灰度请求的版本信息,在灰度发布版本中,根据灰度请求的版本信息和网关路由规则将灰度请求路由至所述目标灰度服务,并运行所述目标灰度服务,得到灰度请求反馈,其中所述目标灰度服务与所述灰度请求的灰度版本号及URL路径相同;

根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单,完成基于微服务架构的灰度发布。

具体地,所述处理器10对上述指令的具体实现方法可参考图1至图2对应实施例中相关步骤的描述,在此不赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

相关技术
  • 灰度发布方法、装置、计算机设备及计算机存储介质
  • 服务灰度发布方法、装置、系统及存储介质
  • 基于微服务架构的信息系统灰度发布用户选择方法和系统
  • 基于微服务架构的信息系统灰度发布用户选择方法和系统
技术分类

06120116492486