- 要求
- user人数10w, 活跃1w。
- 大部分user关注1k人, 一部分大v被关注100w人。z
- 每人每天发100条博文
- user新博文数量提醒,消息标记已读
- 表
- user
- user_followers
- user_followed
- user_posts(u_id, created_ts)
- user_messages(u_id, p_id, is_read)
- 定时任务拉取
- user_followed拉u_id, user_posts表按时段拉id, 更新user_messages
- 优点
- 缺点
- 数据
- 发布时推送
- 有p_id, user_followers, 更新user_messages
- 优点
- 缺点
- 数据
- 最高 100w*100条数据 / 次
- 10w*100次 / 天
- messages处理
- 存部分messages
- 不活跃user不存message
- 在登录状态,定时拉取
- 优点
- 缺点
- 数据
- 1k * N(N<100)条 / 次
- 1w * 1k * 100条数据 / 天
- messages结构变化
- u_id: [{p_id: uint, is_read: bool}] # 条数稳定为10w
- 用mongodb或redis
- 消息队列?
- 服务端存message状态,不能mq
- 如果客户端存状态,这就是个简单的mq问题