java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringCloud灰度发布

关于SpringCloud灰度发布的实现

作者:haozhugogo

这篇文章主要介绍了关于SpringCloud灰度发布的实现,灰度发布又称金丝雀发布,是在系统升级的时候能够平滑过渡的一种发布方式,灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,需要的朋友可以参考下

一、springcloud灰度发布思路

二、ribbon大致原理

  1. RibbonAutoConfiguration 是起始点,会在spring启动时被扫起来,实例化SpringClientFactory。
  2. SpringClientFactory 是获取Ribbon相关实例或配置的工厂类,可以获取指定服务的ILoadBalancer和IConfig等,继承自NamedContextFactory。
  3. NamedContextFactory 维护了每个服务相关的上下文AnnotationConfigApplicationContext;上下文在第一次调用时被创建,并注册、装配相关类、接口;外界获取相关类、接口就是从上下文中拿的。
  4. RibbonClientConfiguration 用来实例化自定义接口。
  5. XXXLoadBalancer 负责调用IRule选择Server,并启动定时任务更新ServerList列表。
  6. ZoneAvoidanceRule是默认的IRule,先利用XXXPredicate进行过滤,然后在从过滤的结果中选择。

三、最终代码实现

1.在目标服务上配置灰度标签。

2.将想要的灰度标签保存到threadlocal里,注意有线程池的情况。

3.自定义路由规则IRule以及预判规则Predicate,将不符合标签的服务过滤掉掉,然后从剩下的服务中选一个。

4.自定义RibbonClientConfiguration,指定用步骤3的自定义IRule。

到此这篇关于关于SpringCloud灰度发布的实现的文章就介绍到这了,更多相关SpringCloud灰度发布内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文