首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

uid.mapping用户唯一设计

根据现有的能力设计一个模型,如果大家有更优的办法,欢迎指正与交流。

本设计是建立在已有用户中心系统的基础上,各个系统账号统一,并且也是针对hbase数据库的一个设计(若没有统一账号,建议先统一各个系统账号,想一步到位,也不是不可,需要花费的代价……)

根据推荐引擎业务来说明。

用户行为采集。

离线job清洗转化行为数据

推荐计算(此处包含较多,不单独介绍,后续有时间会整理出来其架构及实施方案)

实时读取历史推荐数据及与发生行为推荐计算

由上述可知,有离线任务,也有实时请求计算。

离线任务一般处理TB级数据,那么uid的生成及唯一性将成为瓶颈。(因为涉及到查询效率,uid不宜过长,又必须在分布式及高并发情况下保证唯一)。在线实时场景主要根据用户的登录情况来获取uid读取推荐数据。

咱们以场景来说明,比较直观。

未登录用户调用推荐接口,此时,需要判断是否已登录过,是否有历史推荐记录。所以,需要调用uid.mapping接口获取uid。

已登录用户请求,根据登录用户获取uid或用户标识获取uid。

不同渠道使用不同账号登录(多渠道数据相通)

用户唯一标识与uid关系表。用户唯一标识为rowkey,用户唯一标识与uid为多对一关系。

uid.mapping服务处理场景:

进行唯一标识与uid之间的维护。

未登录用户

查询关系表,若没有uid,则生成uid,存储redis,并丢到队列中去。

登录用户

若登录账号与用户标识查询uid,若都有uid,直接返回uid。

若用户标识有uid,登录账号没有uid,则把登录账号-uid丢到队列中,返回uid。

若用户标识没有uid,登录账号有uid,则把用户标识-uid丢到队列中,返回uid。

若都没有uid,生成uid,把用户标识-uid,登录账号-uid丢到队列中,返回uid。

当然,上述所有操作需要用到redis或本地缓存。所有调用uid.mapping服务也需要缓存uid信息。

未完待续,现在项目比较紧张,可能很长时间才更新一次,写的比较仓促。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180328G1H0V000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券