[发明专利]一种dubbo应用级全链路灰度实现方法及系统在审
申请号: | 202010758862.6 | 申请日: | 2020-07-31 |
公开(公告)号: | CN111930401A | 公开(公告)日: | 2020-11-13 |
发明(设计)人: | 黄志超;江有山;杨慧;郭倩;张海松 | 申请(专利权)人: | 银盛支付服务股份有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 深圳市深可信专利代理有限公司 44599 | 代理人: | 万永泉 |
地址: | 518000 广东省深圳市龙华*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 dubbo 应用 级全链路 灰度 实现 方法 系统 | ||
本发明实施例提供一种dubbo应用级全链路灰度实现方法,包括以下步骤:步骤一:用户通过消费端向生产端发送访问请求;步骤二:基于所述用户访问请求,通过分类算法对所述生产端的版本进行分类;步骤三:根据用户设置的tag和weight,从新旧版本中通过筛选算法对符合要求的版本进行筛选;步骤四:根据筛选出符合要求的版本,通过兼容算法确定用户所要访问的版本;步骤五:符合要求的用户对已确定所要访问的版本进行访问。本发明实施例通过dubbo灰度发布实现了由服务级别升级到应用级别,实现了新版本上线后流量可以自动彻底隔离,以及实现多版本兼容,并且满足副本动态扩容的需求。
技术领域
本发明涉及计算机技术领域,更具体地说,涉及到一种dubbo应用级全链路灰度实现方法及系统。
背景技术
项目上线都是以应用级别粒度进行更新上线的,上线的新版本与旧版本需要通过隔离测试和新旧版本访问流量控制来实现灰度发布,dubbo2.6目前只能够实现服务级别的权重和路由控制,如果需要对整个应用权重和路由进行修改,目前只能采用循环所有服务的方式进行权重和路由添加修改,这样不仅低效而且存在循环出错的风险。dubbo2.6如果要实现新版本上线后暂时无流量进入,需要开发人员为每个服务权重设置默认值0来防止流量进入新版本,如果某个开发人员忘记了或者设置错误都将会导致流量进入新版本。而通过路由配置来实现隔离测试,如果服务发布到k8s等容器云中,需要等到服务启动后才能获取服务所在的服务器IP进行路由配置,而此时流量可能已经进入新版本。如上两种都会导致灰度发布生效时间过晚,导致流量随机进入新旧版本的不可控,无法起到新旧版本隔离,并且需要开发人员介入灰度发布流程中来,增加的开发人员的负担。服务链路调用在微服务架构中是普遍存在的,dubbo2.6目前还无法方便快速的做到在整个链路中实现应用新旧版本隔离测试。
本发明内容
为了克服现有技术的不足,本发明提供一种dubbo应用级全链路灰度实现方法用来解决灰度发布服务级别粒度无法满足整个应用的灰度功能要求、无法满足副本动态扩容和缩容以及新版本上线后无法做到流量自动隔离,防止流量进入新版本的问题。
本发明解决其技术问题所采用的技术方案是:一种dubbo应用级全链路灰度实现方法,包括以下步骤:
步骤一:用户通过消费端向生产端发送访问请求;
步骤二:基于所述用户访问请求,通过分类算法对所述生产端的版本进行分类;
步骤三:根据用户设置的tag和weight,从新旧版本中通过筛选算法对符合要求的版本进行筛选;
步骤四:根据筛选出符合要求的版本,通过兼容算法确定用户所要访问的版本;
步骤五:符合要求的用户对已确定所要访问的版本进行访问。
具体地,通过分类算法对所述生产端的版本进行分类,所述步骤包括:
根据所述生产端的版本类型,对版本类型进行分类处理;
根据所述生产端的版本序号,定义新旧版本类型。
具体地,所述步骤包括:
当不存在所述tag和所述weight时,符合要求的用户默认访问旧版本;
当同时存在所述tag和所述weight,所述tag不相同时选择tag路由算法;
当同时存在所述tag和所述weight,所述tag相同时选择weight路由算法。
具体地,通过兼容算法确定用户所要访问的版本,所述步骤包括:
通过复用平台的随机确定出一个版本副本;
通过一致性哈希确定出一个版本副本。
具体地,通过兼容算法确定用户所要访问的版本,所述步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于银盛支付服务股份有限公司,未经银盛支付服务股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010758862.6/2.html,转载请声明来源钻瓜专利网。