• 写点啥呢
    2018-12-29
    请问老师,我们在业务中用到A/B测试中常用枚举值来区分不同用户bucket,比如用A,B,C,D来标记不同的用户分组。split_clients用到了hash算法,这样原始枚举值和hash结果之间就没有直观关系,请问,我们用split_clients模块的时候该如何确保选定的原始flag值和hash结果能满足预设的映射关系呢?

    作者回复: 你是说,在请求中的header或者url里,已经有值来确定,当前用户的请求路由到某上游集群?
    如果是这样,那么split_clients就不能用了,你可以使用map模块,通过arg_或者http_、cookie_等变量取出你说的枚举值,再选定路由。
    split_clients适用于通过百分比来简单划出一部分用户,作AB测试。

    
     2
  • 恒丰
    2019-05-29
    老师,看到你谈到灰度,目前在做游戏服务器服务器,需要做一个灰度系统,网关和客户端中间加了一场nginx,但是在网关无法获得IP。。公司两套架构:
    一种
    这套登录先到http,再到网关 这套我目前的方法是用户登录时候,通过nginx http反向代理,获得IP,然后保存userid,IP键值对到redis。用户再到网关登录时候,网关服去redis取IP
    另一套
    由于没有用到http,而是客户端直接用TCP连网关,网关在去连其它的登录服 。。目前想在网关前加nginx 但是目前TCP反向代理无法获取IP
    请问老师,如果我想用TCP反向代理,不加缓存有什么好的办法吗
    展开

    作者回复: TCP反向代理取IP最方便的方法是用proxy protocol,详见第113课。
    取客户端IP,为什么不用X-Real-IP继续向后传递呢?网关取请求HEADER头部是一件很容易的事

    
     1
  • start
    2019-10-10
    老师您好,视频中说对已有变量的值进行 MurmurHash2算法得到32位哈希数字。 这个变量是在header中提供的。那怎么能够确定那些string 能够落到指定的 percent中呢?这个是否随机或者可以计算出来?

    作者回复: 可以计算出来,先用uint32_t
    ngx_murmur_hash2(u_char *data, size_t len)函数中的算法,把字符串转成32位整型,把它除以0xffffffff计算出百分比,看落在哪个percent中

     1
    
  • 恒丰
    2019-05-30
    安装113视频教程,我的工作量:1 修改网关服务器协议格式 2 客户端对应修改协议格式 3 按照视频配置nginx 我可以这样理解吧 目前我这边tcp前面添加V2协议 这个老师在视频里面提了一下 目前我对这些协议格式了解的不是很深 老师有出这种针对的Demo视频吗

    作者回复: 对proxy protocol协议不了解吗?建议用tcpdump抓包看一下

    
    
  • 恒丰
    2019-05-30
    按照你113课proxy_protocl代理协议 相当于我需要改动三块位置:一 网关服务器的TCP协议增加V2协议 二 客户端也对应添加协议格式工厂 三 nginx按照你的教程配置即可了吗
    
    
  • Panda
    2019-01-08
    split_clients适用于通过百分比来简单划出一部分用户 . 不是固定的有标识的一批用户对吗

    作者回复: 是的

    
    
我们在线,来聊聊吧