基于微服务架构的灰度发布方法技术

技术编号:39663727 阅读:14 留言:0更新日期:2023-12-11 18:26
本发明专利技术涉及灰度发布技术领域,揭露了一种基于微服务架构的灰度发布方法,包括:根据灰度前端的配置信息指定灰度发布的灰度对象名单,配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则,根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,得到灰度请求,将灰度请求路由至所述目标灰度服务,并运行目标灰度服务,得到灰度请求反馈,根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单

【技术实现步骤摘要】
基于微服务架构的灰度发布方法、装置及电子设备


[0001]本专利技术涉及灰度发布
,尤其涉及一种基于微服务架构的灰度发布方法

装置及电子设备


技术介绍

[0002]灰度发布是指在黑与白之间能够平滑过渡的一种发布方式,用于在生产环境中逐步将新版本的软件功能或改进引入到部分用户或服务器中,以确保系统的稳定性和可靠性

微服务架构是一种新型的软件架构模式,将一个大型复杂的应用程序拆分成一组相互独立的小型服务,每个服务都关注某个特定的业务功能,并通过明确定义的接口进行通信

[0003]当前主要是通过
Nginx
负载均衡算法,按算法规则分配目标服务从而实现灰度发布

但是利用
Nginx
负载均衡算法实现灰度发布的运维成本高,并且无法实现自定义的灰度用户组,只能按来源或流量比例等一定规则进行分流,因此当前通过
Nginx
负载均衡算法实现灰度发布存在着运维成本高

无法灵活配置灰度用户组的问题


技术实现思路

[0004]本专利技术提供一种基于微服务架构的灰度发布方法装置及电子设备,其主要目的在于解决当前通过
Nginx
负载均衡算法实现灰度发布存在着运维成本高

无法灵活配置灰度用户组的问题

[0005]为实现上述目的,本专利技术提供的一种基于微服务架构的灰度发布方法,包括:根据预设的灰度发布计划指定灰度发布的初始灰度服务和灰度前端,利用所述初始灰度服务和灰度前端配置灰度发布版本;获取灰度前端的配置信息,根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单;将初始灰度服务注册到
Nacos
中,得到目标灰度服务,获取
Nacos
的配置文件,利用
Nacos
的配置文件指定目标灰度服务的灰度版本号;所述获取
Nacos
的配置文件,利用
Nacos
的配置文件指定目标灰度服务的灰度版本号,包括:接收配置文件获取指令,并构建与预构建的
Nacos
配置服务的安全连接;在所述配置文件获取指令中提取目标灰度服务的标识信息,根据所述标识信息获取
Nacos
的配置文件;对所述
Nacos
的配置文件进行解析,得到与目标灰度服务相关的配置信息;从所述配置信息中识别出目标灰度服务的灰度版本号;获取目标灰度服务的配置信息和本地路由规则,利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则;基于
Spring Cloud Gateway
网关接收操作请求,获取操作请求的前端资源信息,
根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,得到灰度请求;获取灰度请求的版本信息,在灰度发布版本中,根据灰度请求的版本信息和网关路由规则将灰度请求路由至所述目标灰度服务,并运行所述目标灰度服务,得到灰度请求反馈,其中所述目标灰度服务与所述灰度请求的灰度版本号及
URL
路径相同;根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单,完成基于微服务架构的灰度发布

[0006]可选地,所述利用所述初始灰度服务和灰度前端配置灰度发布版本,包括:创建初始灰度环境,将所述初始灰度服务和灰度前端引入到初始灰度环境中,得到目标灰度环境;将目标灰度环境投入到预构建的服务平台中,得到灰度发布版本

[0007]可选地,所述根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单,包括:在所述灰度前端的配置信息中提取灰度前端的
IP
地址,得到目标灰度
IP
地址;获取具有所述目标灰度
IP
地址的服务对象,将所述服务对象指定为灰度对象;将所述灰度对象进行汇总,得到灰度对象名单

[0008]可选地,所述将初始灰度服务注册到
Nacos
中,得到目标灰度服务,包括:获取初始灰度服务的服务信息,创建初始
Servicelnstance
实例,在所述初始
Servicelnstance
实例中配置初始灰度服务的服务信息,得到目标
Servicelnstance
实例;添加
Nacos Client SDK
,利用
Nacos Client SDK
初始化
Nacos
配置,得到初始
Nacos
配置;利用所述初始
Nacos
配置指定
Nacos
的端口,得到灰度服务注册端口;根据目标
Servicelnstance
实例调用
Nacos Client SDK
中预设的
registerlnstance
方法,利用所述
registerlnstance
方法和灰度服务注册端口在
Nacos
中注册初始灰度服务,得到目标灰度服务

[0009]可选地,所述利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则,包括:在所述目标灰度服务的配置信息中提取目标灰度服务的灰度版本号和
URL
路径;根据所述目标灰度服务的灰度版本号和
URL
路径创建路由配置空间,将灰度版本号设置为路由配置空间的接口;在所述路由配置空间中,匹配与所述路由配置空间的接口具有相同灰度版本号及
URL
路径的目标灰度服务,得到利用灰度版本号和
URL
路径路由目标灰度服务的版本路由规则;利用
Nacos
将版本路由规则同步更新到所述本地路由规则中,得到网关路由规则

