SpringCloud实战(十六)-基于Gateway + nacos网关灰度发布(只控制到网关层,局限性太大,微服务复杂链路调用规则控制建议重写Ribbon,而不是只重写Gateway路由规则)
Posted 张志翔ۤ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud实战(十六)-基于Gateway + nacos网关灰度发布(只控制到网关层,局限性太大,微服务复杂链路调用规则控制建议重写Ribbon,而不是只重写Gateway路由规则)相关的知识,希望对你有一定的参考价值。
什么是灰度发布?
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
本文以springcloud gateway + nacos来演示如何实现灰度发布,如果对springcloud gateway和nacos还不熟悉的朋友,可以先阅读如下文章,然后再阅读本文。
实现的整体思路:
- 编写带权重的灰度路由
- 编写自定义filter
- nacos服务配置需要灰度发布的服务的元数据信息以及权重
- 灰度路由从nacos服务拉取元数据信息以及权重,然后根据权重算法,返回符合要求的服务实例给自定义的filter
- 网关配置文件配置需要灰度路由的服务(因为本文代码没有网关实现动态路由,不然灰度路由可以配置在配置中心,从配置中心拉取)
- filter通过责任链模式,
以上是关于SpringCloud实战(十六)-基于Gateway + nacos网关灰度发布(只控制到网关层,局限性太大,微服务复杂链路调用规则控制建议重写Ribbon,而不是只重写Gateway路由规则)的主要内容,如果未能解决你的问题,请参考以下文章
跟我学SpringCloud | 第十六篇:微服务利剑之APM平台Pinpoint
生产级基于SpringCloud微服务架构性能优化实战,建议收藏
生产级基于SpringCloud微服务架构性能优化实战,建议收藏