蓝绿发版实现

一、相关设计

1、nginx中的接口

  • 获取当前发版的版本
  • 设置host键,前端ip+上面获取的版本号

2、redis中相关的键

status:
  • 0

    • 默认,不分蓝绿
  • 1

    • 获取来源ip
    • 如果与redis中的host键对应的上,就绿
      • 否则走蓝
    • gateway走蓝
  • 3

    • 走绿
    • gateway走绿
host

记录前端ip和最新的版本

count

精细化控制时的访问计数

threshold

精细化时控制时,灰度访问阈值

二、架构与原理:

1、架构图

在这里插入图片描述

2、原理

  • nginx中定义蓝绿对应的upstream,进行蓝绿发版
  • nginx接口功能:
    前端和中台进行联调:前端代码发布一台,中台发布绿,那前端更新机器的流量将会走中台的绿进行灰度

三、灰度流量精细化控制扩展:

  • 增加一个访问计数的功能,count

    • 当status值为1时,获取来源ip,如果与redis中的host键对应的上,同时当前count小于阈值,流量走绿,否则流量走蓝
  • nginx中的要进行接口扩展:

    • 除了要设置前端ip+版本号之外,还要设置threshold,也就是放开多少流量到蓝
  • 优化:

    • redis的pipeline
    • redis的连接池

作者:
服务支撑组:邓伟、蒋明飞、陈派宇、章石青

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值