常见灰度实现方案

在开发中经常会遇到这种场景,开发了一个新的功能,需要在小范围内先体验一下,如果没问题,再推广到所有用户使用,这样可以降低新功能上线出问题带来的风险,控制风险范围,那么通常有前端实现灰度和后端实现灰度的方案,也有网关层的灰度方案,这里先简单说一下后端实现灰度的方案。

最简单的方案是通过白名单判断,用某种ID为区分条件,比如userId,设置白名单,在白名单中的ID所发的请求才会走灰度的逻辑。这种方案适合于做线上回归,只有内部特定人可以看到灰度的结果。

另一种是按照百分比设置灰度,方案如下,以userId为例:

则根据 userId 计算出一个 0~1 范围的 hash 值,hash 大于 x,则命中灰度,否则未命中

x = 1 - (shunt / 100)

shunt 是限流百分比(0 ~ 100)

如果 shunt 是 0,则表示关闭灰度,因为 hash 不可能大于 1

如果 shunt 是 100,则表示所有用户都走灰度,因为 hash 必然大于 0

如果 shunt 是 50,则表示一半用户走灰度,一半用户走正常。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值