基于Nginx+lua的蓝绿发布系统

简介: 一、什么是蓝绿发布蓝绿部署是不停老版本,部署新版本然后进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。1、特点蓝绿部署无需停机,并且风险较小。

一、什么是蓝绿发布

蓝绿部署是不停老版本,部署新版本然后进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。

1、特点
蓝绿部署无需停机,并且风险较小。

2、蓝绿发布的注意事项
当你切换到蓝色环境时,需要妥当处理未完成的业务和新的业务。如果你的数据库后端无法处理,会是一个比较麻烦的问题;

可能会出现需要同时处理“微服务架构应用”和“传统架构应用”的情况,如果在蓝绿部署中协调不好这两者,还是有可能会导致服务停止。
需要提前考虑数据库与应用部署同步迁移 /回滚的问题。
蓝绿部署需要有基础设施支持。
在非隔离基础架构( VM 、 Docker 等)上执行蓝绿部署,蓝色环境和绿色环境有被摧毁的风险。

二、为什么需要蓝绿发布系统

1、新项目和新需求非常多
2、新需求的上线过程是,先上线一台服务器然后观察会不会出问题,如果没有问题则全部上线。
3、分流是关键,但是动态分流是痛点。

三、老分流方案

image.png

方案存在的问题点:
1、nginx.conf配置文件里各种if、set和rewrite,并且容易配置出错。
2、修改完配置文件后,重启或者reload后才能生效。
3、不能实现太复杂的逻辑。
4、不能实现一些特殊分流方式。

四、新分流方案

image.png

功能说明:

  • 采用Redis存放分流策略
  • 分流策略包括按时间来分流,比如每分钟分流多少笔订单,还有按权重分流,比如新老系统之间的比例是1:9
  • 采用OpenResty+lua,整体性能优秀。

单台压测结果:


image.png
目录
相关文章
|
4月前
|
应用服务中间件 Linux 网络安全
Linux 安装 Nginx 并配置为系统服务(超详细)
Linux 安装 Nginx 并配置为系统服务(超详细)
|
2月前
|
应用服务中间件 nginx
M1系统搭建nginx,非homebrew搭建方式(踩坑明细)
M1系统搭建nginx,非homebrew搭建方式(踩坑明细)
26 0
|
3月前
|
应用服务中间件 nginx 网络架构
Windows系统如何修改Nginx配置实现远程访问多个本地站点
Windows系统如何修改Nginx配置实现远程访问多个本地站点
68 0
|
3月前
|
负载均衡 应用服务中间件 nginx
Nginx四层负载均衡在秒杀系统中的应用
Nginx四层负载均衡在秒杀系统中的应用
26 0
|
3月前
|
负载均衡 应用服务中间件 nginx
Nginx负载均衡选择在秒杀系统中的应用
Nginx负载均衡选择在秒杀系统中的应用
44 0
|
3月前
|
应用服务中间件 nginx
4.5.1 Nginx反向代理与系统参数配置conf原理
4.5.1 Nginx反向代理与系统参数配置conf原理
|
3月前
|
存储 负载均衡 网络协议
Nginx反向代理与系统参数配置conf原理
Nginx反向代理与系统参数配置conf原理
58 0
|
3月前
|
负载均衡 网络协议 前端开发
Nginx环境搭建与系统参数配置
Nginx环境搭建与系统参数配置
54 0
|
6月前
|
算法 NoSQL Java
分布式接口幂等性、分布式限流(Guava 、nginx和lua限流)
接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性。
|
6月前
|
tengine 应用服务中间件 nginx
Liunx系统下载安装Nginx下载安装
Liunx系统下载安装Nginx下载安装