系统设计 —— Feed 流

2019-08-12  本文已影响0人  GOGOYAO

参考资料

如何打造千万级Feed流系统
TableStore Timeline:轻松构建千万级IM和Feed流系统
Design the Twitter timeline and search
Feed系统架构资料收集

1. 表结构

1.1. Feed 内容库

内容库用于存储用户发送的消息。

列名 是否主键 说明
user_id yes 消息发送者的 id
message_id yes 消息 id,可以用时间戳
content no 消息内容
other no 其他信息

1.2. 同步表

同步方式,常见的方式有三种:

用图表对比:

对比项 推模式 拉模式 推拉结合模式
写放大
读放大
用户读取延时 毫秒
读写比例 1:99 99:1 ~50:50
系统要求 写能力强 读能力强 读写都适中
常见系统 Tablestore、Bigtable等LSM架构的分布式NoSQL Redis、memcache等缓存系统或搜索系统(推荐排序场景) 两者结合
架构复杂度 简单 复杂 更复杂

介绍完同步模式中所有场景和模式后,我们归纳下:

同步表的结构如下

列名 是否主键 说明
user_id yes 消息接收者用户ID
sequence_id yes 消息顺序ID,可以使用timestamp + send_user_id,也可以直接使用Tablestore的自增列。
sender_id no 消息发送者的用户ID
message_id no store_table中的message_id列的值,也就是消息ID。通过sender_id和message_id可以到store_table中查询到消息内容
other no 其他信息
上一篇下一篇

猜你喜欢

热点阅读