【技术实现步骤摘要】
一种基于微服务的全链路灰度发布方法、装置及存储介质
[0001]本专利技术涉及分布式计算
,具体涉及一种基于微服务的全链路灰度发布方法、装置及存储介质。
技术介绍
[0002]灰度发布是指在软件版本迭代时,先让一小部分用户使用新的软件版本,其他用户继续使用旧的版本。如果用户对新版本的使用没有什么反对意见,那么逐步扩大使用范围,把所有的用户迁移到新的软件版本上。
[0003]目前的灰度实现方案大多都是单纯采用nginx或者haproxy等服务作为负载均衡器。通过负载均衡器的反向代理能力,对用户流量进行分流处理。当发生版本迭代时,通过负载均衡器的配置将流量按比例分发到新版本的服务上。等待新的服务版本验证没有问题后,再将流量逐步切换到新的服务版本。
[0004]目前常用的灰度实现方案都是单纯采用nginx或者haproxy等服务作为负载均衡器。负载均衡器放在应用系统的上一层,用户流量经过负载均衡器时,运维人员通过配置文件设定让少部分流量经过灰度版本。当无人反馈灰度版本问题后,再将正式环境的版本逐一替换成新版本
【技术保护点】
【技术特征摘要】
1.一种基于微服务的全链路灰度发布方法,其特征在于,该方法包括:解析步骤,对客户端APP发送的访问请求进行解析,获得所述客户端APP的APP标识;负载调度步骤,负载调度服务器基于所述APP标识进行判断是否符合灰度发布规则,如果是,则将所述访问请求转发至所述灰度网关;灰度访问步骤,所述灰度网关基于所述APP标识确定所述APP访问多个微服务中的至少一个灰度微服务,将所述APP访问的流量切换至所述至少一个灰度微服务。2.根据权利要求1所述的方法,其特征在于,对所述访问请求进行解析的操作为:使用luajit读取所述访问请求的头文件,以从所述头文件中获得所述APP标识,若所述头文件中不存在APP标识时,所述luajit将所述访问请求记录在日志中,并报警。3.根据权利要求2所述的方法,其特征在于,所述判断是否符合灰度发布规则的操作为:使用nginx作为负载调度服务器,将需要访问灰度微服务的客户端APP的APP标识写入一个配置文件中,并将该配置文件保存在所述nginx缓存中,所述nginx判断所述访问请求的APP标识是否在所述缓存中的配置文件中,如果是,所述访问请求被转发至灰度网关中,否则直接转到生产网关。4.根据权利要求3所述的方法,其特征在于,所述确定所述APP访问多个微服务中的至少一个灰度微服务的操作为:所述灰度网关基于所述APP标识对所述访问请求添加灰度网关标签,所述灰度网关对所述访问请求进行解析,以获取访问请求需要实现的功能,基于所述功能确定需要调用的多个微服务,判断多个微服务中是否存在至少一个灰度微服务,如果是,则在所述访问请求中添加该灰度微服务的灰度标签。5.根据权利要求4所述的方法,其特征在于,在访问过程中,所述灰度微服务将所述APP标识作为线程本地变量进行保存,使得所述APP再次访问所述灰度微服务时,基于所述APP标识直接选择所述灰度微服务...
【专利技术属性】
技术研发人员:黄文质,梅国赠,刘正伟,赖志闻,胡豪杰,许友正,
申请(专利权)人:智业互联厦门健康科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。