大数据&云计算|大数据下的用户中心如何设计( 四 )


非uid属性查询 , 有两类典型的业务:
(1)用户侧 , 前台访问 , 单条记录的查询 , 访问量较大 , 服务需要高可用 , 并且对一致性的要求较高;

(2)运营侧 , 后台访问 , 根据产品、运营需求 , 访问模式各异 , 基本上是批量分页的查询 , 由于是内部系统 , 访问量很低 , 对可用性的要求不高 , 对一致性的要求也没这么严格;
针对这两类业务 , 架构设计的思路是:
(1)用户侧 , 采用“建立非uid属性到uid的映射关系”的架构方案;
(2)运营侧 , 采用“前台与后台分离”的架构方案;
前台用户侧 , “建立非uid属性到uid的映射关系” , 有四种常见的实践:
(1)索引表法:数据库中记录login_name与uid的映射关系;
(2)缓存映射法:缓存中记录login_name与uid的映射关系;
(3)生成uid法:login_name生成uid;
(4)基因法:login_name基因融入uid;
后台运营侧 , “前台与后台分离”的最佳实践是:
(1)前台、后台系统 web/service/db 分离解耦 , 避免后台低效查询引发前台查询抖动;
(2)可以采用数据冗余的设计方式;
(3)可以采用“外置索引”(例如ES搜索系统)或者“大数据处理”(例如HIVE)来满足后台变态的查询需求;


推荐阅读