nginx实现灰度系统
正经项目新版本代码的上线基本都会用灰度系统,可以逐步放量的方式来保证上线过程不会出大问题,开始可以 5%(即 5%的用户会使用到该新版本),没啥问题再放到 10%,50%,最后放到 100% 全量。
第一次请求的时候,会按照设定的比例随机对流量染色,也就是设置不同 cookie。再次访问的时候会根据 cookie 来走到不同版本的代码。
nginx 有反向代理的功能,可以转发请求到应用服务器,也叫做网关层。我们可以在这一层根据 cookie 里的 version 字段来决定转发请求到哪个服务。在这之前,还需要按照比例来给流量染色,也就是返回不同的 cookie。
1 |
|
不管灰度系统做的有多复杂,底层也就是流量染色、根据标记转发流量这两部分,我们完全可以自己实现一个。后端代码会根据 cookie 标识来请求不同的服务(或者同一个服务走不同的 if else),前端代码可以根据 cookie 判断走哪段逻辑。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!