已解决
基于 Nginx 实现一个灰度发布系统
来自网友在路上 173873提问 提问时间:2023-09-27 05:40:44阅读次数: 73
最佳答案 问答题库738位专家为你答疑解惑
软件开发一般不会上来就是最终版本,而是会一个版本一个版本的迭代。新版本上线前都会经过测试,但就算这样,也不能保证上线了不出问题。所以,在公司里上线新版本代码一般都是通过灰度系统进行测试。并且,灰度系统可以把流量划分成多份,一份走新版本代码,一份走老版本代码。
而且灰度系统支持设置流量的比例,比如可以把走新版本代码的流程设置为 5%,没啥问题再放到 10%,50%,最后放到 100% 全量。这样可以把出现问题的影响降到最低。不然一上来就全量,万一出了线上问题,那就是大事故。而且灰度系统不止这一个用途,比如产品不确定某些改动是不是有效的,就要做 AB 实验,也就是要把流量分成两份,一份走 A 版本代码,一份走 B 版本代码。
那这样的灰度系统是怎么实现的呢?其实很多都是用 nginx 实现的。nginx 是一个反向代理的服务,用户请求发给它,由它转发给具体的应用服务器。
这一层也叫做网关层。由它负责转发请求给应用服务器,那自然就可以在这里控制流量的分配,哪些流量走版本 A,哪些流量走版本 B。
下面我们实现一下:
首先,我们准备两个版本的代码,这里创建个 nest 项目:
npx nest new gray_test
查看全文
99%的人还看了
相似问题
- flink1.13.6版本的应用程序(maven版)
- 技术分享| gcc版本升级到5.2
- 基于 Glibc 版本升级的 DolphinDB 数据查询性能优化实践
- 解决requests 2.28.x版本SSL错误:证书验证失败
- UE5和UE4版本更新重大改变汇总。
- Docker build报错总结,版本过新大避雷!
- K8S1.23.5部署(此前1.17版本步骤囊括)及问题记录
- Mongodb3.4升级高版本mongoTemplate.executeCommand报错The cursor option is required
- onnx模型转换opset版本和固定动态输入尺寸
- centos安装指定版本docker
猜你感兴趣
版权申明
本文"基于 Nginx 实现一个灰度发布系统":http://eshow365.cn/6-14442-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!