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灰度发布的主要内容,如果未能解决你的问题,请参考以下文章

Openresty+Lua+Redis灰度发布

nginx+lua+redis实现灰度发布_test

Openresty+Lua 实现项目灰度发布

Openresty+redis实现灰度发布

Nginx + Lua + Cookie 控制灰度发布

Openresty+Lua Redis连接池实现