美文网首页阿里开源技术
SpringCloud-灰度发布方案简介

SpringCloud-灰度发布方案简介

作者: 源码互助空间站 | 来源:发表于2019-07-16 10:59 被阅读0次

转载 http://huhanlin.com/2018/06/15/springcloud-%E7%81%B0%E5%BA%A6%E5%8F%91%E5%B8%83%E6%96%B9%E6%A1%88/

       灰度发布的特性是混合部署,多版本共存,平滑升级,如果升级失败可以回滚至上一版本,新版本上线无需提供全套其余服务,节省资源。

       核心思想是,通过用户特定标识( parameter 、header、body、ip、id),根据路由策略,将请求引流到不同版本的服务上。

接入层的三种方案

1、nginx+lua

       参考逻辑架构图,用户携带标识,最外层nginx的lua脚本添加控制策略,解析出导流标识,网关根据导流标识分发至不同版本服务。

优点:

①zuul无须负载策略压力,对于服务来讲灰度动作为黑盒,无须关心。

②即使没有加入服务中心的应用也可以通过nginx来做灰度。

缺点:

①内部请求无法控制灰度,比如Service1的v1需要请求Sservice2的v2。

②对于nginx来说,必须需要访问服务中心获取服务信息,否则服务集群情况相当于黑盒。

2、zuul+groovy

      此方案是将接入层下沉到zuul,并且配合groovy动态编译实现动态策略。

优点:

①zuul可以感知注册中心的服务,能够提供更灵活的分发策略。

②可以基于zuul的路由配置设置路由规则。

缺点:

①zuul需要添加filter处理分发策略,如果开启策略过多,会带来性能压力。

3、ribbon+rule

基于ribbon在客户端做负载均衡逻辑中添加分发逻辑。

优点:

①基于tag可以做长链路的灰度策略。

②分发策略在调用端,负载不会集中在某一服务端。

③ribbon支持restTemplate、zuul、feign请求。

缺点:

①采用jar包方式引用,只能是内部项目使用,无法对外部服务提供灰度发布支持。

由于我们目前项目都为内部使用,并不管理外部项目,所以推荐第三种实现方式。能够提供更好的负载,更好的策略控制。

相关文章

  • SpringCloud-灰度发布方案简介

    转载 http://huhanlin.com/2018/06/15/springcloud-%E7%81%B0%E...

  • SpringCloud-灰度发布

    by shihang.mai zuul过滤器+ribbon自定义路由规则+aop 1. 代码 表结构 id ser...

  • 灰度发布方案

    前提: 看过 我的consul,consul-template,nginx,springBoot,搭建动态负载的集...

  • 灰度发布方案

    灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让...

  • 灰度发布方案选型

    上文中,由于初次接触灰度发布,关于这一概念的践行还有很多不了解的地方,因此标题为“灰度发布用户选取”。后来在进一步...

  • 一篇文章理解AB测试和灰度发布

    一、灰度发布 1.1 简介 灰度发布,是指黑与白之间,能够平滑过渡的一种发布方式。通过不同策略对用户进行分流,不...

  • 我们的灰度发布方案

    1 背景与解决思路 做灰度发布,主要有两个大的方向 在代码中做。一套线上环境,代码中做开关,对于不同的用户走不同的...

  • 前端如何实现灰度发布

    前端进行灰度发布,首先需要为用户打上灰度标签和放量策略。 方案1:不同实例上部署不同的应用版本,根据nginx中的...

  • 灰度发布用户选取

    近日接触的项目涉及到“灰度发布”的概念,这是第一次接触灰度发布,因此对灰度发布用户选取的方式十分好奇。“灰度发布(...

  • 简单的前端灰度发布方案

    基本概念 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testi...

网友评论

    本文标题:SpringCloud-灰度发布方案简介

    本文链接:https://www.haomeiwen.com/subject/syjzkctx.html