发布微服务应用的方法、系统、计算机设备和存储介质技术方案

技术编号:28706789 阅读:17 留言:0更新日期:2021-06-05 23:12
本申请涉及云部署技术领域,提供一种发布微服务应用的方法、系统、计算机设备和存储介质,应用于微服务系统,所述微服务系统包括openresty平台、服务提供方以及服务调用方,服务提供方将其在openresty平台中的openresty域名作为元数据发送至微服务注册中心注册至服务列表中,服务调用方定时从所述微服务注册中心获取所述服务列表,将所述服务提供方的ip端口修改为所述openresty域名,并保存在所述微服务系统的本地,使得应用在滚动发布时,也依然可以通过openresty域名路由进行调用;同时,openresty平台自动摘除所述服务提供方的微服务实例,并滚动发布所述服务提供方,解决了应用滚动发布期间,转发到正在发布的微服务实例导致的服务不可用的问题。实例导致的服务不可用的问题。实例导致的服务不可用的问题。

【技术实现步骤摘要】
发布微服务应用的方法、系统、计算机设备和存储介质


[0001]本申请涉及云部署的
,特别涉及一种发布微服务应用的方法、系统、计算机设备和存储介质。

技术介绍

[0002]应用程序升级面临最大挑战是新旧业务切换,将应用程序从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。长期以来,业务升级渐渐形成了几个发布策略:蓝绿发布、灰度发布和滚动发布。滚动发布是指每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版本升级新版本,目的是尽可能避免因发布导致的流量丢失或服务不可用问题。
[0003]在发布期间,传统的滚动发布忽视了应用的高可用性,微服务间的调用依然存在请求路由到正在发布的微服务节点。针对高可用性要求非常高的系统而言,传统的滚动发布难以满足要求。同时,滚动发布期间手动摘除微服务,一方面自动化部署步骤变得冗长,另一方面,增加了系统运维成本,使得系统无法安全高效地运作,影响客户体验度。

技术实现思路

