当前位置:网站首页 > 技术博客 > 正文

灰度发布数据库如何处理



什么是灰度发布?

灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

本文以springcloud gateway + nacos来演示如何实现灰度发布,如果对springcloud gateway和nacos还不熟悉的朋友,可以先阅读如下文章,然后再阅读本文。

实现的整体思路:

下边进入实战

正文

1、所使用的开发版本

2、pom.xml引入

ps:nacos的jar注意排除ribbon依赖,不然loadbalancer无法生效

3、编写权重路由

4、自定义filter

5、配置自定义filter给spring管理

6、编写网关application.yml配置

uri中的grayLb配置,代表该服务需要进行灰度发布

7、在注册中心nacos配置灰度发布的服务版本以及权重值

weight代表权重,version代表版本

总结

上述就是实现灰度发布的过程,实现灰度发布的方法有很多种,文章中只是提供一种思路。虽然springcloud官方推荐使用loadbalancer来代替ribbon。因为ribbon是阻塞的,但从官方的loadbalancer的负载均衡算法来看,目前loadbalancer默认只支持轮询算法,要其他算法得自己扩展实现,而ribbon默认支持7种算法,用默认的算法基本上就可以满足我们的需求了。其次ribbon支持懒加载处理,超时以及重试与断路器hystrix集成等配置,loadbalancer目前就支持重试。所以如果正式环境要自己实现灰度发布,可以考虑对ribbon进行扩展。本文的实现只是作为一种扩展补充,毕竟springcloud推荐loadbalancer,索性就写个demo实现下。

最后灰度发布的实现,业内也有开源的实现--Discovery,感兴趣的朋友可以通过如下链接进行查看

demo链接

版权声明


相关文章:

  • 积分电路和微分电路图2025-09-19 21:01:00
  • html中iframe标签讲解2025-09-19 21:01:00
  • vmware免费版下载2025-09-19 21:01:00
  • redis的aof太大如何优化2025-09-19 21:01:00
  • r语言怎么结束命令2025-09-19 21:01:00
  • i2c协议标准pdf2025-09-19 21:01:00
  • java注解是干嘛的2025-09-19 21:01:00
  • 树状数组的算法原理2025-09-19 21:01:00
  • android textview设置字体2025-09-19 21:01:00
  • android线程间的通讯2025-09-19 21:01:00