Openresty+Lua+Redis灰度发布
Posted 小韵豆子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Openresty+Lua+Redis灰度发布相关的知识,希望对你有一定的参考价值。
灰度发布的定义
互联网产品需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题可以很快控制影响面,就需要设计一套灰度发布系统。
百度百科中解释:灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。
灰度架构
执行过程:
1、当用户请求到达前端web(代理)服务器Openresty,内嵌的lua模块解析nginx配置文件中的lua脚本代码;
2、Lua获取客户端IP地址,去查询Redis中是否有该键值,如果有返回值执行@clien2,否则执行@client1。
3、Location @client2把请求转发给预发布服务器,location @client1把请求转发给生产服务器,服务器返回结果,整个过程完成。
灰度的策略
灰度必须要有灰度策略,灰度策略常见的方式有以下几种
1、基于Request Header进行流量切分
2、基于Cookie进行流量切分
3、基于请求参数进行流量切分
以上是关于Openresty+Lua+Redis灰度发布的主要内容,如果未能解决你的问题,请参考以下文章