ABtesting 服务器搭建

本文介绍了一个基于OpenResty实现的灰度发布系统,支持按城市、IP、用户ID等维度进行流量分发,并提供了服务平滑切换的功能。通过简单的配置,可以轻松实现灰度发布和在线服务切换。

 

## 一、功能介绍
1. 基于openresty的灰度发布
2. 服务平滑切换

### 二、目录介绍
1. admin: 灰度策略管理源码, 无需修改
2. diversion: 灰度流量分发源码, 无需修改
3. doc: ABTestingGateWay自带的文档
4. lib/resty & lib/lua-resty-core: openresty的lib库,无需修改
5. lib/abtesting/adapter: 灰度策略应用源码, 无需修改
6. lib/diversion & lib/userinfo: 灰度流量分发的应用源码,这里需要改动
   目前支持按city, ip, uid, url进行流量分发
   比如如果要按uid进行流量分发,那么就改动 lib/abtesting/userinfo中的uidParser.lua,
```bash
   local _M = {
       _VERSION = '0.01'
   }
   
   _M.get = function()
       local u = ngx.req.get_headers()["uid"]
       return u
   end
   return _M
```
   其中, uid为请求头中用户id的字段。如果请求头中用的是user_id,那么把uid换成user_id即可。
   一般情况下,我们都是根据uid进行流量分发,只需改动这里即可。
7. maker/openresty: 预置的openresty安装包,后续安装时用到,见下文openresty环境部署
8. utils: ABTestingGateway自带的部署示例,参考 doc/README.md文档
9. xx_utils: 基于utils结合实际工程项目的一个部署示例,里面除了灰度部署,还增加了服务平滑切换脚本及各种辅助脚本。
   我们直接把xx改成我们的项目代号,稍微改动里面的配置,就可以实现灰度部署和服务平滑切换两大功能了。
   下面会详细讲解这个目录下的文件。
        
### 三、xx_utils目录详解   
我们重点关注 xx_utils/co
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值