灰度发布引擎java_基于Spring cloud ribbon实现灰度发布

本文介绍了如何利用Spring Cloud Ribbon扩展实现灰度发布项目fm-cloud-graybunny,支持A/B Test和金丝雀Test。通过灰度服务、实例、策略和决策管理,实现灰度路由和决策。文章描述了灰度实例的注册、下线、策略编辑等功能,并探讨了灰度客户端和服务端的设计和实现。
摘要由CSDN通过智能技术生成

在上一篇文章《基于Spring cloud ribbon实现多版本控制》中介绍了如何扩展spring cloud ribbon实现接口多版本控制的项目 – fm-cloud-bambbo, 开发这个项目的过程,给我提供了很多想法和思路,发现只要再做一些扩展,就可以实现灰度管理,于是又有了 fm-cloud-graybunny。

灰度发布

灰度发布是在多版本控制的基础上进一步扩展实现出来的项目 -> fm-cloud-graybunny,抽象出灰度服务、灰度服务实例、灰度策略、灰度决策等。支持A/B test, 金丝雀 test。 灰度策略可以从request ip, request patameter, request header等方面进行去创建,也可以根据bamboo的LoadBalanceRequestTrigger结合graybuanny的接口去扩展灰度策略和灰度决策。

场景

有两个服务,共四个服务实例,分别是ServiceA-1, ServiceA-2, ServiceB-1。其中ServiceA-2是灰度实例。

场景1

所有请求头usertype:old,ip:10.217..的请求或者请求头usertype:test, url 参数action:create的请求,都会被转发到的灰度服务ServiceA-2 。

场景2

ServiceA-2通过一段时间的观察,判定运行稳定,开始ServiceA-2删除灰度标记,开始和ServiceA-1一样会加入正常的负载均衡规则当中。

场景3

服务ServiceB发布新版本,ServiceB-2需要灰度注册,注册成功后所有的请求不能转发到ServiceB-2, 在为ServiceB-2设置灰度策略后,符合策略的请求才会被转发到ServiceB-2上。

思路

从上面的场景分析,可以归纳出两个对象:服务实例和调用请求;服务实例的灰度管理是基础,调用请求时如何决策路由,都是根据服务实例的灰度策略去判断的。既然有灰度管理这个概念,那么从功能上分,就会有client-server之分,所以又可以从graybunny-client和graybunny-server去分析。接下来将一步一步去分析这四个方面。

灰度实例

6623cd73deaaa04404ea471199789632.png

实例注册

服务实例添加到灰度管理中。

实例下线

服务实例下线,从灰度管理中删除。

灰度开关

调整服务实例的灰度状态&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值