ABTEST的流量切分一般是根据请求的条件组合进行切分
具体的切分方式可分为平行切分和树形切分
水平切分方式实现
水平切分就是每个流量中直接配置满足的定向配置,当满足此定向条件时就执行此test分支.
配置例子
索引结构
可对每个定向和test进行倒排索引,即key为定向类型+定向value(或者定向类型和定向直的二级索引),doc为test流程,搜到后定向纬度内进行并集,纬度之间进行交集操作(对于bitset结构的倒排索引,纬度内就进行或操作,纬度之间进行与操作),最终得到流程列表,对最终的流程列表进行优先级排序得到一个最终的test流程.
树形切分方式流量实现(层次的流量切分)
树形的切分就是将test流程配置在定向的树形上,树的每一层是一个定向类型,每个节点是一个定向直,每个节点都可以挂流程。
配置例子
索引结构
可使用hashmap套hashmap的索引结构
优缺点:
平行切分流量,比较直观,可以非常直观的看到定向组合得到的流量,但不够灵活
树形切分流量,配置起来非常灵活,有层次感,对于单定向值配置非常直观,但对于多定向值的配置和修改非常复杂。
注:因编辑页面很难编辑,未给出例子