更新时间:2018-08-13 21:05
在社交领域之中,有很多数据的存储,使用数据的形态也多种多态。目前主流的社交都会带推荐模块的,也就是会把新闻/消息/短文 推动给合适的人,也会考虑地理位置的信息。本文简述社交类的基本架构,考虑的一些因素。细节点会在不同的社交类场景之中,有一定的优化,但是大同小异,基本架构如下:
上图是社交领域的基本架构,分为以下基本部分
云HBase
之中云HBase
之中,发完之后,也可以立即写到推荐之中,自己可以看到自己发的帖子云HBase
之中,以备后续 分析 反馈给 用户特性 - 用户画像
模块会有 帖子/新闻
的表,量也比较大,一般在1T-1P左右。
用户特性
云HBase
之中spark
或者 用户写的code
分析用户的历史记录,修正用户的标签画像最终会形成一张 用户特性 - 用户画像表
一般有两个模型,分表为 推模型
,拉模型
,最主要是以帖子为维度
还是以 查询的 人为维度
。推模型
是 写放大的,拉模型
是读放大的。 HBase基于LSM,比较适合推模型
云HBase
存储上特征值
特征值
与 用户特性 - 用户画像
,把匹配的用户写入 到 推送的表之中。此块 根据不同的业务,可能涉及的逻辑比较复杂,比如加入 位置的因素 、 权重 、好友关注的列表 、把不活跃的客户剔除。会形成一张 帖子推荐表
,数据量比较大,大约1T到100T左右。会有过期时间,一般在3天-4天左右。
推模型
与 拉模型
混合使用帖子推荐表
,查询出所属的帖子ID后,再查询实际的帖子信息,这部分一般在 redis 或者 CDN之中有缓存,没有命中,可以查询到 业务库 云HBase
之中
在文档使用中是否遇到以下问题
更多建议
匿名提交