最近公司高层开始发力,各种产品review,各种痛点吐槽,整改上线,整的跟真的似得。
重点之一就是首页门店排序,当然,排序可是个大事,不是一朝一夕可以完成了的,之后要是有朝一日我的门店可以排的很不错了,可以拿出来和大家分享一下,今天就算了,先说点别的简单的。
因为每种策略都可能有优有劣,所以,需要做实验来进行验证测试。自然而然的想起了ABTest。因为不仅仅要做到全用户的ABTest,还要细化到每个城市维度,而且路由规则要确定,以便数据部对埋点做不同策略的数据分析。本想做个公用组件,但时间紧、任务重,水平低,先简单实现下,对付对付。
简单的说,就是想办法,让流过的用户,以固定的策略,按指定的比例,执行不同的方法。
1.使用zookeeper配置分流比例,并在程序中设置节点监听,启动初始化时,创建一个长度为100的数组,拉取zk的配置信息,按照比例,将数组填充为0、1,。比如,20-80的分流比例,就填充20个0和80个1.
2.拿到用户的pin或者设备Id,取hashCode +13之后对100取余,并对结果取绝对值(可能有负值)
3.在数组中取出下标为上述结果的数组值,若为0,则落到策略1,若为1,则落到策略2.
4.如果需要调整分流比例,就在zk上重新设置下比例值,当程序中监听到了zk节点值的改变,就会把数组重新初始化下。
拿真实的40万用户测试了一下,分布还是比较均匀的