[0004]本申请的主要目的为提供一种发布微服务应用的方法、系统、计算机设备和存储介质,旨在克服目前滚动发布微服务应用时应用不可用的缺陷。
[0005]为实现上述目的,本申请提供了一种发布微服务应用的方法,应用于微服务系统,所述微服务系统中导入有openfeign SDK工具包以运行openresty平台,所述微服务系统还包括服务提供方以及服务调用方,所述方法包括以下步骤:
[0006]所述服务提供方将所述服务提供方在openresty平台中的openresty域名作为元数据发送至微服务注册中心注册,并存储至服务列表中;其中,所述服务提供方为所述微服务系统中前一批滚动发布的应用;
[0007]服务调用方定时从所述微服务注册中心获取所述服务列表;其中,所述服务调用方为所述微服务系统中后一批滚动发布的应用;
[0008]所述服务调用方根据所述服务列表,将所述服务提供方的ip端口修改为所述openresty域名,并保存在所述微服务系统的本地;
[0009]所述openresty平台自动摘除所述服务提供方的微服务实例,并滚动发布所述服务提供方。
[0010]进一步地,所述滚动发布所述服务提供方的步骤之后,包括:
[0011]所述服务提供方获取滚动发布之前的第一版本号;其中,所述第一版本号包括三级;
[0012]所述服务提供方获取滚动发布时的更新内容;
[0013]所述服务提供方根据所述更新内容对应的更新功能,获取所述服务提供方的更新类型;所述更新类型包括主框架更新、新增功能以及功能修正;
[0014]所述服务提供方根据所述更新类型,对应修改所述第一版本号,得到第二版本号,作为所述服务提供方滚动发布之后的版本号。
[0015]进一步地,所述所述服务提供方根据所述更新类型,对应修改所述第一版本号的步骤,包括:
[0016]若所述更新类型为主框架更新,则在第一版本号的第一级的数字基础之上增加1,并将第二级与第三级的数字复位为0;
[0017]若所述更新类型为新增功能,则在第一版本号的第二级的数字基础之上增加1,并将第三级的数字复位为0;
[0018]若所述更新类型为功能修正,则在第一版本号的第三级的数字基础之上增加1。
[0019]进一步地,所述滚动发布所述服务提供方的步骤之后,包括:
[0020]所述服务提供方获取滚动发布之前的第一版本号;其中,所述第一版本号包括四级;
[0021]所述服务提供方获取滚动发布时的更新内容;
[0022]所述服务提供方根据所述更新内容对应的更新功能,获取所述服务提供方的更新类型;所述更新类型包括主框架更新、新增功能以及功能修正;
[0023]所述服务提供方对所述更新内容进行哈希计算,得到对应的哈希值;
[0024]所述服务提供方采用预设的编码表,对所述哈希值进行编码,得到一个编码数字;
[0025]所述服务提供方根据所述更新类型,对应修改所述第一版本号的第一级、第二级以及第三级,并将所述编码数字作为所述第一版本号的第四级,得到第二版本号,作为所述服务提供方滚动发布之后的版本号。
[0026]进一步地,所述滚动发布所述服务提供方的步骤之后,包括:
[0027]所述服务调用方获取发布后的所述服务提供方;
[0028]所述服务调用方向发布后的所述服务提供方发出服务调用请求时,判断发布后的所述服务提供方是否响应所述服务调用请求;
[0029]若未响应,则将所述服务调用请求发送至预设的容器中调用发布前的所述服务提供方;其中,所述预设的容器中预先存储有发布前的所述服务提供方。
[0030]进一步地,所述滚动发布所述服务提供方的步骤,包括:
[0031]更新所述服务提供方的代码文件;
[0032]获取所述服务提供方更新后的代码文件,并根据所述更新后的代码文件,生成镜像文件;
[0033]将所述镜像文件部署至测试环境中,以测试所述镜像文件对应的微服务;
[0034]若测试无误,则将所述镜像文件部署至生产环境中进行发布。
[0035]本申请还提供了一种微服务系统,所述微服务系统中导入有openfeign SDK工具包以运行openresty平台,所述微服务系统还包括服务提供方以及服务调用方:
[0036]所述服务提供方用于将所述服务提供方在openresty平台中的openresty域名作为元数据发送至微服务注册中心注册,并存储至服务列表中;其中,所述服务提供方为所述微服务系统中前一批滚动发布的应用;
[0037]所述服务调用方用于定时从所述微服务注册中心获取所述服务列表;其中,所述服务调用方为所述微服务系统中后一批滚动发布的应用;
[0038]所述服务调用方用于根据所述服务列表,将所述服务提供方的ip端口修改为所述openresty域名,并保存在所述微服务系统的本地;
[0039]所述openresty平台用于自动摘除所述服务提供方的微服务实例,并滚动发布所述服务提供方。
[0040]进一步地,所述服务提供方还用于:
[0041]获取滚动发布之前的第一版本号;其中,所述第一版本号包括三级;
[0042]获取滚动发布时的更新内容;
[0043]根据所述更新内容对应的更新功能,获取所述服务提供方的更新类型;所述更新类型包括主框架更新、新增功能以及功能修正;
[0044]根据所述更新类型,对应修改所述第一版本号,得到第二版本号,作为所述服务提供方滚动发布之后的版本号。
[0045]本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
[0046]本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种发布微服务应用的方法,应用于微服务系统,所述微服务系统中导入有openfeign SDK工具包以运行openresty平台,所述微服务系统还包括服务提供方以及服务调用方,其特征在于,所述方法包括以下步骤:所述服务提供方将所述服务提供方在openresty平台中的openresty域名作为元数据发送至微服务注册中心注册,并存储至服务列表中;其中,所述服务提供方为所述微服务系统中前一批滚动发布的应用;服务调用方定时从所述微服务注册中心获取所述服务列表;其中,所述服务调用方为所述微服务系统中后一批滚动发布的应用;所述服务调用方根据所述服务列表,将所述服务提供方的ip端口修改为所述openresty域名,并保存在所述微服务系统的本地;所述openresty平台自动摘除所述服务提供方的微服务实例,并滚动发布所述服务提供方。2.根据权利要求1所述的发布微服务应用的方法,其特征在于,所述滚动发布所述服务提供方的步骤之后,包括:所述服务提供方获取滚动发布之前的第一版本号;其中,所述第一版本号包括三级;所述服务提供方获取滚动发布时的更新内容;所述服务提供方根据所述更新内容对应的更新功能,获取所述服务提供方的更新类型;所述更新类型包括主框架更新、新增功能以及功能修正;所述服务提供方根据所述更新类型,对应修改所述第一版本号,得到第二版本号,作为所述服务提供方滚动发布之后的版本号。3.根据权利要求1所述的发布微服务应用的方法,其特征在于,所述所述服务提供方根据所述更新类型,对应修改所述第一版本号的步骤,包括:若所述更新类型为主框架更新,则在第一版本号的第一级的数字基础之上增加1,并将第二级与第三级的数字复位为0;若所述更新类型为新增功能,则在第一版本号的第二级的数字基础之上增加1,并将第三级的数字复位为0;若所述更新类型为功能修正,则在第一版本号的第三级的数字基础之上增加1。4.根据权利要求1所述的发布微服务应用的方法,其特征在于,所述滚动发布所述服务提供方的步骤之后,包括:所述服务提供方获取滚动发布之前的第一版本号;其中,所述第一版本号包括四级;所述服务提供方获取滚动发布时的更新内容;所述服务提供方根据所述更新内容对应的更新功能,获取所述服务提供方的更新类型;所述更新类型包括主框架更新、新增功能以及功能修正;所述服务提供方对所述更新内容进行哈希计算,得到对应的哈希值;所述服务提供方采用预设的编码表,对所述哈希值进行编码,得到一个编码数字;所述服务提供方根据所述更新类型,对应修改所述第一版本号的第一级、第二级以及第三级,并将所述编码数字作为所述第一版本...

【专利技术属性】
技术研发人员:何小飞
申请(专利权)人:平安普惠企业管理有限公司
类型:发明
国别省市:

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

1