feed流架构设计探讨

如何设计一个feed流信息系统。

 

概念

feed:用户发表的内容

follower:A关注B,A是B的follower

followee:B被A关注,B是A的folowee

feed流:持续更新并展示folowee的内容

 

产品偏向

1:微博、twitter类

2:微信朋友圈、陌陌类

3:快手、抖音类

 

产品目标。

1:用户可以读取/存储微博

2:用户可以关注/取消关注他人

3:用户读取feed流

 

用户维度

僵尸用户、非僵尸用户

活跃用户、非活跃用户

普通用户、大V用户

百万规模、海量用户规模

 

feed流维度

近期微博、历史微博

热点微博、普通微博

已删除微博、取消关注者微博

 

 

底层存储资源设计(基于数据库设计,也可以直接基于hbase存储)

基于userId hash

关注者表(userId, follower) ,粉丝表(userId, followee)

基于userId hash,再加时间维度分库分表

内容表(feedId,userId, time,content)

 

feed流设计

推模式基于redis、hbase(userId,time,feedId),冷数据自动过期。

推模式基于MySQL(userId,time,feedId),冷数据需要手动删除。

推模式实现简单,读取性能高,缺点就是存储成本,写压力大。另外取消关注者,微博被删除,此时这些微博不可见也都需要考虑。

对于这些大v发布的信息可以采用MQ异步推送的方式,其他微博直接推送。

 

基于拉模式

缺点就是写性能高,读性能需要考虑。

增量实时聚合新能容。

1:遍历好友,找到最近发表过feed人。

2:遍历最近发表过feed的人,获取feedId和time。

3:聚合形成feed流。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值