[0010]可选地所述基于
Spring Cloud Gateway
网关接收操作请求,包括:获取
Maven
的配置文件,在
Maven
的配置文件中添加
Spring Cloud Gateway
网关和预构建的
Netty
框架的相应依赖项,得到
Netty
依赖;将
Netty
框架作为底层创建
HTTP
,基于
Netty
依赖利用所述
HTTP
监听并接收操作请求

[0011]可选地,所述根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,
得到灰度请求,包括:在所述操作请求的前端资源信息中提取操作请求的
IP
地址;获取灰度对象名单的配置信息,在初始灰本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于微服务架构的灰度发布方法,其特征在于,所述方法包括:根据预设的灰度发布计划指定灰度发布的初始灰度服务和灰度前端,利用所述初始灰度服务和灰度前端配置灰度发布版本;获取灰度前端的配置信息,根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单;将初始灰度服务注册到
Nacos
中,得到目标灰度服务,获取
Nacos
的配置文件,利用
Nacos
的配置文件指定目标灰度服务的灰度版本号;所述获取
Nacos
的配置文件,利用
Nacos
的配置文件指定目标灰度服务的灰度版本号,包括:接收配置文件获取指令,并构建与预构建的
Nacos
配置服务的安全连接;在所述配置文件获取指令中提取目标灰度服务的标识信息,根据所述标识信息获取
Nacos
的配置文件;对所述
Nacos
的配置文件进行解析,得到与目标灰度服务相关的配置信息;从所述配置信息中识别出目标灰度服务的灰度版本号;获取目标灰度服务的配置信息和本地路由规则,利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则;基于
Spring Cloud Gateway
网关接收操作请求,获取操作请求的前端资源信息,根据所述操作请求的前端资源信息和灰度对象名单筛选操作请求,得到灰度请求;获取灰度请求的版本信息,在灰度发布版本中,根据灰度请求的版本信息和网关路由规则将灰度请求路由至所述目标灰度服务,并运行所述目标灰度服务,得到灰度请求反馈,其中所述目标灰度服务与所述灰度请求的灰度版本号及
URL
路径相同;根据所述灰度请求反馈调整目标灰度服务,更新灰度对象名单,完成基于微服务架构的灰度发布
。2.
如权利要求1所述的基于微服务架构的灰度发布方法,其特征在于,所述利用所述初始灰度服务和灰度前端配置灰度发布版本,包括:创建初始灰度环境,将所述初始灰度服务和灰度前端引入到初始灰度环境中,得到目标灰度环境;将目标灰度环境投入到预构建的服务平台中,得到灰度发布版本
。3.
如权利要求1所述的基于微服务架构的灰度发布方法,其特征在于,所述根据所述灰度前端的配置信息指定灰度发布的服务对象,得到灰度对象名单,包括:在所述灰度前端的配置信息中提取灰度前端的
IP
地址,得到目标灰度
IP
地址;获取具有所述目标灰度
IP
地址的服务对象,将所述服务对象指定为灰度对象;将所述灰度对象进行汇总,得到灰度对象名单
。4.
如权利要求1所述的基于微服务架构的灰度发布方法,其特征在于,所述将初始灰度服务注册到
Nacos
中,得到目标灰度服务,包括:获取初始灰度服务的服务信息,创建初始
Servicelnstance
实例,在所述初始
Servicelnstance
实例中配置初始灰度服务的服务信息,得到目标
Servicelnstance
实例;添加
Nacos Client SDK
,利用
Nacos Client SDK
初始化
Nacos
配置,得到初始
Nacos

置;利用所述初始
Nacos
配置指定
Nacos
的端口,得到灰度服务注册端口;根据目标
Servicelnstance
实例调用
Nacos Client SDK
中预设的
registerlnstance
方法,利用所述
registerlnstance
方法和灰度服务注册端口在
Nacos
中注册初始灰度服务,得到目标灰度服务
。5.
如权利要求1所述的基于微服务架构的灰度发布方法,其特征在于,所述利用所述目标灰度服务的配置信息和灰度版本号配置版本路由规则,根据版本路由规则动态同步更新所述本地路由规则,得到网关路由规则,包括:在所述目标灰度服务的配置信息中提取目标灰度服务的灰度版本号和
URL
路径;根据所述目标灰度服务的灰度版本号和
URL
路径创建路由配置空间,将灰度版本号设置为路由配置空间的接口,在所述路由配置空间中,匹配与所述路由配置空间的接口具有相同灰度版本号及
URL
路径的目标灰度服务,得到利用灰度版本号和
URL
路径路由目标灰度服务的版本路由规则;利用
Nacos
将版本路由规则同步更新到所述本地路由规则中,得到网关路由规则
。6.
如权利要求1所述的基于微服务架构的灰度发布方法,其特征在于,所述基于
Spring Cloud Gateway
网关接收操作请求,包括:获取
Maven
的配置文件,在
Mave...

【专利技术属性】
技术研发人员:张福军罗豪张科
申请(专利权)人:绿城科技产业服务集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1